cs16-dm-server: CS 1.6 deathmatch server in Docker

One-command setup (SteamCMD + pinned, checksum-verified ReHLDS / ReGameDLL /
Metamod-R / AMXX / ReAPI / ReUnion / CSDM-ReAPI / YaPB / GunGame), .env
settings, ./cs menu (map, DM/GunGame mode, bots, kill counter, restart,
update), own plugins (extras, rtv, mode switch), all-time kill counter,
watchdog + nightly backup, docs for admins and players.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
esefandClaude Opus 5.5 committed 2026-10-11 05:03:07 +03:00
commit 7e9cbee14d
33 files changed
+1890

No files matched your search

+31
View File
@@ -0,0 +1,31 @@
# CS 1.6 deathmatch server. Settings: .env (see .env.example). Setup: ./setup.sh
# Game: UDP ${CS_PORT} on all interfaces (network_mode host, so no port mapping needed).
services:
cs:
build: .
image: cs16-dm-server:local
container_name: ${CS_NAME:-cs16}
user: "${CS_UID:-1000}:${CS_GID:-1000}"
network_mode: host
restart: unless-stopped
init: true # tini as PID 1: if hlds crashes the container exits and Docker restarts it
ulimits:
core: 0 # a crash would otherwise write a ~170 MB core file
logging: # cap docker logs (console output grows forever)
driver: json-file
options:
max-size: "10m"
max-file: "3"
stdin_open: true
tty: true
env_file: .env
environment:
- HOME=/cs/steamcmd-home
volumes:
- ./hlds:/cs/hlds
- ./steamcmd-home:/cs/steamcmd-home
- ./secrets:/cs/secrets:ro
- ./tools:/cs/tools:ro
# start.sh writes .env values into the game configs, then runs hlds_run
# (-norestart: on a crash the container exits and Docker's restart policy takes over).
command: ["/bin/sh", "/cs/tools/start.sh"]