Require signed agent releases (Refs #64)
This commit is contained in:
@@ -9,6 +9,8 @@ HTTPS. Running game containers continue through controller or agent outages.
|
||||
|
||||
- A controller machine with Docker Compose and an HTTPS reverse proxy.
|
||||
- Debian 12 or 13 amd64 game hosts with storage for game files and instances.
|
||||
- A signed agent release, plus its publisher's public key and reviewed installer
|
||||
obtained through a trusted channel independent of the controller.
|
||||
- Your complete T5 or T6 game folders, including the DLC you intend to host.
|
||||
- Plutonium server keys for each game, with one unused key per new concurrent lobby.
|
||||
|
||||
@@ -37,6 +39,13 @@ For an existing installation, retain its original data directory. Compose
|
||||
defaults to `/root/zombies/.electric-cherry`; choose a dedicated directory for a
|
||||
new controller. See [.env.example](../../.env.example) for the other settings.
|
||||
|
||||
Before building for game hosts, obtain the publisher's signed `static/agent`
|
||||
artifacts and matching source revision, or follow
|
||||
[Publishing signed releases](native-hosts.md#publishing-signed-releases)
|
||||
for your own build. Normal builds preserve signatures for identical artifacts;
|
||||
source changes require a new offline signature. An unsigned controller can run,
|
||||
but hosts reject its agent installation and updates.
|
||||
|
||||
```sh
|
||||
docker compose up -d --build
|
||||
```
|
||||
@@ -60,15 +69,24 @@ password recovery.
|
||||
1. Open **Releases → Game files** and upload the complete local folder for T5 or
|
||||
T6, including DLC. Uploads can run before any host is enrolled. The latest
|
||||
verified upload becomes that game's default files.
|
||||
2. Open **Fleet → Hosts → Add Host**, configure the host's game-port range and
|
||||
bind address, and run the generated enrollment command on the host.
|
||||
3. Wait for automatic setup to prepare the Plutainer runtime and available game
|
||||
2. [Provision release trust](native-hosts.md#provision-release-trust): independently
|
||||
verify the publisher key's full fingerprint, install its binary public key at
|
||||
`/etc/electric-cherry/release-signing.gpg`, and copy the reviewed installer to
|
||||
`./electric-cherry-install.sh` on the host. Both come from the trusted publisher.
|
||||
3. Open **Fleet → Hosts → Add Host**, configure the host's game-port range and
|
||||
bind address, and run the generated enrollment command from the directory
|
||||
containing that local installer. Do not pipe controller-downloaded code into
|
||||
a root shell.
|
||||
4. Wait for automatic setup to prepare the Plutainer runtime and available game
|
||||
files. The host page reports download, verification, and readiness progress.
|
||||
|
||||
The installer sets up the Python agent as a systemd service and enables automatic
|
||||
agent updates. It installs Docker if needed. Multiple instances share read-only
|
||||
base game files; each instance has its own writable data. See
|
||||
[Native hosts](native-hosts.md) for storage layout, network access, and recovery.
|
||||
Existing hosts using updater protocol 1 need a
|
||||
[trusted installer migration](native-hosts.md#automatic-agent-updates) before
|
||||
controller-independent release verification takes effect.
|
||||
|
||||
## Launch your first server
|
||||
|
||||
|
||||
Reference in New Issue
Block a user