5232609719
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
36 lines
1.9 KiB
Markdown
36 lines
1.9 KiB
Markdown
# Empyrion - Galactic Survival
|
||
|
||
Panel-native dedicated server module for Empyrion.
|
||
|
||
## How it works
|
||
|
||
- Image: `panel-empyrion:latest` — built from `./Dockerfile` (Debian 12 + Wine + Xvfb + tini).
|
||
- Game files: downloaded by the panel's SteamCMD updater sidecar into the `panel-<id>-game` named volume. Because Empyrion's dedicated server ships only as a Windows binary, the updater uses `+@sSteamCmdForcePlatformType windows` (declared in `module.yaml` via `platform: windows`).
|
||
- Entrypoint: boots Xvfb, initializes a Wine prefix on first run, then runs `EmpyrionDedicated.exe` under `wine64` with `-batchmode -nographics -logFile -` so Unity pipes its log to stdout.
|
||
|
||
## First-run flow
|
||
|
||
1. Build the image (one-time):
|
||
```bash
|
||
docker build -t panel-empyrion:latest modules/empyrion
|
||
```
|
||
2. Create an instance in the panel (defaults are fine).
|
||
3. Click **Update** on the instance — the SteamCMD sidecar downloads ~3.5 GB of Windows build into the `game` volume.
|
||
4. Click **Start** — the entrypoint seeds `dedicated.yaml` from the shipped default, starts Xvfb, bootstraps Wine, and launches the server.
|
||
|
||
First boot is slow (Wine prefix init + Empyrion's own first-run map generation). Subsequent starts are 30–60s.
|
||
|
||
## Ports
|
||
|
||
| Name | Proto | Default | Notes |
|
||
|--------|-------|---------|-----------------------------|
|
||
| game | UDP | 30000 | Srv_Port — main traffic |
|
||
| query | UDP | 30001 | Steam query |
|
||
| client | UDP | 30002 | Client connect |
|
||
| eac | UDP | 30003 | EasyAntiCheat |
|
||
| csw | TCP | 30004 | CSW API (internal for now) |
|
||
|
||
## No RCON (yet)
|
||
|
||
Empyrion has no native RCON protocol. The in-game `admin` console commands can only be issued from a connected client. Third-party tools (Empyrion Web Admin / EAH) fill this gap and can be layered on later via plugins — not wired into this module for v1.
|