A Docker container to host a Zandronum game server
241
This repository provides a Dockerized Zandronum dedicated server suitable for running multiplayer Doom servers in a clean, reproducible way.
The image is designed for headless operation, supports bind-mounted WADs and configuration, and handles legacy runtime dependencies required by Zandronum.
zandronum-server)server.ini if none existsgosuservices:
zandronum:
image: lancommander/zandronum:3.2.1
container_name: zandronum-server
# Zandronum uses UDP
ports:
- "10666:10666/udp"
# Bind mounts so files appear on the host
volumes:
- ./config:/config
environment:
# Optional: download mods/maps at startup
# EXTRA_WAD_URLS: >
# https://example.com/maps.zip,
# https://example.com/gameplay.pk3
# Optional overrides
# SERVER_PORT: 10666
# SERVER_CONFIG: /config/server.ini
# SERVER_ARGS: '+map map01 +sv_hostname "My Zandronum Server"'
# Ensure container restarts if the server crashes or host reboots
restart: unless-stopped
.
├── config/
│ └── server.ini
├── doom2.wad
├── gameplay.pk3
└── maps.zip
Both directories must be writable by Docker.
If /config/server.ini does not exist, the container will generate a minimal default on first startup.
An autoexec.cfg file can also be created for adjusting server settings.
Example:
set sv_hostname "My Zandronum Server"
set sv_maxclients 16
set sv_maxplayers 16
set sv_broadcast 1
set sv_coop 1
set sv_deathmatch 0
set sv_teamplay 0
All gameplay rules, cvars, maps, and RCON settings should live here.
All matching files in /config are automatically loaded at startup and passed to Zandronum using -file arguments.
Supported file types:
.wad.pk3.pk7.pke.zipArchives provided via EXTRA_WAD_URLS are extracted into /config before startup.
| Variable | Description | Default |
|---|---|---|
SERVER_PORT | UDP port the server listens on | 10666 |
SERVER_CONFIG | Path to the server configuration file | /config/server.ini |
EXTRA_WAD_URLS | URLs to download and extract into /config at startup | (empty) |
SERVER_ARGS | Additional Zandronum command-line arguments (advanced) | (empty) |
EXTRA_WAD_URLSA list of URLs separated by commas, spaces, or newlines.
Examples:
EXTRA_WAD_URLS="https://example.com/maps.zip,https://example.com/mod.pk3"
Archives are extracted into /wads. Single files are copied as-is.
mkdir -p config wads
chmod -R 777 config wads
docker run --rm -it \
-p 10666:10666/udp \
-v "$(pwd)/config:/config" \
lancommander/zandronum:3.2.1
docker run --rm -it
-p 10666:10666/udp
-v "$(pwd)/config:/config"
-e EXTRA_WAD_URLS="https://example.com/modpack.zip"
lancommander/zandronum:3.2.1
Zandronum is distributed under its own license. This repository contains only Docker build logic and helper scripts licensed under MIT.
Content type
Image
Digest
sha256:298324ec0…
Size
162.8 MB
Last updated
8 months ago
docker pull lancommander/zandronum:3.2.1