Scripts become first-class: named, versioned, uploaded via the UI, optionally scoped to a game or map. Any change that would land on scope-matched servers (marking-required or new version of a scoped script) must first pass a beta. The beta runs a per-server state machine — deploy -beta.gsc → wait empty → Komodo restart → wait healthy → optionally wait for a real match end (games_sp.log 'ExitLevel: executed') — before it's eligible for promotion. Rollback is always available and restores from .OLD. The shared/scripts mirror and its betas/ staging folder are gone. Every server now has a tracked script inventory (server_scripts table), populated only by explicit upload flows. New: /scripts, /scripts/[id], /betas/[id] UI; /api/scripts + /api/betas + /api/servers/[name]/scripts endpoints; scripts.ts, inventory.ts, beta.ts (rewritten), beta-runner.ts, match-log.ts, komodoInspectHealthy(). Removed: push.ts, /api/push, BetaPanel, legacy importer. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
27 lines
826 B
Bash
27 lines
826 B
Bash
# Filesystem paths — inside the Komodo container, these mirror the host layout
|
|
SERVERS_ROOT=/root/zombies/t5
|
|
REL_DEST=runtime/plutonium/storage/t5/raw/scripts/sp
|
|
# On-disk archive of active beta files (cleared per-beta on promote/rollback)
|
|
BETA_ARCHIVE_DIR=/root/zombies/beta-archive
|
|
|
|
# SQLite location
|
|
DB_PATH=/data/cherry.db
|
|
|
|
# Retention (days) for deployment rows and blob diffs
|
|
DEPLOY_KEEP_DAYS=7
|
|
|
|
# Komodo
|
|
KOMODO_ADDRESS=https://komodo.example.internal
|
|
KOMODO_API_KEY=
|
|
KOMODO_API_SECRET=
|
|
|
|
# RCON — shared across the fleet (every server uses the same rcon_password).
|
|
# Host defaults to host.docker.internal so the container can reach game
|
|
# servers on the same Docker host; override if RCON lives elsewhere.
|
|
RCON_PASSWORD=
|
|
RCON_HOST=host.docker.internal
|
|
RCON_TIMEOUT_MS=3000
|
|
|
|
# HTTP (Komodo API)
|
|
HTTP_TIMEOUT_MS=10000
|