# SilverBullet — scripts (koopa) Product **FreeNotes** is separate (native enc). These scripts operate the parked **SilverBullet** web stack on port **9028**. | Script | Role | |--------|------| | `status.sh` | Read-only dirs / containers / `:9028` | | `build.sh` | `podman build` → `localhost/koopa-silverbullet:cachyos` | | `up.sh` | `podman-compose up` in `~/koopa-silverbullet` + health | | `cutover-to-silverbullet.sh` | Live freenotes → silverbullet (default **dry-run**; `--apply` mutates) | | `prepare-basicauth-seed.sh` | SoT → `/tmp/silverbullet-basicauth-seed.txt` (no sudo) | Caddy (sudo, separate): `scripts/caddy/merge-notes-site.sh`, `apply-notes-basicauth.sh`. ## Cutover order (needs Freigabe + DNS) On koopa as `hernani` (admin-log clone from Forgejo when needed): ```bash bash …/scripts/notes/status.sh bash …/scripts/notes/cutover-to-silverbullet.sh # dry-run bash …/scripts/notes/cutover-to-silverbullet.sh --apply # Freigabe ``` Then Caddy (root) + seed from laptop SoT: ```bash # laptop (unlocked secrets-enc): bash …/scripts/notes/prepare-basicauth-seed.sh scp /tmp/silverbullet-basicauth-seed.txt hernani@koopa:/tmp/ # koopa root: sudo bash …/scripts/caddy/merge-notes-site.sh sudo NOTES_AUTH_SEED=/tmp/silverbullet-basicauth-seed.txt \ bash …/scripts/caddy/apply-notes-basicauth.sh ``` DNS: `silverbullet.hacktivism.ch` → koopa (human). Public: `https://silverbullet.hacktivism.ch/`. Keeps on cutover: `space/`, `.env`. Refreshes compose/Containerfile/entrypoint/unit from `configs/notes/`.