What is this?
A Docker container that runs a SCUM dedicated server on Linux.
No manual Wine setup needed — everything is pre-configured and ready to go.
- Download
docker-compose.yml - Run
docker compose up -dand be patient1 - Launch SCUM and connect to your server using port 7779
- slim Debian Bookworm with Wine 10.0
- pre-configured 64-bit Wine prefix
- SCUM server startup script, which
-
- installs/updates steamcmd
-
- installs/updates SCUM dedicated server on startup
-
- runs a watchdog to avoid crashes due to low memory
- Linux
- Docker.io with docker compose
- 8GB free memory (bare minimum — 16GB+ recommended)
Don't want to use docker compose? Check decomposerize.
In your docker-compose.yml adjust GAMEPORT2 and QUERYPORT.
Warning
When GAMEPORT or QUERYPORT are altered, this change MUST reflect the port mapping as well.
Example for ports 10000 and 20000:
environment:
- GAMEPORT=10000
- QUERYPORT=20000
ports:
- "10000:10000/udp"
- "10000:10000/tcp"
- "10001:10001/udp"
- "10001:10001/tcp"
- "10002:10002/udp"
- "10002:10002/tcp"
- "20000:20000/udp"
- "20000:20000/tcp"The port for players to connect is now 10002.
Server config files are in the scumserver-data folder.
Providing instructions for in-game customization would be out of scope of this project.
Therefore please refer to Google.
This image does not come with an automated way to periodically restart.
You can set this up using a scheduled task (cronjob), like this:
0 */6 * * * YourDockerUser cd /path/to/docker/compose/file && docker compose restart
Need different time or interval but lacking knowledge of cron? Check crontab.guru
In your docker-compose.yml set ADDITIONALFLAGS=-nobattleye.
❓ How to configure memory watchdog3
Edit your docker-compose.yml file:
environment:
- MEMORY_THRESHOLD_PERCENT=95 # Stop SCUM server when system-wide memory usage exceeds %. Set 0 to disable
- MEMORY_CHECK_INTERVAL=60 # Check interval in secondsImages tagged as latest are tested and known to work.4
Any other tag represents active development and/or automated untested builds.
Some port exposures are unnecessary. However, I could not find clear documentation which ports and protocols are actually required. Exposing additional ports/protocols won't cause harm.
This is a reverse-engineered5 version of j0s0n/scum-wine, fixing update/restart issues and adding some enhancements. Credit for the original work goes to j0s0n.
Footnotes
-
Use
docker compose logs -fto check the process.
Once you see something likescum-server | LogBattlEye: Display: Config entry: MasterPort 8037
in the logs, your game server should be ready to accept player connections. ↩ -
SCUM uses 3 ports automatically: your
GAMEPORTplus the next two (e.g., 7777 → 7778, 7779). Players connect on the third port (7779).
Why this complexity? Who knows. The game developers decided this was a good idea... ↩ -
SCUM server suffers from memory leaks due to poor design. Most servers restart every few hours to avoid running out of memory, which can crash the server and corrupt data. This feature tries to initiate a graceful shutdown before that happens. ↩
-
"Tested and working" means I personally joined and briefly played on the server without issues. ↩
-
As the author of the original image seems reluctant to provide the Dockerfile, I decided to take matters into my own hands.
For the reason above the original image should be considered closed-source/proprietary. ↩