CSGO Training Server mit Docker und Auto-Update
Vorwort
Das Spiel ist Programm, viele spielten es schon mit 1.6, oder gar früheren Versionen.
Hier kurz und bündig die Installation eines Training-Servers basierend auf Docker.
Installation
Es können beliebig viele CSGO-Server gestartet werden, einfach einen weiteren Service in der docker-compose.yml und weitere env-Datei hinzufügen! Der Auto-Updater erkennt selbständig weitere Instanzen.
# 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
In der practive.env kommen alle Umgebungsvariablen hinein, die der Container berüsichtigt.
Weitere Informationen und Anleitungen für die REPLACE_-Keys findet man im Projekt
https://github.com/timche/docker-csgo/blob/main/README.md
# 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
Auto-Update
Der CSGO-Updater Container prüft im Stdout-Log des Spieleservers, ob diese vom Steam-Server zu einem restart gebeten werden (MasterRequestRestart).
Wird die Zeile erkannt, löst der Updater einen Restart aus (sofern der Server leer ist) und die CSGO-Server-Container laden die aktuelle Spieleversion herunter.