Clean up README and organize documentation
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
# Getting started
|
||||
|
||||
Electric Cherry runs a web controller and an agent on each game host. The
|
||||
controller stores fleet metadata in SQLite and uploaded game files on disk.
|
||||
Agents run Docker/Plutainer locally and connect outbound to the controller over
|
||||
HTTPS. Running game containers continue through controller or agent outages.
|
||||
|
||||
## Requirements
|
||||
|
||||
- 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.
|
||||
- Your complete T5 or T6 game folders, including the DLC you intend to host.
|
||||
- Plutonium server keys for the exact lobby identities you will launch.
|
||||
|
||||
The controller does not need access to a Docker socket, game-host mounts, or
|
||||
inbound RCON. Host agents handle local game commands and file operations.
|
||||
|
||||
## Start the controller
|
||||
|
||||
From the repository root:
|
||||
|
||||
```sh
|
||||
cp .env.example .env
|
||||
openssl rand -hex 32
|
||||
```
|
||||
|
||||
Set these values in `.env`:
|
||||
|
||||
| Variable | Purpose |
|
||||
| --- | --- |
|
||||
| `EC_PUBLIC_URL` | The external HTTPS address of the dashboard. |
|
||||
| `EC_SETUP_TOKEN` | The generated secret, used to create the first administrator. |
|
||||
| `EC_DATA_DIR` | A persistent directory for the database, game files, and beta archives. |
|
||||
| `EC_TELEMETRY_TOKEN` | A separate secret of at least 32 characters for game reporters. Generate it independently with the same command. |
|
||||
|
||||
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.
|
||||
|
||||
```sh
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
Proxy the HTTPS address to controller port 3000. Open the dashboard and follow
|
||||
`/setup` to create the first administrator. Then remove `EC_SETUP_TOKEN` from
|
||||
`.env` and run `docker compose up -d` to recreate the controller. Setup stays
|
||||
closed once an account exists.
|
||||
|
||||
Add other users under **Administration → Users**. The
|
||||
[access guide](authentication.md) explains roles, proxy configuration, and
|
||||
password recovery.
|
||||
|
||||
## Prepare a game host
|
||||
|
||||
1. Open **Library → 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
|
||||
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.
|
||||
|
||||
## Launch your first server
|
||||
|
||||
1. Save the exact Plutonium server keys under **Administration → Keys**.
|
||||
2. Create a server, or build a reusable map lineup in **Fleet → Collections**.
|
||||
3. Review the launch and apply it. Provisioning queues the work, then assigns a
|
||||
host and port when capacity is available.
|
||||
4. Follow the operation until readiness checks pass, then verify that players
|
||||
can find and join the server.
|
||||
|
||||
New launches use the latest verified game files and promoted configuration,
|
||||
scripts, and plugins. Uploading newer game files does not restart existing
|
||||
servers. Disruptive operations normally wait for a fresh empty lobby or a
|
||||
verified stopped container. A rebuild removes the instance's writable files.
|
||||
See [Provisioning](provisioning.md) and [Collections](collections.md) for details.
|
||||
|
||||
## Connect game telemetry
|
||||
|
||||
Configure your game reporter or plugin to send `EC_TELEMETRY_TOKEN` in an
|
||||
authorization header to `POST /api/telemetry`. This credential is separate from
|
||||
browser login, setup, and host enrollment. Ingestion is disabled until the
|
||||
controller has a valid telemetry token.
|
||||
|
||||
The [game reporter protocol](beta-test-plans.md#game-reporter-protocol) defines
|
||||
events and payloads for gameplay statistics and beta-test evidence. Electric
|
||||
Cherry does not include the game reporter scripts themselves.
|
||||
|
||||
## Maintain the installation
|
||||
|
||||
Back up the complete controller data directory, including SQLite metadata and
|
||||
published game files. Preserve that directory across upgrades. Review
|
||||
[Maintenance](maintenance.md) for scheduled work and
|
||||
[Fleet settings](settings.md) for concurrency and retention controls.
|
||||
|
||||
For lobby autoscaling, start with the documented
|
||||
[dry run and pilot](autoscaling.md#dry-run-and-pilot) before enabling live actions.
|
||||
Reference in New Issue
Block a user