RemoteCP hinzugefügt.

This commit is contained in:
scriptos
2026-03-20 18:51:49 +01:00
parent c1c8ce5b3d
commit 65568e9f59
13 changed files with 382 additions and 11 deletions
+1
View File
@@ -11,4 +11,5 @@
| [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 |
| [RemoteCP](remotecp.md) | Alternative Server-Verwaltungsoberfläche |
| [Ports](ports.md) | Freigegebene Ports und deren Verwendung |
+3 -1
View File
@@ -34,7 +34,9 @@ Alle AdminServ-Daten (Passwort, Server-Einträge, Konfiguration, Logs) werden ü
| Host-Pfad | Container-Pfad | Beschreibung |
|-----------|----------------|-------------|
| `./data/AdminServ` | `/var/www/html` | Gesamte AdminServ-Installation |
| `./data/AdminServ` | `/var/www/html` | AdminServ- und RemoteCP-Installation |
> **Hinweis:** Im selben Volume befindet sich auch [RemoteCP](remotecp.md) unter `./data/AdminServ/remotecp/`.
## Fehlerbehebung
+2 -1
View File
@@ -17,7 +17,8 @@ Das gesamte **GameData-Verzeichnis** wird über ein Bind-Mount (`./data/GameData
| Host-Pfad | Container-Pfad | Beschreibung |
|-----------|----------------|-------------|
| `./data/GameData` | `/opt/tmserver/GameData` | Gesamtes GameData-Verzeichnis |
| `./data/AdminServ` | `/var/www/html` | AdminServ-Daten (Passwort, Server-Einträge, Logs) |
| `./data/AdminServ` | `/var/www/html` | AdminServ- und RemoteCP-Daten |
| `./data/MariaDB` | `/var/lib/mysql` | MariaDB-Datenbankdateien |
### Enthaltene Unterordner
+1 -1
View File
@@ -6,7 +6,7 @@
| 2350 | UDP | Gameserver-Port |
| 3450 | TCP | P2P-Gameserver-Port |
| 5000 | TCP | XML-RPC-Port (interne Kommunikation) |
| 80 | TCP | Server-Verwaltungsoberfläche (AdminServ) |
| 80 | TCP | Server-Verwaltungsoberflächen (AdminServ + RemoteCP) |
## Minimale Port-Freigabe
+115
View File
@@ -0,0 +1,115 @@
# RemoteCP Alternative Server-Verwaltungsoberfläche
RemoteCP ist eine weitere Web-Verwaltungsoberfläche für Trackmania-Server, die parallel zu AdminServ installiert ist. Es handelt sich um ein älteres Tool mit eigenem Login-System und eigener Benutzerverwaltung.
## Zugriff
RemoteCP ist als Subpath unter der gleichen Adresse wie AdminServ erreichbar:
- **AdminServ:** `http://<host-ip>/`
- **RemoteCP:** `http://<host-ip>/remotecp/`
## Standard-Zugangsdaten
RemoteCP verwendet die SuperAdmin-Zugangsdaten des Trackmania-Servers:
| Benutzer | Passwort | Beschreibung |
|----------|----------|-------------|
| `SuperAdmin` | Wert aus `SERVER_SA_PASSWORD` | Administrator (volle Rechte) |
| `Guest` | `Guest` | Gast-Zugang (nur Lesen) |
Der Admin-Login für RemoteCP ist identisch mit dem SuperAdmin-Passwort des TM-Servers (`SERVER_SA_PASSWORD`). Es werden keine separaten Zugangsdaten benötigt.
## Umgebungsvariablen
| 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)* |
## Datenbank (MariaDB)
RemoteCP benötigt eine MariaDB-Datenbank für erweiterte Funktionen (Spielerstatistiken, Records, Chat-Nachrichten, etc.). Ein MariaDB-Container wird automatisch als Teil des Docker-Setups bereitgestellt.
### Automatische Einrichtung
Wenn die Datenbank-Variablen in der `.env`-Datei gesetzt sind (`REMOTECP_DB_HOST`, `REMOTECP_DB_PASSWORD`), wird beim ersten Start:
1. Die **MariaDB** erstellt automatisch die Datenbank und den Benutzer (über `MYSQL_DATABASE`, `MYSQL_USER`, `MYSQL_PASSWORD`)
2. Das **Startup-Script** wartet, bis MariaDB erreichbar ist
3. Die **Datenbank-Tabellen** werden automatisch aus den SQL-Schema-Dateien importiert
4. Die **Installer-Markierung** (`cache/installed`) wird gesetzt, damit der Web-Installer übersprungen wird
Es ist kein manuelles Setup über den Web-Installer nötig.
### Manuelle Einrichtung
Falls die automatische Einrichtung nicht gewünscht ist oder fehlschlägt (z.B. MariaDB nicht erreichbar), kann RemoteCP auch manuell eingerichtet werden:
1. Die Datenbank-Variablen (`REMOTECP_DB_HOST`, `REMOTECP_DB_PASSWORD`) **müssen trotzdem in der `.env`-Datei gesetzt sein**, damit die MariaDB die Datenbank und den Benutzer beim ersten Start erstellt
2. RemoteCP-Installer im Browser aufrufen: `http://<host-ip>/remotecp/index.php?page=install`
3. „Install with remoteCP-Database" wählen
4. Die Datenbank-Zugangsdaten eingeben:
- **Database DSN:** `mysql:dbname=remotecp;host=mariadb` (bzw. die Werte aus der `.env`)
- **Database Username:** Wert aus `REMOTECP_DB_USER`
- **Database Password:** Wert aus `REMOTECP_DB_PASSWORD`
5. Server-Daten eingeben (XMLRPC-Port, SuperAdmin-Passwort)
6. Installation abschließen
### Persistente Daten
Die MariaDB-Daten werden über ein eigenes Bind-Mount persistent gespeichert:
| Host-Pfad | Container-Pfad | Beschreibung |
|-----------|----------------|-------------|
| `./data/MariaDB` | `/var/lib/mysql` | MariaDB-Datenbankdateien |
> **Hinweis:** Der MariaDB-Container kann auch für weitere Tools genutzt werden. Zusätzliche Datenbanken und Benutzer können über den Root-Zugang (`MARIADB_ROOT_PASSWORD`) erstellt werden.
## Automatische Konfiguration
Beim ersten Start wird RemoteCP automatisch konfiguriert:
- Die **Serververbindung** wird mit dem XML-RPC-Port und dem SuperAdmin-Passwort (`SERVER_SA_PASSWORD`) aus der `.env`-Datei eingerichtet
- Der **Admin-Zugang** verwendet den Benutzernamen `SuperAdmin` mit dem Passwort aus `SERVER_SA_PASSWORD`
- Das Passwort wird als MD5-Hash in der Konfiguration gespeichert
- Die **Datenbankverbindung** wird automatisch in `servers.xml` eingetragen (wenn DB-Variablen gesetzt sind)
## Persistente Speicherung
RemoteCP wird im gleichen Volume wie AdminServ gespeichert:
| Host-Pfad | Container-Pfad | Beschreibung |
|-----------|----------------|-------------|
| `./data/AdminServ/remotecp` | `/var/www/html/remotecp` | RemoteCP-Installation |
Die Konfigurationsdateien befinden sich unter `./data/AdminServ/remotecp/xml/`:
| Datei | Beschreibung |
|-------|-------------|
| `servers.xml` | Server-Verbindungsdaten (Host, Port, Passwort, Datenbank) |
| `admins.xml` | Benutzer und Zugangsdaten |
| `groups.xml` | Berechtigungsgruppen |
## Sicherheit
RemoteCP liefert eine `.htaccess`-Datei mit, die den direkten Zugriff auf XML-Konfigurationsdateien über den Browser verhindert. Apache `mod_rewrite` und `AllowOverride` sind im Image aktiviert, damit dieser Schutz funktioniert.
## Fehlerbehebung
Falls RemoteCP nicht erreichbar ist oder Fehler anzeigt:
1. Prüfe, ob beide Container laufen: `docker ps`
2. MariaDB-Verbindung testen: `docker exec tmserver mysql -h mariadb -u remotecp -p remotecp -e "SELECT 1"`
3. PHP-Debug-Modus aktivieren: `PHP_DISPLAY_ERRORS=true` in der `.env`-Datei setzen
4. Container neu starten: `docker compose restart`
5. PHP-Logs prüfen: `docker exec tmserver cat /var/log/php_errors.log`
6. MariaDB-Logs prüfen: `docker logs tmserver-mariadb`
### Bekannte Hinweise
- RemoteCP ist ein älteres Tool (Version 4.0.3.5) und wurde für PHP 5.x entwickelt, läuft aber mit PHP 7.4
- Die Live-Funktionen (`remoteCP[Live]`) benötigen eine laufende Serververbindung
- Die Registrierung neuer Benutzer ist standardmäßig aktiviert und kann in `xml/settings/settings.xml` über `<register>false</register>` deaktiviert werden
+9 -3
View File
@@ -65,9 +65,14 @@ docker run -d \
--name tmserver tmserver:latest
```
## 4. AdminServ öffnen
## 4. Verwaltungsoberflächen öffnen
Die Verwaltungsoberfläche ist unter `http://<host-ip>` erreichbar. Weitere Details unter [AdminServ](adminserv.md).
| Tool | URL | Beschreibung |
|------|-----|-------------|
| AdminServ | `http://<host-ip>/` | Server-Verwaltungsoberfläche |
| RemoteCP | `http://<host-ip>/remotecp/` | Alternative Verwaltungsoberfläche |
Weitere Details unter [AdminServ](adminserv.md) und [RemoteCP](remotecp.md).
## Persistente Konfiguration
@@ -76,7 +81,8 @@ Alle Server- und AdminServ-Daten werden über Bind-Mounts persistent auf dem Hos
| Host-Pfad | Container-Pfad | Beschreibung |
|-----------|----------------|-------------|
| `./data/GameData` | `/opt/tmserver/GameData` | TM-Server-Daten (Config, Tracks, Skins, etc.) |
| `./data/AdminServ` | `/var/www/html` | AdminServ-Daten (Passwort, Server-Einträge, Logs) |
| `./data/AdminServ` | `/var/www/html` | AdminServ- und RemoteCP-Daten |
| `./data/MariaDB` | `/var/lib/mysql` | MariaDB-Datenbankdateien |
Beim ersten Start werden die Verzeichnisse automatisch aus dem Image erzeugt und die Umgebungsvariablen aus der `.env`-Datei angewendet. Bei weiteren Starts bleibt alles erhalten.
+23
View File
@@ -64,6 +64,29 @@ nano .env
| `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](remotecp.md).
## 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 |