Files
miniSCP/site/README.md
T
jgamboaandClaude 43f1168d6a Add landing page + Caddy download host (site/)
Self-contained, no-JS landing page (tinygrad-minimal) that doubles as the
artifact download host, served by Caddy on an internal :80 box.

- site/index.html: static page, "Same tool, only a little different", feature
  highlights (remote->remote, symmetric panels, ssh_config awareness, edit-in-
  place, self-copy guard, ...), fixed stable download links, FAQ (unsigned notes).
- site/Caddyfile: one flat /dl/ folder with browse + range requests and per-type
  Cache-Control (patches immutable, update.json no-cache, installers short).
- site/deploy.sh: drop a build's artifacts/stable-* into /dl/ (renames the win
  portable zip to a stable name).
- Flat folder matches electrobun's artifacts/ layout, so it's also the future
  updater baseUrl; per-build folders/symlink dropped in favor of it.
- docs/build-and-release.md: document the download host + deploy flow.

Verified: caddy validate + live smoke test (links, cache headers, 206 range,
404 fallback, deploy.sh copy/rename) against a temp root.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-14 15:59:05 +02:00

2.2 KiB

miniSCP site

The all-in-one landing page and download host for miniSCP. One static page, one flat download folder, served by Caddy. No JS, no build step.

Layout

site/
  index.html    # the landing page (pure static HTML/CSS)
  Caddyfile     # local :80 server config
  deploy.sh     # copy a build's artifacts into the download folder
  assets/       # images (logo, screenshots) — dropped in as they're ready

Deploys to /srv/miniscp on the server:

/srv/miniscp/
  index.html
  assets/
  dl/           # flat folder of all artifacts (the downloads + future updater feed)

Run it

# from the repo root, on the server
sudo mkdir -p /srv/miniscp/dl
sudo cp site/index.html /srv/miniscp/
sudo cp -r site/assets /srv/miniscp/     # once assets exist

caddy run --config site/Caddyfile --adapter caddyfile
# or install as a service:  sudo caddy start --config site/Caddyfile

Then open http://<host>/.

Publish a build

electrobun can't cross-compile, so each OS/arch is built on its own machine. On each build machine, after producing artifacts, drop them into the shared dl/ folder:

bun scripts/release.ts            # or --target mac-x64 / win-x64
site/deploy.sh                    # -> /srv/miniscp/dl

Serving on a different box than you build on? Stage locally, then sync:

MINISCP_DL_DIR=./_dl site/deploy.sh
rsync -av ./_dl/ user@host:/srv/miniscp/dl/

That's the whole workflow: build, drop the artifacts, done. Installers keep stable names and overwrite in place, so the download links on the page never change.

Don't delete old *.patch files. They're the incremental-update trail for the (upcoming) built-in updater — removing them forces older installs to re-download the full app.

Notes

  • Downloads live under /dl/ and are browsable at http://<host>/dl/.
  • The page links to fixed, stable filenames (stable-macos-arm64-miniSCP.dmg, …) so it stays static and always points at the latest build.
  • Builds are currently unsigned — the FAQ on the page covers the macOS xattr step and the Windows SmartScreen prompt.
  • /dl/ is also the intended release.baseUrl for the future electrobun auto-updater.