Internet Mode neu konfiguriert. Neues BaseImage gewählt.

This commit is contained in:
2026-03-18 21:54:28 +01:00
parent 7c3c228e47
commit 3774e46924
18 changed files with 602 additions and 146 deletions

View File

@@ -2,55 +2,75 @@
## Voraussetzungen
- Docker muss installiert sein
- Docker und Docker Compose müssen installiert sein
## Docker Image bauen
## 1. Umgebungsvariablen einrichten
Bevor der Server gestartet werden kann, muss das Docker Image gebaut werden. Führe dazu im Projektverzeichnis folgenden Befehl aus:
Kopiere die Vorlage und passe die Werte an:
```bash
cp .env.example .env
```
Bearbeite die `.env`-Datei und setze mindestens die gewünschten Passwörter. Für den Internet-Modus müssen zusätzlich `SERVER_LOGIN` und `SERVER_VALIDATION_KEY` gesetzt werden.
> **Wichtig:** Die `.env`-Datei enthält sensible Daten (Passwörter, Keys) und wird über die `.gitignore` vom Einchecken ausgeschlossen.
## 2. Docker Image bauen
```bash
docker build -t tmserver:latest -t tmserver:1.0.0 .
```
Damit wird das Image mit zwei Tags erstellt: `tmserver:latest` und `tmserver:1.0.0`. Das Tag `latest` verweist immer auf die aktuelle Version, während `1.0.0` eine feste Versionskennung darstellt.
Damit wird das Image mit zwei Tags erstellt: `tmserver:latest` und `tmserver:1.0.0`.
> **Hinweis:** In den folgenden `docker run`-Beispielen muss der Image-Name entsprechend durch `tmserver:latest` oder `tmserver:1.0.0` ersetzt werden.
## 3. Server starten
## Internet-Dedicated-Modus (Standard)
### Mit Docker Compose (empfohlen)
```bash
docker compose up -d --build
```
Die Konfiguration erfolgt über die `.env`-Datei, die automatisch eingelesen wird.
### Internet-Modus (docker run)
Für den Internet-Modus wird ein Server-Account benötigt. Dieser kann auf der [Trackmania Players-Seite](https://players.trackmaniaforever.com) erstellt werden.
```bash
docker run -d \
--env-file .env \
-p 2350:2350/tcp \
-p 2350:2350/udp \
-p 3450:3450/tcp \
-p 80:80/tcp \
-e SERVER_LOGIN=dein_login \
-e SERVER_VALIDATION_KEY=dein_key \
--name tm-server lduriez/tmserver
-v ./data/GameData:/opt/tmserver/GameData \
--name tmserver tmserver:latest
```
## LAN-Modus
### LAN-Modus (docker run)
Für den LAN-Modus werden keine Masterserver-Zugangsdaten benötigt:
Setze in der `.env`-Datei `SERVER_MODE=lan` oder übergib es direkt:
```bash
docker run -d \
--env-file .env \
-e SERVER_MODE=lan \
-p 2350:2350/tcp \
-p 2350:2350/udp \
-p 3450:3450/tcp \
-p 80:80/tcp \
-e SERVER_MODE=lan \
--name tm-server lduriez/tmserver
-v ./data/GameData:/opt/tmserver/GameData \
--name tmserver tmserver:latest
```
## Docker Compose
## 4. AdminServ öffnen
Alternativ kann der Server mit Docker Compose gestartet werden:
Die Verwaltungsoberfläche ist unter `http://<host-ip>` erreichbar. Weitere Details unter [AdminServ](adminserv.md).
```bash
docker compose up -d
```
## Persistente Konfiguration
Passe dazu die Werte in der `docker-compose.yml` an. Weitere Details unter [Umgebungsvariablen](umgebungsvariablen.md).
Die gesamten Server-Daten (`GameData/`) werden über einen Bind-Mount (`./data/GameData`) persistent auf dem Host gespeichert. Beim ersten Start wird das gesamte GameData-Verzeichnis automatisch aus dem Image erzeugt und die Umgebungsvariablen aus der `.env`-Datei angewendet. Bei weiteren Starts bleibt alles erhalten.
Weitere Details unter [Konfiguration](konfiguration.md).