"No key" was misleading. CoD4x has no Plutonium-style key, but a public server does need a masterserver token: without one it cannot register, and an unregistered server never appears in the in-game server browser, so in practice nobody finds it. Only players given the address can connect directly. Host migration needs one too. The engine documents the source itself - sv_authtoken is registered with the description "Token to register on masterserver. You can get it from http://cod4master.cod4x.ovh" - and validates it at 32 characters. Both are now in the docs, along with what actually happens when it is absent. Corrected in the README game table, the games at-a-glance table, the quickstart prerequisites, the variable reference, the troubleshooting entry, and both examples. IW4x and T7x really do need nothing and are left as they were.
3.9 KiB
Configuration
Every setting is an environment variable. Only two are required.
Required
| Variable | Description |
|---|---|
PLUTAINER_GAME |
Which game — t4mp, t4sp, t5mp, t5sp, t6mp, t6zm, iw5mp, iw4x, t7x, cod4x |
PLUTAINER_CONFIG_FILE |
Which config to run, e.g. dedicated_zm.cfg. Must exist in app/configs/ — Plutainer seeds one on first start (names per game) |
Plutonium games (t4*, t5*, t6*, iw5mp) also require PLUTO_SERVER_KEY.
Common
| Variable | Description | Default |
|---|---|---|
PLUTAINER_PORT |
Network port | per game |
PLUTAINER_RCON_PASSWORD |
Sets rcon_password in your config at startup. Opt-in — unset leaves your config untouched |
unset |
PLUTAINER_SERVER_NAME |
Name shown in Plutainer's own startup logs (not the in-game hostname — that's sv_hostname in your cfg) |
per family |
PLUTAINER_MOD |
Mod folder name. On T7x, a Steam Workshop ID instead | unset |
PLUTAINER_MAP_ROTATE |
false drops the automatic +map_rotate (+start_map_rotate on IW5), leaving map choice to your cfg or playlist. N/A on T7x |
true |
PLUTAINER_EXTRA_ARGS |
Extra arguments appended to the launch command | unset |
PLUTAINER_AUTO_UPDATE |
false skips update checks at startup |
true |
PLUTAINER_HEALTHCHECK |
false disables the healthcheck |
true |
PLUTAINER_SKIP_SEED |
true skips seeding default configs |
false |
PLUTAINER_USE_RAW_CONFIGS |
true puts cfg files directly at the engine path instead of app/configs/ — see Volumes & configs |
false |
PLUTAINER_LOG_SYMLINKS |
false disables the app/logs/ symlink watcher |
true |
PLUTAINER_LOG_POLL_INTERVAL |
Seconds between log watcher polls | 2 |
PLUTAINER_LOG_MAX_SIZE |
Rotate a game log once it reaches this size. Accepts 64M, 1G, or plain bytes. 0 disables rotation |
64M |
PLUTAINER_LOG_KEEP |
How many rotated copies to keep. 0 truncates without keeping one |
1 |
Don't set
rcon_passwordthroughPLUTAINER_EXTRA_ARGS. Plutainer can't read it back from there, sorcon-cliand IW4MAdmin won't find it. UsePLUTAINER_RCON_PASSWORDor the config file.
Game-specific
These only apply to one engine family.
| Variable | Description | Applies to |
|---|---|---|
PLUTO_SERVER_KEY |
Required. Key from https://platform.plutonium.pw/serverkeys | Plutonium |
PLUTO_MAX_CLIENTS |
Maximum players (other games set this in the cfg) | Plutonium T5 |
IW4X_NET_LOG_IP |
IP:port for remote netlogging (g_log_add) |
IW4x |
PLUTAINER_COD4X_AUTH_TOKEN |
Masterserver token, 32 characters, from http://cod4master.cod4x.ovh. Without one the server runs but is never listed in the server browser | CoD4x |
PLUTAINER_COD4X_AUTHORIZE_MODE |
sv_authorizemode used when no token is set (default -1) |
CoD4x |
PLUTAINER_DEDICATED |
dedicated value: 2 public, 1 LAN (default 2) |
CoD4x |
PLUTAINER_RCON_WHITELIST |
Extra addresses allowed to send RCON, comma separated. See IW4MAdmin | T5, T6 |
PLUTAINER_RCON_WHITELIST_GATEWAY |
false stops auto-whitelisting the Docker gateway (default true) |
T5, T6 |
Ports
| Game | Default |
|---|---|
| t4, t5, iw4x, cod4x | 28960 |
| t6 | 4976 |
| iw5 | 27016 |
| t7x | 27017 |
Publish as UDP. IW4x additionally wants TCP published if you host mods, for modlist metadata:
ports:
- "28960:28960/udp"
- "28960:28960/tcp" # IW4x mod hosting only
Legacy variables
The PLUTO_* / IW4X_* / ALTER_* names from the v1 image are not accepted and are silently ignored. Three survive because they only ever applied to one family: PLUTO_SERVER_KEY, PLUTO_MAX_CLIENTS, IW4X_NET_LOG_IP.
Upgrading from v1? See MIGRATION.md. Plutainer detects a v1 volume or v1 variables and refuses to start with instructions rather than silently doing the wrong thing.