Simplify game files to automatic T5 and T6 uploads
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# Electric Cherry
|
||||
|
||||
Electric Cherry manages T5 and T6 Plutonium Zombies servers through its own host
|
||||
agents. Docker and Plutainer run the games; EC handles hosts, game libraries,
|
||||
agents. Docker and Plutainer run the games; EC handles hosts, game files,
|
||||
collections, configuration, campaigns, maintenance and operation history.
|
||||
Komodo is not required for native hosts.
|
||||
|
||||
@@ -29,18 +29,19 @@ The default Compose data mount preserves the previous
|
||||
`EC_DATA_DIR` to your preferred persistent directory. Back up that directory,
|
||||
including SQLite metadata and published game-file storage.
|
||||
|
||||
1. **Library → Game Files**: select T5 or T6 and upload the complete local game
|
||||
folder, including its DLC files. Name the library and version, then publish it.
|
||||
1. **Library → Game Files**: upload the complete local folder under T5 or T6,
|
||||
including its DLC files. There are no library names or version labels to enter.
|
||||
Each upload becomes the latest files for that game after verification.
|
||||
Uploads work before any host is enrolled.
|
||||
2. **Hosts → Add Host**: configure a Debian 12/13 amd64 machine and run its
|
||||
generated enrollment command. The host automatically prepares its Plutainer
|
||||
runtime and the latest published version of every game library. The host page
|
||||
runtime and the latest T5 and T6 files, when available. The host page
|
||||
shows setup progress. Automatic agent updates are enabled by default.
|
||||
3. Add the exact Plutonium server keys in **Keys**, or supply missing keys when
|
||||
launching.
|
||||
4. Launch a server or collection with a host and game-file version. The default
|
||||
runtime is selected automatically. EC reserves host-specific ports and verifies
|
||||
startup.
|
||||
4. Launch a server or collection on a host. The latest files for each game and
|
||||
the default runtime are selected automatically. EC reserves host-specific
|
||||
ports and verifies startup.
|
||||
|
||||
See [Native host management](docs/native-hosts.md) for installation, credentials,
|
||||
storage, failure recovery, API contracts and the live-host acceptance checklist.
|
||||
@@ -72,25 +73,31 @@ and safely retires existing servers as they become eligible.
|
||||
|
||||
Collections save target maps and lobby counts. Fill missing servers adds only the
|
||||
shortfall; Match collection exactly also queues safe removal of excess servers.
|
||||
Launch previews select a host, pinned base-game versions and an independent
|
||||
runtime image. Every new launch uses the latest promoted configuration, scripts
|
||||
and plugins when execution starts. Saved Plutonium keys are reused by exact
|
||||
server ID and retained after removal.
|
||||
Launch previews use the latest verified files for each game and select an
|
||||
independent runtime image. If newer game files become available before launch,
|
||||
refresh the preview to confirm the updated files. Every new launch uses the
|
||||
latest promoted configuration, scripts and plugins when execution starts. Saved
|
||||
Plutonium keys are reused by exact server ID and retained after removal.
|
||||
|
||||
## Libraries and campaigns
|
||||
|
||||
Game-file versions contain the uploaded T5/T6 folder, with its directory layout
|
||||
and included DLC preserved. There is no separate DLC declaration. Versions record
|
||||
the game, label, file manifest, checksums and size. Uploads use bounded chunks,
|
||||
support pause/resume and verify checksums before publication. Actual game files
|
||||
use dedicated filesystem storage, never SQLite blobs. Publishing a new version
|
||||
automatically prepares it on active hosts, including hosts enrolled later. Host
|
||||
downloads transfer up to four files concurrently, resume interrupted transfers,
|
||||
Game Files has one upload slot each for T5 and T6. Uploads preserve the folder's
|
||||
directory layout and included DLC; there is no separate DLC declaration.
|
||||
EC records immutable upload IDs, file manifests, checksums and sizes automatically.
|
||||
Uploads use bounded chunks, support pause/resume and verify checksums before
|
||||
publication. Actual game files
|
||||
use dedicated filesystem storage, never SQLite blobs. The last upload to finish
|
||||
verification becomes that game's latest files, even if it started earlier.
|
||||
Active hosts always prepare the latest T5 and T6 files when available, including
|
||||
hosts enrolled later. Host downloads transfer up to four files concurrently,
|
||||
resume interrupted transfers,
|
||||
report progress and verify checksums before becoming usable. Failed preparation
|
||||
retries automatically with backoff; the host page reports any blocking condition.
|
||||
Set `PLUTAINER_IMAGE` to change the default runtime prepared on hosts. Existing
|
||||
servers retain their selected library version and runtime.
|
||||
Multiple instances on one host share read-only base files.
|
||||
servers retain their existing files and runtime without a forced restart.
|
||||
Previous uploads, verified host copies and server references are preserved.
|
||||
Existing named libraries appear together under their game, with no renaming or
|
||||
reupload required. Multiple instances on one host share read-only base files.
|
||||
|
||||
Scripts, plugins, configuration baselines and overlays retain their versioning,
|
||||
beta, promotion and rollback workflows. Campaigns stage bytes remotely without
|
||||
@@ -101,7 +108,7 @@ operation history.
|
||||
T5 Zombies uses `t5sp` and `dedicated_sp.cfg`; T6 uses `t6zm` and
|
||||
`dedicated_zm.cfg`. Map selection generates `electric_cherry_map.cfg`, loaded
|
||||
after the main config. T6 variants retain their distinct catalog selections.
|
||||
Game-file libraries and Plutonium runtime revisions are tracked independently.
|
||||
Game-file uploads and Plutonium runtime revisions are tracked independently.
|
||||
|
||||
Game telemetry uses its own `EC_TELEMETRY_TOKEN`; configure reporters to send it
|
||||
in an authorization header. Anonymous reports are rejected before they can
|
||||
@@ -147,7 +154,7 @@ exercising enrollment. Production agent transport requires HTTPS.
|
||||
`src/lib/server/hosts` owns enrollment, readiness and command transport;
|
||||
`src/lib/server/backends` provides instance identity and remote file access;
|
||||
`src/lib/server/provisioning/native.ts` connects existing lifecycle and campaign
|
||||
queues to agents; `src/lib/server/game-files` owns immutable libraries and
|
||||
queues to agents; `src/lib/server/game-files` owns immutable game-file uploads and
|
||||
streaming distribution; `agent/` contains the service, installer and agent tests.
|
||||
|
||||
Automated tests use simulated Docker/game hosts. Real Debian installer and
|
||||
|
||||
Reference in New Issue
Block a user