Files
electric-cherry/komodo/stack.toml
T
josh d99711563e Initial commit — SvelteKit fleet manager for T5 Plutonium servers
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
2026-09-12 00:23:51 -04:00

33 lines
1017 B
TOML

# Komodo stack definition. Deploys electric-cherry as a managed container on
# the same host running the T5 Plutonium servers. Mounts /root/zombies so the
# app can push scripts to the same paths push_scripts.sh used, and dedicates
# a small subdir for its SQLite state.
[[stack]]
name = "electric-cherry"
[stack.services.web]
image = "electric-cherry:latest"
restart = "unless-stopped"
ports = ["3000:3000"]
volumes = [
"/root/zombies:/root/zombies:rw",
"/root/zombies/.electric-cherry:/data:rw"
]
[stack.services.web.env]
SHARED_SCRIPTS = "/root/zombies/shared/scripts"
SERVERS_ROOT = "/root/zombies/t5"
REL_DEST = "runtime/plutonium/storage/t5/raw/scripts/sp"
DB_PATH = "/data/cherry.db"
LEGACY_METADATA = "/root/zombies/script_metadata.json"
DEPLOY_KEEP_DAYS = "7"
# secrets: bind via Komodo's env-file or secret store
KOMODO_ADDRESS = "https://komodo.example.internal"
KOMODO_API_KEY = ""
KOMODO_API_SECRET = ""
IW4M_ADDRESS = "http://iw4m.example.internal"
IW4M_CLIENT_ID = ""