Ports push_scripts.sh (1497 lines of bash) to a SvelteKit + SQLite web app that manages a fleet of T5 Plutonium servers running on Komodo. Same push and beta workflow as the shell script, with a live SSE pipeline view, a !rt-token-gated auth modal that hard-pauses deployments on stale tokens, per-file audit diffs, and a Komodo-container deployment target. - Push/beta engines port the exact filter, held-by-beta, conflict, and stale-backup rules from the shell script - SQLite (better-sqlite3) replaces script_metadata.json; a one-shot importer moves legacy state over on first boot - 16 vitest tests cover push add/update/skip, beta open→rollback, open→promote, conflict guards, sweep frozen/manual branches, and IW4M login/status parsing - docker/ + komodo/stack.toml deploy as a managed container on the same host as the game servers, /root/zombies bind-mounted at the same path the shell script used
889 B
889 B
archive/
Holds retired code that's kept only for reference. Nothing here is executed by the app.
push_scripts.sh
The original shell CLI that this web app replaces. Move it here from the repo root once you've verified electric-cherry is doing the same job:
git mv ../push_scripts.sh ./push_scripts.sh.retired
The web app's docker/entrypoint.sh will call scripts/import-legacy.ts on
first boot to move any existing script_metadata.json into SQLite, so
retiring the shell script does not lose deployment history or open betas.
Parity check (run before archiving):
- On the Komodo host, run
./push_scripts.sh -nand capture the plan output. - Hit
POST /api/push { "dryRun": true }against the running web app. - Diff the two plans — the set of
added/updated/removedfiles per server must match exactly. Same for open beta listings vs-lb.