mirror of
https://git.techniverse.net/scriptos/tmserver-docker.git
synced 2026-07-09 21:47:02 +00:00
docs: Doku an Code anpassen, AdminServ-Konfigurationspasswort automatisch absichern
This commit is contained in:
+19
-10
@@ -22,27 +22,36 @@
|
||||
```
|
||||
├── assets/
|
||||
│ ├── bin/ # Binaries und Startscript
|
||||
│ │ ├── AdminServ_v2.1.1.zip # AdminServ Web-UI
|
||||
│ │ ├── remoteCP_v4.0.3.5.zip # RemoteCP Web-UI
|
||||
│ │ ├── xaseco_v1.16.zip # XAseco Server-Controller
|
||||
│ │ ├── AdminServ_v2.1.1.zip # AdminServ Web-UI
|
||||
│ │ ├── remoteCP_v4.0.3.5.zip # RemoteCP Web-UI
|
||||
│ │ ├── RunTrackmaniaServer.sh # Container-Startscript
|
||||
│ │ └── TrackmaniaServer_*.zip # Trackmania Server Binary
|
||||
│ │ ├── TrackmaniaServer_2011-02-21.zip # Trackmania Server Binary
|
||||
│ │ └── xaseco_v1.16.zip # XAseco Server-Controller
|
||||
│ ├── config/
|
||||
│ │ ├── adminserv/ # AdminServ-Konfiguration
|
||||
│ │ │ ├── get_matchset_mapimport.php # MatchSet Map-Import Script
|
||||
│ │ │ └── maps-creatematchset.php # MatchSet-Erstellung Script
|
||||
│ │ ├── custom_game_settings.txt # MatchSettings (Spielmodus, Map-Rotation)
|
||||
│ │ ├── dedicated_cfg.txt # Server-Config-Template (mit Platzhaltern)
|
||||
│ │ └── remotecp/
|
||||
│ │ └── plugins/
|
||||
│ │ ├── CustomPoints/
|
||||
│ │ │ └── index.php # CustomPoints-Plugin fuer RemoteCP
|
||||
│ │ └── Mods/
|
||||
│ │ └── settings.xml # Skin-Bibliothek (techniverse.net)
|
||||
│ │ ├── remotecp/
|
||||
│ │ │ └── plugins/
|
||||
│ │ │ ├── CustomPoints/
|
||||
│ │ │ │ └── index.php # CustomPoints-Plugin fuer RemoteCP
|
||||
│ │ │ └── Mods/
|
||||
│ │ │ ├── index.php # Mods-Plugin fuer RemoteCP
|
||||
│ │ │ └── settings.xml # Skin-Bibliothek (techniverse.net)
|
||||
│ │ └── xaseco/
|
||||
│ │ └── teamspeak3.xml # TeamSpeak3-Konfiguration fuer XAseco
|
||||
│ └── db/
|
||||
│ └── init-xaseco-db.sh # MariaDB Init-Script fuer XAseco-DB
|
||||
├── docs/ # Dokumentation
|
||||
├── docker-compose.yml # Docker Compose Konfiguration
|
||||
├── Dockerfile # Docker Build-Definition
|
||||
├── .dockerignore # Docker-Ignore-Regeln
|
||||
├── .env.example # Vorlage fuer Umgebungsvariablen
|
||||
├── .env # Lokale Umgebungsvariablen (nicht im Git!)
|
||||
├── .gitattributes # Git-Attribut-Konfiguration
|
||||
├── .gitignore # Git-Ignore-Regeln
|
||||
├── LICENSE # Lizenz
|
||||
├── README.md # Projektbeschreibung
|
||||
└── data/ # Persistente Daten (zur Laufzeit)
|
||||
|
||||
+23
-9
@@ -4,17 +4,19 @@ Die Server-Verwaltungsoberfläche basiert auf [AdminServ](https://github.com/Chr
|
||||
|
||||
## 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
|
||||
AdminServ wird beim ersten Container-Start **vollständig automatisch konfiguriert**:
|
||||
|
||||
- Serververbindung (Adresse `127.0.0.1`, XML-RPC-Port)
|
||||
- Server-Eintrag (Name, DisplayServ-Passwort)
|
||||
- Konfigurationspasswort (siehe [Konfigurationsseite (`/config`)](#konfigurationsseite-config))
|
||||
|
||||
Es ist kein manuelles Setup nötig.
|
||||
|
||||
## 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
|
||||
1. `http://<host-server-des-containers>` im Browser aufrufen
|
||||
2. Den Server aus der Liste auswählen
|
||||
3. Admin-Stufe wählen (SuperAdmin, Admin oder User) und das zugehörige Passwort eingeben
|
||||
|
||||
## Standard-Passwörter
|
||||
|
||||
@@ -24,9 +26,11 @@ Die Server-Verwaltungsoberfläche basiert auf [AdminServ](https://github.com/Chr
|
||||
| Admin | `Admin` |
|
||||
| User | `User` |
|
||||
|
||||
Diese Passwörter werden über die `.env`-Datei gesetzt (`SERVER_SA_PASSWORD`, `SERVER_ADM_PASSWORD`, `SERVER_USER_PASSWORD`) und beim ersten Start in die `dedicated_cfg.txt` geschrieben. AdminServ liest die Passwörter über die XML-RPC-Verbindung direkt vom TM-Server.
|
||||
|
||||
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 `.env`-Datei (`SERVER_SA_PASSWORD`, `SERVER_ADM_PASSWORD`) zu ändern. Siehe [Umgebungsvariablen](umgebungsvariablen.md).
|
||||
> **Hinweis:** Die Standard-Passwörter in der `.env.example` sind öffentlich einsehbar. Ändere sie unbedingt, bevor du den Server produktiv einsetzt. Siehe [Umgebungsvariablen](umgebungsvariablen.md).
|
||||
|
||||
## Persistente Speicherung
|
||||
|
||||
@@ -67,6 +71,16 @@ rm -rf ./data/controlpanel/*
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
## Konfigurationsseite (`/config`)
|
||||
|
||||
AdminServ bringt unter `http://<host-ip>/config` eine eigene Konfigurationsseite mit, über die Server-Einträge hinzugefügt, geändert oder gelöscht werden können. Diese Seite ist durch ein separates Passwort geschützt (`OnlineConfig::PASSWORD` in `adminserv.cfg.php`, MD5-gehasht).
|
||||
|
||||
Da dieser Container als **Standalone-Setup** läuft und ausschließlich den einen lokalen TrackMania-Server bedient, wird die `/config`-Seite **nicht benötigt** – der Server-Eintrag wird beim ersten Start automatisch angelegt (Adresse, XML-RPC-Port, Passwörter).
|
||||
|
||||
Zur Absicherung wird das Konfigurationspasswort beim ersten Container-Start automatisch durch einen **zufällig generierten MD5-Hash** ersetzt. Damit ist die `/config`-Seite vor unbefugtem Zugriff geschützt, ohne dass ein Benutzer ein Passwort vergeben oder sich merken muss.
|
||||
|
||||
> **Hinweis:** Falls du dennoch Zugriff auf die `/config`-Seite benötigst (z.B. für Debugging), kannst du den MD5-Hash in `data/controlpanel/config/adminserv.cfg.php` manuell auf ein bekanntes Passwort setzen. Beispiel: `const PASSWORD = '5f4dcc3b5aa765d61d8327deb882cf99';` entspricht dem Passwort `password`.
|
||||
|
||||
## Gepatchte AdminServ-Bugs (TmForever)
|
||||
|
||||
AdminServ (v2.1.1) enthält zwei Bugs, die speziell im Zusammenspiel mit TmForever auftreten. Diese werden beim Container-Start automatisch gepatcht – auch bei bestehenden Volumes.
|
||||
|
||||
@@ -18,6 +18,7 @@ Das gesamte **GameData-Verzeichnis** wird über ein Bind-Mount (`./data/gamedata
|
||||
|-----------|----------------|-------------|
|
||||
| `./data/gamedata` | `/opt/tmserver/GameData` | Gesamtes GameData-Verzeichnis |
|
||||
| `./data/controlpanel` | `/var/www/html` | AdminServ- und RemoteCP-Daten |
|
||||
| `./data/xaseco` | `/opt/tmserver/xaseco` | XAseco-Konfiguration und Logs |
|
||||
| `./data/mariadb` | `/var/lib/mysql` | MariaDB-Datenbankdateien |
|
||||
|
||||
### Enthaltene Unterordner
|
||||
|
||||
@@ -43,10 +43,10 @@ Die Konfiguration erfolgt über die `.env`-Datei, die automatisch eingelesen wir
|
||||
Alternativ kannst du das Image auch selbst bauen:
|
||||
|
||||
```bash
|
||||
docker build -t tmserver:latest -t tmserver:1.1.1 .
|
||||
docker build -t tmserver:latest -t tmserver:1.2.1 .
|
||||
```
|
||||
|
||||
Damit wird das Image mit zwei Tags erstellt: `tmserver:latest` und `tmserver:1.1.1`.
|
||||
Damit wird das Image mit zwei Tags erstellt: `tmserver:latest` und `tmserver:1.2.1`.
|
||||
|
||||
Anschließend den Server starten:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user