Internet-Dedicated hinzugefügt + Docs erstellt.
This commit is contained in:
@@ -20,10 +20,16 @@ ARG SERVER_NAME='Trackmania Server'
|
||||
ARG SERVER_DESC='This is a Trackmania Server'
|
||||
ARG SERVER_SA_PASSWORD='SuperAdmin'
|
||||
ARG SERVER_ADM_PASSWORD='Admin'
|
||||
ARG SERVER_MODE='internet'
|
||||
ARG SERVER_LOGIN=''
|
||||
ARG SERVER_VALIDATION_KEY=''
|
||||
ENV SERVER_NAME $SERVER_NAME
|
||||
ENV SERVER_DESC $SERVER_DESC
|
||||
ENV SERVER_SA_PASSWORD $SERVER_SA_PASSWORD
|
||||
ENV SERVER_ADM_PASSWORD $SERVER_ADM_PASSWORD
|
||||
ENV SERVER_MODE $SERVER_MODE
|
||||
ENV SERVER_LOGIN $SERVER_LOGIN
|
||||
ENV SERVER_VALIDATION_KEY $SERVER_VALIDATION_KEY
|
||||
|
||||
EXPOSE 5000/tcp
|
||||
EXPOSE 2350/tcp
|
||||
|
||||
90
README.md
90
README.md
@@ -6,77 +6,47 @@ Trackmania Nations Forever Docker Server
|
||||
|
||||
Das Docker-Image ist auf Docker Hub verfügbar: [lduriez/tmserver](https://hub.docker.com/r/lduriez/tmserver)
|
||||
|
||||
Derzeit ist nur der LAN-Dedicated-Modus aktiviert (Internet-Dedicated wird in einer zukünftigen Version hinzugefügt).
|
||||
Der Server unterstützt sowohl den **Internet-Dedicated-Modus** (Standard) als auch den **LAN-Dedicated-Modus**.
|
||||
|
||||
Die Server-Verwaltungsoberfläche basiert auf [AdminServ](https://github.com/Chris92de/AdminServ).
|
||||
## Schnellstart
|
||||
|
||||
## Starten
|
||||
### Internet-Modus (Standard)
|
||||
|
||||
In einer Docker-Umgebung einfach folgenden Befehl ausführen:
|
||||
Voraussetzung: Ein Server-Account auf [players.trackmaniaforever.com](https://players.trackmaniaforever.com).
|
||||
|
||||
```bash
|
||||
docker run -d -p 2350:2350 -p 3450:3450 -p 80:80 --name tm-server lduriez/tmserver
|
||||
docker run -d \
|
||||
-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
|
||||
```
|
||||
|
||||
Über Umgebungsvariablen können die Standardwerte angepasst werden: [Umgebungsvariablen](#umgebungsvariablen)
|
||||
### LAN-Modus
|
||||
|
||||
### Server-Verwaltungsoberfläche einrichten
|
||||
```bash
|
||||
docker run -d \
|
||||
-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
|
||||
```
|
||||
|
||||
Rufe `http:<host-server-des-containers>` auf und starte die Konfiguration, indem du ein Passwort deiner Wahl festlegst.
|
||||
Dieses Passwort wird als AdminServ-Passwort für die Konfiguration (TM-Server hinzufügen) verwendet.
|
||||
## Dokumentation
|
||||
|
||||
Trage anschließend die TM-Server-Informationen ein (die Standardwerte können beibehalten werden). Stelle sicher, dass `Address` auf `localhost` gesetzt ist, um den eingebetteten Server zu verwalten.
|
||||
Die vollständige Dokumentation befindet sich im Ordner [`docs/`](docs/README.md):
|
||||
|
||||
Nach dem Speichern kannst du über den Button „Servers" zur Serverliste navigieren und über den Button „Back" zur Verwaltungsübersicht gelangen.
|
||||
|
||||
Du solltest den hinzugefügten Server sehen. Im oberen Banner kannst du zur Verwaltungsumgebung wechseln.
|
||||
Wähle den Server aus, den du verwalten möchtest, die gewünschte Admin-Stufe und gib das zugehörige Passwort ein.
|
||||
|
||||
Standardmäßig ist das `SuperAdmin`-Passwort `SuperAdmin`, das `Admin`-Passwort `Admin` und das `User`-Passwort `User`. (Die Admin-Stufen können in den Konfigurationseinstellungen unter `http:<host-server-des-containers>/config` geändert werden.)
|
||||
|
||||
Herzlichen Glückwunsch – du kannst jetzt deinen TM-Server verwalten.
|
||||
|
||||
Viel Spaß beim Spielen!
|
||||
|
||||
## Freigegebene Ports
|
||||
|
||||
* 2350/tcp – Gameserver-Port
|
||||
* 2350/udp – Gameserver-Port
|
||||
* 3450/tcp – P2P-Gameserver-Port
|
||||
* 80/tcp – Port der Server-Verwaltungsoberfläche
|
||||
|
||||
## Umgebungsvariablen
|
||||
|
||||
* `SERVER_NAME` – Name deines Servers (Standard: `Trackmania Server`)
|
||||
* `SERVER_DESC` – Beschreibung deines Servers (Standard: `This is a Trackmania Server`)
|
||||
* `SERVER_SA_PASSWORD` – SuperAdmin-Verwaltungspasswort (Standard: `SuperAdmin`)
|
||||
* `SERVER_ADM_PASSWORD` – Admin-Verwaltungspasswort (Standard: `Admin`)
|
||||
|
||||
## Commit-Konvention
|
||||
|
||||
Format: `<typ>(<bereich>): <beschreibung>`
|
||||
|
||||
### Typ
|
||||
|
||||
* `build` – Änderungen am Build-System oder an externen Abhängigkeiten (npm, make …)
|
||||
* `ci` – Änderungen an CI-Konfigurationsdateien und -Skripten (Travis, Ansible, BrowserStack …)
|
||||
* `feat` – Hinzufügen eines neuen Features
|
||||
* `fix` – Behebung eines Fehlers
|
||||
* `perf` – Verbesserung der Performance
|
||||
* `refactor` – Änderung, die weder ein neues Feature noch eine Performance-Verbesserung bringt
|
||||
* `style` – Änderung ohne funktionale oder semantische Auswirkung (Einrückung, Formatierung, Leerzeichen, Umbenennung einer Variable …)
|
||||
* `docs` – Erstellung oder Aktualisierung von Dokumentation
|
||||
* `test` – Hinzufügen oder Ändern von Tests
|
||||
* `revert` – Einen vorherigen Commit rückgängig machen (Format: `revert <Betreff des rückgängig gemachten Commits> <Hash>`)
|
||||
|
||||
### Beschreibung
|
||||
|
||||
* `add` – Hinzufügen
|
||||
* `change` – Ändern
|
||||
* `update` – Aktualisieren
|
||||
* `remove` – Entfernen
|
||||
|
||||
[Quelle](https://buzut.net/git-bien-nommer-ses-commits/)
|
||||
- [Schnellstart](docs/schnellstart.md) – Erste Schritte und minimale Konfiguration
|
||||
- [Umgebungsvariablen](docs/umgebungsvariablen.md) – Alle verfügbaren Umgebungsvariablen
|
||||
- [Server-Modi](docs/server-modi.md) – LAN- und Internet-Dedicated-Modus
|
||||
- [AdminServ](docs/adminserv.md) – Einrichtung der Server-Verwaltungsoberfläche
|
||||
- [Ports](docs/ports.md) – Freigegebene Ports und deren Verwendung
|
||||
- [Commit-Konvention](docs/commit-konvention.md) – Regeln für Commit-Nachrichten
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -3,15 +3,35 @@
|
||||
echo "Starting apache server"
|
||||
service apache2 start
|
||||
|
||||
CONFIG="/opt/tmserver/GameData/Config/dedicated_cfg.txt"
|
||||
|
||||
echo "Setting ENV/ARG variables"
|
||||
sed -i "s/<password>SuperAdmin/<password>${SERVER_SA_PASSWORD}/" /opt/tmserver/GameData/Config/dedicated_cfg.txt
|
||||
sed -i "s/<password>Admin/<password>${SERVER_ADM_PASSWORD}/" /opt/tmserver/GameData/Config/dedicated_cfg.txt
|
||||
sed -i "s/<name></<name>${SERVER_NAME}</" /opt/tmserver/GameData/Config/dedicated_cfg.txt
|
||||
sed -i "s/<comment></<comment>${SERVER_DESC}</" /opt/tmserver/GameData/Config/dedicated_cfg.txt
|
||||
sed -i "s/<xmlrpc_allowremote>False/<xmlrpc_allowremote>True/" /opt/tmserver/GameData/Config/dedicated_cfg.txt
|
||||
sed -i "s/<password>SuperAdmin/<password>${SERVER_SA_PASSWORD}/" "$CONFIG"
|
||||
sed -i "s/<password>Admin/<password>${SERVER_ADM_PASSWORD}/" "$CONFIG"
|
||||
sed -i "s/<name></<name>${SERVER_NAME}</" "$CONFIG"
|
||||
sed -i "s/<comment></<comment>${SERVER_DESC}</" "$CONFIG"
|
||||
sed -i "s/<xmlrpc_allowremote>False/<xmlrpc_allowremote>True/" "$CONFIG"
|
||||
|
||||
# Bestimme Server-Modus (Standard: internet)
|
||||
SERVER_MODE="${SERVER_MODE:-internet}"
|
||||
|
||||
if [ "$SERVER_MODE" = "internet" ]; then
|
||||
echo "Configuring Internet-Dedicated mode"
|
||||
if [ -z "$SERVER_LOGIN" ] || [ -z "$SERVER_VALIDATION_KEY" ]; then
|
||||
echo "ERROR: SERVER_LOGIN and SERVER_VALIDATION_KEY are required for Internet-Dedicated mode."
|
||||
echo "Set SERVER_MODE=lan to start in LAN mode, or provide the required variables."
|
||||
exit 1
|
||||
fi
|
||||
sed -i "s|<login></login>|<login>${SERVER_LOGIN}</login>|" "$CONFIG"
|
||||
sed -i "s|<validation_key></validation_key>|<validation_key>${SERVER_VALIDATION_KEY}</validation_key>|" "$CONFIG"
|
||||
LAUNCH_MODE="/internet"
|
||||
else
|
||||
echo "Configuring LAN-Dedicated mode"
|
||||
LAUNCH_MODE="/lan"
|
||||
fi
|
||||
|
||||
echo "Server config dedicated_cfg.txt is"
|
||||
cat /opt/tmserver/GameData/Config/dedicated_cfg.txt
|
||||
cat "$CONFIG"
|
||||
|
||||
echo "Launching Server"
|
||||
exec ./TrackmaniaServer /dedicated_cfg=dedicated_cfg.txt /game_settings=MatchSettings/custom_game_settings.txt /nodaemon /lan
|
||||
echo "Launching Server in ${SERVER_MODE} mode"
|
||||
exec ./TrackmaniaServer /dedicated_cfg=dedicated_cfg.txt /game_settings=MatchSettings/custom_game_settings.txt /nodaemon ${LAUNCH_MODE}
|
||||
|
||||
@@ -20,3 +20,6 @@ services:
|
||||
- SERVER_DESC=This is a Trackmania Server
|
||||
- SERVER_SA_PASSWORD=SuperAdmin
|
||||
- SERVER_ADM_PASSWORD=Admin
|
||||
- SERVER_MODE=internet
|
||||
- SERVER_LOGIN=
|
||||
- SERVER_VALIDATION_KEY=
|
||||
|
||||
12
docs/README.md
Normal file
12
docs/README.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# Dokumentation
|
||||
|
||||
Übersicht aller verfügbaren Dokumentationen für den Trackmania Nations Forever Docker Server.
|
||||
|
||||
| Dokument | Beschreibung |
|
||||
|----------|-------------|
|
||||
| [Schnellstart](schnellstart.md) | Erste Schritte und minimale Konfiguration |
|
||||
| [Umgebungsvariablen](umgebungsvariablen.md) | Alle verfügbaren Umgebungsvariablen |
|
||||
| [Server-Modi](server-modi.md) | LAN- und Internet-Dedicated-Modus |
|
||||
| [AdminServ](adminserv.md) | Einrichtung der Server-Verwaltungsoberfläche |
|
||||
| [Ports](ports.md) | Freigegebene Ports und deren Verwendung |
|
||||
| [Commit-Konvention](commit-konvention.md) | Regeln für Commit-Nachrichten |
|
||||
29
docs/adminserv.md
Normal file
29
docs/adminserv.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# AdminServ – Server-Verwaltungsoberfläche
|
||||
|
||||
Die Server-Verwaltungsoberfläche basiert auf [AdminServ](https://github.com/Chris92de/AdminServ) und ist über Port 80 erreichbar.
|
||||
|
||||
## Einrichtung
|
||||
|
||||
1. `http://<host-server-des-containers>` im Browser aufrufen
|
||||
2. Ein Passwort festlegen – dieses wird als AdminServ-Passwort verwendet
|
||||
3. TM-Server-Informationen eintragen (Standardwerte können beibehalten werden)
|
||||
4. `Address` auf `localhost` setzen, um den eingebetteten Server zu verwalten
|
||||
5. Speichern
|
||||
|
||||
## Verbindung zum Server
|
||||
|
||||
1. Über den Button „Servers" zur Serverliste navigieren
|
||||
2. Den gewünschten Server auswählen
|
||||
3. Admin-Stufe wählen und zugehöriges Passwort eingeben
|
||||
|
||||
## Standard-Passwörter
|
||||
|
||||
| Stufe | Standard-Passwort |
|
||||
|-------|-------------------|
|
||||
| SuperAdmin | `SuperAdmin` |
|
||||
| Admin | `Admin` |
|
||||
| User | `User` |
|
||||
|
||||
Die Admin-Stufen können unter `http://<host-server-des-containers>/config` geändert werden.
|
||||
|
||||
> **Hinweis:** Es wird empfohlen, die Standard-Passwörter über die [Umgebungsvariablen](umgebungsvariablen.md) `SERVER_SA_PASSWORD` und `SERVER_ADM_PASSWORD` zu ändern.
|
||||
29
docs/commit-konvention.md
Normal file
29
docs/commit-konvention.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# Commit-Konvention
|
||||
|
||||
Format: `<typ>(<bereich>): <beschreibung>`
|
||||
|
||||
## Typ
|
||||
|
||||
| Typ | Beschreibung |
|
||||
|-----|-------------|
|
||||
| `build` | Änderungen am Build-System oder an externen Abhängigkeiten (npm, make …) |
|
||||
| `ci` | Änderungen an CI-Konfigurationsdateien und -Skripten (Travis, Ansible, BrowserStack …) |
|
||||
| `feat` | Hinzufügen eines neuen Features |
|
||||
| `fix` | Behebung eines Fehlers |
|
||||
| `perf` | Verbesserung der Performance |
|
||||
| `refactor` | Änderung, die weder ein neues Feature noch eine Performance-Verbesserung bringt |
|
||||
| `style` | Änderung ohne funktionale oder semantische Auswirkung (Einrückung, Formatierung, Leerzeichen …) |
|
||||
| `docs` | Erstellung oder Aktualisierung von Dokumentation |
|
||||
| `test` | Hinzufügen oder Ändern von Tests |
|
||||
| `revert` | Einen vorherigen Commit rückgängig machen (Format: `revert <Betreff> <Hash>`) |
|
||||
|
||||
## Beschreibung
|
||||
|
||||
| Schlüsselwort | Bedeutung |
|
||||
|---------------|-----------|
|
||||
| `add` | Hinzufügen |
|
||||
| `change` | Ändern |
|
||||
| `update` | Aktualisieren |
|
||||
| `remove` | Entfernen |
|
||||
|
||||
[Quelle](https://buzut.net/git-bien-nommer-ses-commits/)
|
||||
23
docs/ports.md
Normal file
23
docs/ports.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# Freigegebene Ports
|
||||
|
||||
| Port | Protokoll | Beschreibung |
|
||||
|------|-----------|-------------|
|
||||
| 2350 | TCP | Gameserver-Port |
|
||||
| 2350 | UDP | Gameserver-Port |
|
||||
| 3450 | TCP | P2P-Gameserver-Port |
|
||||
| 5000 | TCP | XML-RPC-Port (interne Kommunikation) |
|
||||
| 80 | TCP | Server-Verwaltungsoberfläche (AdminServ) |
|
||||
|
||||
## Minimale Port-Freigabe
|
||||
|
||||
Für den reinen Spielbetrieb ohne Verwaltungsoberfläche reichen die Ports 2350 und 3450:
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
-p 2350:2350/tcp \
|
||||
-p 2350:2350/udp \
|
||||
-p 3450:3450/tcp \
|
||||
--name tm-server lduriez/tmserver
|
||||
```
|
||||
|
||||
> **Hinweis:** Port 5000 (XML-RPC) wird intern von AdminServ verwendet und muss in der Regel nicht nach außen freigegeben werden.
|
||||
44
docs/schnellstart.md
Normal file
44
docs/schnellstart.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# Schnellstart
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- Docker muss installiert sein
|
||||
|
||||
## Internet-Dedicated-Modus (Standard)
|
||||
|
||||
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 \
|
||||
-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
|
||||
```
|
||||
|
||||
## LAN-Modus
|
||||
|
||||
Für den LAN-Modus werden keine Masterserver-Zugangsdaten benötigt:
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
-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
|
||||
```
|
||||
|
||||
## Docker Compose
|
||||
|
||||
Alternativ kann der Server mit Docker Compose gestartet werden:
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
Passe dazu die Werte in der `docker-compose.yml` an. Weitere Details unter [Umgebungsvariablen](umgebungsvariablen.md).
|
||||
53
docs/server-modi.md
Normal file
53
docs/server-modi.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# Server-Modi
|
||||
|
||||
Der Trackmania-Server kann in zwei Modi betrieben werden.
|
||||
|
||||
## Internet-Dedicated (Standard)
|
||||
|
||||
Im Internet-Modus ist der Server über das Trackmania-Masterserver-Netzwerk erreichbar und in der öffentlichen Serverliste sichtbar.
|
||||
|
||||
### Voraussetzungen
|
||||
|
||||
- Ein Server-Account auf der [Trackmania Players-Seite](https://players.trackmaniaforever.com)
|
||||
- Die Umgebungsvariablen `SERVER_LOGIN` und `SERVER_VALIDATION_KEY` müssen gesetzt sein
|
||||
|
||||
### Konfiguration
|
||||
|
||||
```yaml
|
||||
environment:
|
||||
- SERVER_MODE=internet
|
||||
- SERVER_LOGIN=dein_login
|
||||
- SERVER_VALIDATION_KEY=dein_key
|
||||
```
|
||||
|
||||
Wenn `SERVER_LOGIN` oder `SERVER_VALIDATION_KEY` nicht gesetzt sind, bricht der Server mit einer Fehlermeldung ab.
|
||||
|
||||
### Server-Account erstellen
|
||||
|
||||
1. [players.trackmaniaforever.com](https://players.trackmaniaforever.com) aufrufen
|
||||
2. Einloggen oder einen neuen Account erstellen
|
||||
3. Unter „Dedicated Server" einen neuen Server-Account anlegen
|
||||
4. Login und Validation Key notieren und als Umgebungsvariablen setzen
|
||||
|
||||
## LAN-Dedicated
|
||||
|
||||
Im LAN-Modus ist der Server nur im lokalen Netzwerk erreichbar. Es werden keine Masterserver-Zugangsdaten benötigt.
|
||||
|
||||
### Konfiguration
|
||||
|
||||
```yaml
|
||||
environment:
|
||||
- SERVER_MODE=lan
|
||||
```
|
||||
|
||||
Oder per Docker-Run:
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
-e SERVER_MODE=lan \
|
||||
-p 2350:2350/tcp \
|
||||
-p 2350:2350/udp \
|
||||
-p 3450:3450/tcp \
|
||||
-p 80:80/tcp \
|
||||
--name tm-server lduriez/tmserver
|
||||
```
|
||||
40
docs/umgebungsvariablen.md
Normal file
40
docs/umgebungsvariablen.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Umgebungsvariablen
|
||||
|
||||
Alle Umgebungsvariablen können beim Start des Containers über `-e` oder in der `docker-compose.yml` gesetzt werden.
|
||||
|
||||
## Allgemeine Einstellungen
|
||||
|
||||
| Variable | Beschreibung | Standard |
|
||||
|----------|-------------|----------|
|
||||
| `SERVER_NAME` | Name des Servers | `Trackmania Server` |
|
||||
| `SERVER_DESC` | Beschreibung des Servers | `This is a Trackmania Server` |
|
||||
| `SERVER_SA_PASSWORD` | SuperAdmin-Verwaltungspasswort | `SuperAdmin` |
|
||||
| `SERVER_ADM_PASSWORD` | Admin-Verwaltungspasswort | `Admin` |
|
||||
|
||||
## Server-Modus
|
||||
|
||||
| Variable | Beschreibung | Standard |
|
||||
|----------|-------------|----------|
|
||||
| `SERVER_MODE` | Server-Modus (`internet` oder `lan`) | `internet` |
|
||||
| `SERVER_LOGIN` | Masterserver-Login (nur Internet-Modus) | *(leer)* |
|
||||
| `SERVER_VALIDATION_KEY` | Masterserver-Validierungsschlüssel (nur Internet-Modus) | *(leer)* |
|
||||
|
||||
> **Wichtig:** Im Internet-Modus müssen `SERVER_LOGIN` und `SERVER_VALIDATION_KEY` gesetzt sein, andernfalls startet der Server nicht.
|
||||
|
||||
## Beispiel
|
||||
|
||||
```bash
|
||||
docker run -d \
|
||||
-e SERVER_NAME="Mein Server" \
|
||||
-e SERVER_DESC="Ein toller Server" \
|
||||
-e SERVER_SA_PASSWORD="GeheimSA" \
|
||||
-e SERVER_ADM_PASSWORD="GeheimAdmin" \
|
||||
-e SERVER_MODE=internet \
|
||||
-e SERVER_LOGIN=mein_login \
|
||||
-e SERVER_VALIDATION_KEY=mein_key \
|
||||
-p 2350:2350/tcp \
|
||||
-p 2350:2350/udp \
|
||||
-p 3450:3450/tcp \
|
||||
-p 80:80/tcp \
|
||||
--name tm-server lduriez/tmserver
|
||||
```
|
||||
Reference in New Issue
Block a user