-
-
Notifications
You must be signed in to change notification settings - Fork 135
Add Upgopher file server script #1068
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,59 @@ | ||
| #!/usr/bin/env bash | ||
| source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func) | ||
| # Copyright (c) 2021-2025 community-scripts ORG | ||
| # Author: Eduard González (wanetty) | ||
| # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE | ||
| # Source: https://github.com/wanetty/upgopher | ||
|
|
||
| APP="Upgopher" | ||
| var_tags="${var_tags:-file-sharing}" | ||
| var_cpu="${var_cpu:-1}" | ||
| var_ram="${var_ram:-512}" | ||
| var_disk="${var_disk:-4}" | ||
| var_os="${var_os:-debian}" | ||
| var_version="${var_version:-12}" | ||
|
||
| var_unprivileged="${var_unprivileged:-1}" | ||
|
|
||
| header_info "$APP" | ||
| variables | ||
| color | ||
| catch_errors | ||
|
|
||
| function update_script() { | ||
| header_info | ||
| check_container_storage | ||
| check_container_resources | ||
| if [[ ! -d /opt/upgopher ]]; then | ||
| msg_error "No ${APP} Installation Found!" | ||
| exit | ||
| fi | ||
|
|
||
| if check_for_gh_release "upgopher" "wanetty/upgopher"; then | ||
| msg_info "Stopping Services" | ||
| systemctl stop upgopher | ||
| msg_ok "Stopped Services" | ||
|
|
||
| cd /opt/upgopher | ||
| RELEASE_URL=$(curl -s https://api.github.com/repos/wanetty/upgopher/releases/latest | grep "browser_download_url.*linux_amd64.tar.gz" | cut -d '"' -f 4) | ||
|
||
| wget -q "$RELEASE_URL" | ||
| tar -xzf upgopher_*_linux_amd64.tar.gz | ||
| mv upgopher_*_linux_amd64/* . | ||
| rmdir upgopher_*_linux_amd64 | ||
| rm -f upgopher_*_linux_amd64.tar.gz | ||
|
||
| chmod +x upgopher | ||
| msg_info "Starting Services" | ||
| systemctl start upgopher | ||
| msg_ok "Started Services" | ||
| msg_ok "Updated Successfully" | ||
|
||
| fi | ||
| exit | ||
| } | ||
|
|
||
| start | ||
| build_container | ||
| description | ||
|
|
||
| msg_ok "Completed Successfully!\n" | ||
| echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" | ||
| echo -e "${INFO}${YW} Access it using the following URL:${CL}" | ||
| echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:9090${CL}" | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,52 @@ | ||
| { | ||
| "name": "Upgopher", | ||
| "slug": "upgopher", | ||
| "categories": [ | ||
| 11 | ||
| ], | ||
| "date_created": "2025-10-31", | ||
| "type": "ct", | ||
| "updateable": true, | ||
| "privileged": false, | ||
| "interface_port": 9090, | ||
| "documentation": "https://github.com/wanetty/upgopher#readme", | ||
| "config_path": "", | ||
| "website": "https://github.com/wanetty/upgopher", | ||
| "logo": "https://raw.githubusercontent.com/wanetty/upgopher/main/static/logopher.webp", | ||
| "description": "A simple Go web server for file upload, download, and browsing. Cross-platform alternative to Python-based file servers with no library dependencies. Features file upload via web interface, directory navigation, URL copying to clipboard, optional basic authentication, HTTPS support, and hidden files toggle.", | ||
| "install_methods": [ | ||
| { | ||
| "type": "default", | ||
| "script": "ct/upgopher.sh", | ||
| "resources": { | ||
| "cpu": 1, | ||
| "ram": 512, | ||
| "hdd": 4, | ||
| "os": "Debian", | ||
| "version": "12" | ||
|
||
| } | ||
| } | ||
| ], | ||
| "default_credentials": { | ||
| "username": null, | ||
| "password": null | ||
| }, | ||
| "notes": [ | ||
| { | ||
| "text": "Default: HTTP on port 9090, no authentication, uploads dir: /opt/upgopher/uploads", | ||
| "type": "info" | ||
| }, | ||
| { | ||
| "text": "To customize: edit /etc/systemd/system/upgopher.service and modify ExecStart line. Available flags: -user <user> -pass <pass> (authentication), -ssl (HTTPS with self-signed cert), -port <port> (custom port), -dir <path> (upload directory), -disable-hidden-files (hide hidden files)", | ||
| "type": "info" | ||
| }, | ||
| { | ||
| "text": "Example with auth: ExecStart=/opt/upgopher/upgopher -port 9090 -dir /opt/upgopher/uploads -user admin -pass mysecret", | ||
| "type": "info" | ||
| }, | ||
| { | ||
| "text": "After editing service file: systemctl daemon-reload && systemctl restart upgopher", | ||
| "type": "info" | ||
| } | ||
| ] | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,67 @@ | ||
| #!/usr/bin/env bash | ||
|
|
||
| # Copyright (c) 2021-2025 community-scripts ORG | ||
| # Author: Eduardo González (wanetty) | ||
| # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE | ||
| # Source: https://github.com/wanetty/upgopher | ||
|
|
||
| source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" | ||
| color | ||
| verb_ip6 | ||
| catch_errors | ||
| setting_up_container | ||
| network_check | ||
| update_os | ||
|
|
||
| msg_info "Installing Dependencies" | ||
| $STD apt-get install -y curl wget | ||
| msg_ok "Installed Dependencies" | ||
|
||
|
|
||
| msg_info "Installing Upgopher" | ||
| mkdir -p /opt/upgopher | ||
| cd /opt/upgopher | ||
| RELEASE_URL=$(curl -s https://api.github.com/repos/wanetty/upgopher/releases/latest | grep "browser_download_url.*linux_amd64.tar.gz" | cut -d '"' -f 4) | ||
| wget -q "$RELEASE_URL" | ||
| tar -xzf upgopher_*_linux_amd64.tar.gz | ||
| mv upgopher_*_linux_amd64/* . | ||
| rmdir upgopher_*_linux_amd64 | ||
| rm -f upgopher_*_linux_amd64.tar.gz | ||
| chmod +x upgopher | ||
|
||
| msg_ok "Installed Upgopher" | ||
|
Comment on lines
16
to
20
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. fetch_and_deploy_gh_release "upgopher" "wanetty/upgopher" "prebuild" "latest" "/opt/upgopher" "upgopher_.*_linux_amd64.tar.gz" |
||
|
|
||
| msg_info "Configuring Upgopher" | ||
| # Use default configuration (no authentication, HTTP, default port/directory) | ||
| # Users can modify /etc/systemd/system/upgopher.service after installation to enable features | ||
|
||
| UPGOPHER_PORT="9090" | ||
| UPGOPHER_DIR="/opt/upgopher/uploads" | ||
| mkdir -p "$UPGOPHER_DIR" | ||
| msg_ok "Configured Upgopher (default settings: no auth, HTTP, port 9090)" | ||
|
|
||
| msg_info "Creating Service" | ||
| cat <<EOF >/etc/systemd/system/upgopher.service | ||
| [Unit] | ||
| Description=Upgopher File Server | ||
| Documentation=https://github.com/wanetty/upgopher | ||
| After=network.target | ||
|
|
||
| [Service] | ||
| Type=simple | ||
| User=root | ||
| WorkingDirectory=/opt/upgopher | ||
| ExecStart=/opt/upgopher/upgopher -port $UPGOPHER_PORT -dir "$UPGOPHER_DIR" | ||
| Restart=always | ||
| RestartSec=5 | ||
|
|
||
| [Install] | ||
| WantedBy=multi-user.target | ||
| EOF | ||
| systemctl enable -q --now upgopher | ||
| msg_ok "Created Service" | ||
|
|
||
| motd_ssh | ||
| customize | ||
|
|
||
| msg_info "Cleaning up" | ||
| $STD apt-get -y autoremove | ||
| $STD apt-get -y autoclean | ||
|
||
| msg_ok "Cleaned" | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
make it against deb 13
apt-get --> apt
use deb822 format for apt lists