/planetary-annihilation-docker

A docker image for running a dedicated server for the game Planetary Annhilation and optionally the TITANS expansion

Primary LanguageDockerfileGNU Affero General Public License v3.0AGPL-3.0


GitHub


A docker image for running a dedicated server for the game Planetary Annihilation: Titans.

Quickstart

docker build \
    --build-arg PANET_USERNAME=<panet username> \
    --build-arg PANET_PASSWORD=<panet password> \
    -t pat https://github.com/FragSoc/planetary-annihilation-docker.git
docker run -d -p 20545:20545 pat

Building

Build Arg Key Default Decription
PA_STREAM_NAME stable Build stream to download the server from. Valid streams reported by papatcher as of 20th Jan 2021 are historical, legacy, legacy-pte, modern-pte, stable. See here.
PANET_USERNAME N/A Username to login to PANet with. Needs to own the game or be linked to a steam account which does. Required.
PANET_PASSWORD N/A Password for the provided username. Required.
UID 999 Unix UID to run the container as.
GID 999 Unix GID to run the container as.

Note: Credentials for the account are not stored in the final image.

Running

Port 20545 must be opened for client connections.

The container uses just one volume, to store replays: /replays.

Note: if you use a bind mount, the host path you mount into the container must be owned by the UID you passed to the build (see above table)

Environment

The container can be completely customised with environment variables:

Var name Default Value Notes
PA_TITANS_ENABLED yes Any other value will disable the TITANS expansion on the server
PA_AI_ENABLED yes Any other value will disable AI players on the server
PA_SERVER_NAME "A Dockerised PA:T Server"
PA_SERVER_PASSWORD "letmein" Leave blank for no password
PA_MAX_PLAYERS 12
PA_MAX_SPECTATORS 5
PA_SPECTATORS 5
PA_REPLAY_TIMEOUT 180
PA_GAMEOVER_TIMEOUT 360
PA_EMPTY_TIMEOUT 3600

For more information, see the official documentation.

In addition, passing a command to the container will pass that command through to the server binary as a parameter, though passing a parameter that the container already runs (see the above list and docker-entrypoint.sh) may result in undefined behaviour.

Licensing

The few files in this repository are licensed under the AGPL.

However, PA:T itself is licensed by Planetary Annihilation Inc.. No credit is taken for the software running in this container. Read their TOS for more information.