Prepare Upgopher v1.20.0 adoption release - #5
Merged
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
Prepares the Upgopher v1.20.0 “adoption release” by refreshing top-level docs, adding a standalone GitHub Pages documentation site, and introducing first-party release/distribution automation (GoReleaser + Docker images + Pages publishing) while keeping runtime behavior compatible.
Changes:
- Bump reported application version to
1.20.0and refresh README / contributor-facing docs. - Add a static product/documentation website under
docs/(HTML/CSS/JS) and publish it via GitHub Pages. - Add/adjust release automation: GoReleaser draft releases, Homebrew/Scoop publishing, container builds to GHCR/Docker Hub, and verification scripts.
Reviewed changes
Copilot reviewed 29 out of 37 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| upgopher.go | Updates the application version string to v1.20.0. |
| SECURITY.md | Adds a security policy and private disclosure instructions. |
| scripts/enrich-scoop-manifest/main.go | Adds a helper to enrich the GoReleaser-generated Scoop manifest with update metadata. |
| scripts/create-demo-gif.go | Adds a stdlib-only tool to regenerate the README/website demo GIF. |
| scripts/container-smoke-test.sh | Adds a container smoke-test script covering uploads, readonly, auth, TLS, and ZIP. |
| scripts/check-community-scripts-contract.sh | Adds a release-archive contract check for Community Scripts (Linux amd64/arm64). |
| README.md | Replaces the long README with a shorter “getting started + positioning” doc and links to the website. |
| docs/index.html | Adds the product landing page (static HTML). |
| docs/getting-started.html | Adds installation + first-run guide for the website. |
| docs/configuration.html | Adds a flag/configuration reference page for the website. |
| docs/security.html | Adds a security/deployment guidance page for the website. |
| docs/troubleshooting.html | Adds a troubleshooting guide page for the website. |
| docs/assets/site.js | Adds small JS for nav toggle and install method tabs. |
| docs/assets/site.css | Adds the website styling (static, no build step). |
| docs/.nojekyll | Disables Jekyll processing for Pages. |
| Dockerfile | Reworks container build to a multi-arch BuildKit flow and a non-root scratch runtime image with /data + writable /tmp. |
| distribution/release-checklist.md | Adds a detailed v1.20.0 release verification checklist. |
| distribution/README.md | Documents required distribution repos and GitHub Actions secrets/scopes. |
| distribution/awesome-selfhosted.md | Prepares an awesome-selfhosted submission draft. |
| distribution/adoption-baseline.md | Adds a lightweight adoption metrics baseline for the adoption release. |
| CONTRIBUTING.md | Rewrites contribution guidance to match current architecture, constraints, and workflows. |
| .goreleaser.yml | Updates GoReleaser v2 configuration (archives, checksums, draft releases, Homebrew cask + Scoop publishing). |
| .gitignore | Ignores dist/ and adjusts ignored directories. |
| .dockerignore | Adds a Docker build context ignore list to keep images lean and avoid shipping docs/scripts/etc. |
| .github/workflows/ci.yml | Introduces CI for test/vet/build across OSes + a Linux race job + a release-contract job. |
| .github/workflows/release.yml | Adds a tag-triggered GoReleaser draft release workflow + Scoop manifest enrichment commit. |
| .github/workflows/docker.yml | Adds a tag-triggered multi-arch container build+push workflow to GHCR and Docker Hub. |
| .github/workflows/pages.yml | Adds a Pages deployment workflow for the docs/ site. |
| .github/workflows/go.yml | Removes the legacy tag-triggered GoReleaser workflow. |
| .github/release-notes/v1.20.0.md | Adds curated release notes for v1.20.0. |
Comment on lines
+120
to
+135
| <div class="install-tabs" role="tablist" aria-label="Installation method"> | ||
| <button class="install-tab" role="tab" aria-selected="true" aria-controls="install-brew">Homebrew</button> | ||
| <button class="install-tab" role="tab" aria-selected="false" aria-controls="install-scoop">Scoop</button> | ||
| <button class="install-tab" role="tab" aria-selected="false" aria-controls="install-docker">Docker</button> | ||
| <button class="install-tab" role="tab" aria-selected="false" aria-controls="install-go">Go</button> | ||
| </div> | ||
| </div> | ||
| <pre class="install-panel" id="install-brew"><span class="prompt">$</span> brew install --cask wanetty/tap/upgopher | ||
| <span class="prompt">$</span> upgopher -dir ./shared</pre> | ||
| <pre class="install-panel" id="install-scoop" hidden><span class="prompt">></span> scoop bucket add wanetty https://github.com/wanetty/scoop-bucket | ||
| <span class="prompt">></span> scoop install upgopher | ||
| <span class="prompt">></span> upgopher -dir .\shared</pre> | ||
| <pre class="install-panel" id="install-docker" hidden><span class="prompt">$</span> docker run --rm -p 9090:9090 \ | ||
| -v "$PWD:/data" wanetty/upgopher:1.20.0</pre> | ||
| <pre class="install-panel" id="install-go" hidden><span class="prompt">$</span> go install github.com/wanetty/upgopher@latest | ||
| <span class="prompt">$</span> upgopher -dir ./shared</pre> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Upgopher v1.20.0 — easier to discover, install, and choose
Upgopher v1.20.0 is an adoption release. The server's routes, flags,
authentication behavior, and file formats remain compatible with v1.19.1.
What is new
command.
troubleshooting documentation.
http.server, Dufs, File Browser, and Copyparty.Install
Release archives for Linux, macOS, and Windows are attached below. Verify a
download against
checksums.txtbefore running it.Compatibility
No HTTP routes, flags, authentication behavior, or file formats changed.
Existing installations can keep their current command line and data directory.
The Linux release archive names and embedded binary path remain compatible with
the Upgopher installer maintained by Proxmox Community Scripts. Existing LXC
instances continue using
/opt/upgopher/uploadsand their current systemdservice during updates.
Container notes
The image now runs as the non-root UID/GID
65532, serves/data, and keeps awritable
/tmpfor temporary ZIP files. Bind-mounted directories must grantthat identity the permissions required by your chosen mode.
Use the exact
1.20.0tag for predictable deployments.1.20,1, andlatestare convenience tags that can move.Intentional limits
Upgopher remains a compact browser-sharing server. It does not add WebDAV,
resumable uploads, multi-user roles, storage backends, or a persistent
administration database in this release.
Validation
make testmake test-racemake lintmake buildamd64andarm64Community Scripts release contractand ZIP downloads
See the getting-started guide
and security guide before
exposing an instance beyond a trusted network.