CSGO Training-Server einrichten

Das Spiel ist bekannt, viele spielten es schon als CS 1.6 (oder gar frühere Versionen...). Hier kurz und bündig die Installation eines Übungssservers basierend auf Docker.
Das folgende docker-compose.yml File enthält sowohl den Server selbst, als auch einen Auto-Restart Dienst der den CSGO-Container bei Updates neustartet:
# File: docker-compose.yml
version: "3"
services:
# Dokumentation: https://github.com/timche/docker-csgo-updater
csgo_updater:
container_name: "csgo_updater"
# timches Updater Image
image: "timche/csgo-updater"
restart: "unless-stopped"
# kann auch isoliert laufen, network_mode ist aber einfacher
network_mode: "host"
volumes:
# notwendig um via Socket Docker Befehle (wie einen Neustart) zu senden
- "/var/run/docker.sock:/var/run/docker.sock"
environment:
# Container mit dem folgenden Image werden berücksichtigt
UPDATER_CONTAINER_IMAGE: "timche/csgo"
# Interval (Sekunden) in denen Container gescannt werden
UPDATER_POLL_INTERVAL: 60
csgo_practice:
container_name: "csgo_practice"
# fertiges Image mit Training-Plugin
image: "timche/csgo:pug-practice"
restart: "unless-stopped"
network_mode: "host"
volumes:
- "/srv/docker/containers/csgo_practice/:/home/csgo/server:rw"
env_file:
- practice.env
Die practice.env möchte ich nicht unerwähnt lassen, in dieser Datei kommen alle Umgebungsvariablen hinein, die der Container berüsichtigt. Dieses Beispiel ist eine Untermenge der Möglichkeiten!
# File: practice.env
CSGO_GSLT=REPLACE_SPIELSERVER_ACCOUNT_KEY
CSGO_WS_API_KEY=REPLACE_MEIN_WEB_API_KEY
CSGO_MAP=de_mirage
CSGO_MAX_PLAYERS=16
CSGO_HOSTNAME=My Train server
CSGO_RCON_PW=mein_rcon_pw
CSGO_PW=mein_server_password
CSGO_TICKRATE=64
CSGO_GAME_TYPE=0
CSGO_TV_ENABLE=true
CSGO_TV_NAME=My Train TV
CSGO_TV_DELAY=45
CSGO_TV_PORT=27020
CSGO_DISABLE_BOTS=true
Eine Auflistung und weitere Informationen für die REPLACE*Keys findet man bei Timche im Projekt:
https://github.com/timche/docker-csgo/blob/main/README.md
Zusammenfassung:
Es können beliebig viele CSGO-Server gestartet werden, hierzu muss lediglich ein weiterer Service in der docker-compose.yml hinzugefügt werden. Der CSGO-Updater Container prüft, ob die Spiele-Container vom Steam-Server zu einem restart gebeten werden. Erkennt der Updater dies, löst er einen Restart aus (sofern der Server leer ist) und die CSGO-Server-Container laden die aktuelle Spieleversion herunter.