Files
miniSCP/site/README.md
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

70 lines
2.2 KiB
Markdown

# miniSCP site
The all-in-one landing page **and** download host for miniSCP. One static page, one flat
download folder, served by [Caddy](https://caddyserver.com). 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
```bash
# 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:
```bash
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:
```bash
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.