Files
tmserver-docker/docs/umgebungsvariablen.md
2026-03-20 18:51:49 +01:00

5.5 KiB

Umgebungsvariablen

Alle Umgebungsvariablen werden über die .env-Datei konfiguriert, die von docker-compose.yml automatisch eingelesen wird. Alternativ können sie beim docker run über --env-file .env oder einzeln mit -e gesetzt werden.

Die Variablen werden beim ersten Start (leeres GameData-Volume) in die dedicated_cfg.txt eingetragen. Bei weiteren Starts bleiben manuelle Änderungen erhalten. Siehe Konfiguration für Details.

Sicherheitshinweis: Sensible Werte (Passwörter, Keys) sind nicht im Docker-Image hinterlegt. Sie werden ausschließlich zur Laufzeit über die .env-Datei übergeben. Die .env-Datei ist über .gitignore und .dockerignore geschützt und wird weder ins Git noch in den Docker-Build-Context aufgenommen.

Einrichtung

# Vorlage kopieren
cp .env.example .env

# Werte anpassen
nano .env

Authentifizierung

Variable Beschreibung Standard
SERVER_SA_PASSWORD SuperAdmin-Passwort SuperAdmin
SERVER_ADM_PASSWORD Admin-Passwort Admin
SERVER_USER_PASSWORD User-Passwort User

Masterserver-Account

Variable Beschreibung Standard
SERVER_LOGIN Masterserver-Login (nur Internet-Modus) (leer)
SERVER_LOGIN_PASSWORD Masterserver-Passwort (leer)
SERVER_VALIDATION_KEY Masterserver-Validierungsschlüssel (leer)

Wichtig: Im Internet-Modus müssen SERVER_LOGIN und SERVER_VALIDATION_KEY gesetzt sein, andernfalls startet der Server nicht.

Server-Optionen

Variable Beschreibung Standard
SERVER_NAME Servername (im Spiel sichtbar) Trackmania Server
SERVER_DESC Serverbeschreibung Powered by tmserver-docker
SERVER_HIDE Server verstecken (0 = sichtbar, 1 = versteckt, 2 = vor Nations versteckt) 0
SERVER_MAX_PLAYERS Maximale Spieleranzahl 32
SERVER_PASSWORD Passwort zum Beitreten (leer = offen) (leer)
SERVER_MAX_SPECTATORS Maximale Zuschaueranzahl 32
SERVER_SPEC_PASSWORD Zuschauer-Passwort (leer = offen) (leer)
SERVER_LADDER_MODE Ladder-Modus (inactive oder forced) forced

Netzwerk

Variable Beschreibung Standard
SERVER_PORT Gameserver-Port 2350
SERVER_P2P_PORT P2P-Port 3450
SERVER_XMLRPC_PORT XML-RPC-Port (intern für AdminServ) 5000
SERVER_UPLOAD_RATE Upload-Rate in Kbps 512
SERVER_DOWNLOAD_RATE Download-Rate in Kbps 8192

Server-Modus & Steuerung

Variable Beschreibung Standard
SERVER_MODE Server-Modus (internet oder lan) internet
FORCE_CONFIG_UPDATE Erzwingt erneutes Anwenden aller Umgebungsvariablen auf die Config false

RemoteCP

RemoteCP verwendet die SuperAdmin-Zugangsdaten (SERVER_SA_PASSWORD) des TM-Servers für den Web-Login. Es werden keine separaten Login-Variablen benötigt.

Variable Beschreibung Standard
REMOTECP_DB_HOST Hostname des Datenbankservers mariadb
REMOTECP_DB_NAME Name der RemoteCP-Datenbank remotecp
REMOTECP_DB_USER Datenbank-Benutzername remotecp
REMOTECP_DB_PASSWORD Datenbank-Passwort (muss gesetzt werden)

Hinweis: Diese Werte werden nur beim ersten Start (leeres Volume) angewendet. Weitere Details unter RemoteCP.

MariaDB

Variable Beschreibung Standard
MARIADB_ROOT_PASSWORD Root-Passwort für den MariaDB-Server (muss gesetzt werden)

Wichtig: MARIADB_ROOT_PASSWORD muss gesetzt sein, damit der MariaDB-Container startet. Die Datenbank und der Benutzer für RemoteCP werden automatisch aus REMOTECP_DB_NAME, REMOTECP_DB_USER und REMOTECP_DB_PASSWORD erstellt.

Hinweis: Der MariaDB-Container kann mehrere Datenbanken beherbergen. Zusätzliche Datenbanken und Benutzer können über den Root-Zugang erstellt werden.

Debugging

Variable Beschreibung Standard
PHP_DISPLAY_ERRORS Zeigt PHP-Fehlermeldungen im Browser an (nur zur Fehlersuche!) false

Hinweis: Der Debug-Modus erfordert keinen Rebuild des Images. Es genügt, die Variable in der .env-Datei zu ändern und den Container neu zu starten (docker compose restart). Im Produktivbetrieb sollte PHP_DISPLAY_ERRORS immer auf false stehen.

Hinweis: Bei FORCE_CONFIG_UPDATE=true wird die dedicated_cfg.txt aus dem Template neu erzeugt und alle Platzhalter mit den aktuellen Umgebungsvariablen ersetzt. Manuelle Änderungen gehen dabei verloren! Nach dem Update sollte FORCE_CONFIG_UPDATE wieder auf false gesetzt werden.

Beispiel

Docker Compose (empfohlen)

Passe die Werte in der .env-Datei an und starte mit:

docker compose up -d --build

docker run

docker run -d \
  --env-file .env \
  -p 2350:2350/tcp \
  -p 2350:2350/udp \
  -p 3450:3450/tcp \
  -p 80:80/tcp \
  -v ./data/GameData:/opt/tmserver/GameData \
  --name tmserver tmserver:latest

Einzelne Werte können zusätzlich überschrieben werden:

docker run -d \
  --env-file .env \
  -e SERVER_NAME="Mein Server" \
  -e SERVER_MAX_PLAYERS=64 \
  -p 2350:2350/tcp \
  -p 2350:2350/udp \
  -p 3450:3450/tcp \
  -p 80:80/tcp \
  -v ./data/GameData:/opt/tmserver/GameData \
  --name tmserver tmserver:latest