# site/ — gotchas Hand-authored static tree for **silentmode.st**. No build step. Served by nginx from `/opt/silent-mode/site/` on the VPS (ssh alias `silentmode`), and mirrored to Sia (`s3://bns/silentmode/` → `silentmode.bch`) by the `silentmode-sia-sync.timer` on the VPS every 5 minutes. Anything that lands in `/opt/silent-mode/site/` reaches the `.bch` mirror on its own; you do not need to run `sia-upload.js` for site files any more. ## Never `rsync --delete` (or blanket-overwrite) `site/` → the VPS `/opt/silent-mode/site/` holds far more than this folder: `sirius-x/`, `deviant/` (the full Deviant site incl. `wallet/`, `artemision/`, `katalogos/`, `agora/`), `apps/`, `code/`. Those are deployed from **other repos**. In particular `site/deviant/` here is a **stale Aug-31 copy**; the canonical source is `D:\Dev\Deviant\site\deviant\` and the VPS already carries the newer Sep-1 pages. Pushing this folder wholesale would roll them back. Ship **individual files**: `scp site/ silentmode:/opt/silent-mode/site/`. ## The release manifest lives in three places - `https://dl.silentmode.st/releases-manifest.json` — canonical (`/opt/silent-mode/dl/`), what `releases.silentmode.bch` points at. - `/opt/silent-mode/site/releases-manifest.json` — what `tools/index.html` links as `../releases-manifest.json`, and what the Sia mirror syncs. - `site/releases-manifest.json` — the committed source of both. The ship checklist (`Ship Theseus …` commits) must scp it to **both** VPS paths. It was missed for `site/` from 0.3.4 through 0.3.16 (found 2026-09-07): the HTML pages were current while the JSON next to them still said 0.3.3. ## Old Theseus builds fill the VPS disk `scripts/theseus-vps-archive.sh ` moves everything older than N-1 to Sia and deletes it from `/opt/silent-mode/dl/`. Run it after every ship; when it is skipped the 48 GB disk climbs ~245 MB per release. ## Pages that are not silentmode.st pages `hephaestus.x/` is the landing for the `.x` name and is served from Sia via the gateway (`navigate.st/bns/hephaestus.x/`); the copy under `/opt/silent-mode/site/` is just parity. `choose/` has no top nav on purpose.