diff --git a/.env.example b/.env.example index 2590ccd..de654ba 100644 --- a/.env.example +++ b/.env.example @@ -38,3 +38,15 @@ SERVER_DOWNLOAD_RATE=8192 # --- Server-Modus und Config-Steuerung --- SERVER_MODE=internet FORCE_CONFIG_UPDATE=false + +# --- Debugging --- +PHP_DISPLAY_ERRORS=false + +# --- RemoteCP-Datenbank --- +# --- MariaDB --- +MARIADB_ROOT_PASSWORD=changeme_root + +REMOTECP_DB_HOST=mariadb +REMOTECP_DB_NAME=remotecp +REMOTECP_DB_USER=remotecp +REMOTECP_DB_PASSWORD=changeme_remotecp diff --git a/Dockerfile b/Dockerfile index b382379..7aa6e62 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,8 +12,14 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ php-zip \ php-xml \ php-mbstring \ + php-mysql \ + default-mysql-client \ && rm -rf /var/lib/apt/lists/* +# Apache mod_rewrite aktivieren und AllowOverride fuer .htaccess (RemoteCP-Sicherheit) +RUN a2enmod rewrite \ + && sed -i '//,/<\/Directory>/ s/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf + COPY assets/bin/TrackmaniaServer_2011-02-21.zip /opt/tmserver RUN unzip /opt/tmserver/TrackmaniaServer_2011-02-21.zip -d /opt/tmserver \ && rm -f /opt/tmserver/TrackmaniaServer_2011-02-21.zip @@ -51,7 +57,19 @@ RUN unzip /var/www/html/AdminServ_v2.1.1.zip -d /var/www/html \ && chmod 666 /var/www/html/config/adminserv.cfg.php \ && chown -R www-data:www-data /var/www/html/ -# AdminServ-Dateien als Default-Template sichern (wird beim ersten Start ins Volume kopiert) +# RemoteCP installieren (als Subpath /remotecp/) +COPY assets/bin/remoteCP_v4.0.3.5.zip /var/www/html +RUN unzip /var/www/html/remoteCP_v4.0.3.5.zip -d /var/www/html \ + && mv /var/www/html/remoteCP_4.0.3.5-1 /var/www/html/remotecp \ + && rm -f /var/www/html/remoteCP_v4.0.3.5.zip \ + && mkdir -p /var/www/html/remotecp/cache \ + && chmod -R 777 /var/www/html/remotecp/cache \ + && chmod -R 666 /var/www/html/remotecp/xml/*.xml \ + && chmod -R 777 /var/www/html/remotecp/xml \ + && chmod -R 777 /var/www/html/remotecp/xml/settings \ + && chown -R www-data:www-data /var/www/html/remotecp/ + +# AdminServ- und RemoteCP-Dateien als Default-Template sichern (wird beim ersten Start ins Volume kopiert) RUN cp -r /var/www/html /opt/tmserver/default-adminserv # PHP-Debug-Konfiguration: wird zur Laufzeit vom Startup-Script gesetzt @@ -80,6 +98,11 @@ ENV SERVER_DOWNLOAD_RATE=8192 ENV SERVER_MODE=internet ENV FORCE_CONFIG_UPDATE=false +# RemoteCP +ENV REMOTECP_DB_HOST=mariadb +ENV REMOTECP_DB_NAME=remotecp +ENV REMOTECP_DB_USER=remotecp + # Debugging ENV PHP_DISPLAY_ERRORS=false diff --git a/README.md b/README.md index a67803d..299edf0 100644 --- a/README.md +++ b/README.md @@ -22,9 +22,10 @@ Passe die Werte in der `.env`-Datei an deine Umgebung an (Passwörter, Masterser docker compose up -d --build ``` -### 3. AdminServ öffnen +### 3. Verwaltungsoberflächen öffnen -Die Verwaltungsoberfläche ist unter `http://` erreichbar. +- **AdminServ:** `http:///` +- **RemoteCP:** `http:///remotecp/` > **Hinweis:** Für den Internet-Modus müssen `SERVER_LOGIN` und `SERVER_VALIDATION_KEY` in der `.env`-Datei gesetzt sein. Einen Server-Account kannst du auf [players.trackmaniaforever.com](https://players.trackmaniaforever.com) erstellen. Für den LAN-Modus setze `SERVER_MODE=lan`. @@ -34,6 +35,7 @@ Die Verwaltungsoberfläche ist unter `http://` erreichbar. ├── assets/ │ ├── bin/ # Binaries und Startscript │ │ ├── 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 │ └── config/ @@ -44,7 +46,10 @@ Die Verwaltungsoberfläche ist unter `http://` erreichbar. ├── Dockerfile # Docker Build-Definition ├── .env.example # Vorlage fuer Umgebungsvariablen ├── .env # Lokale Umgebungsvariablen (nicht im Git!) -└── data/GameData/ # Persistente Serverdaten (zur Laufzeit) +└── data/ # Persistente Daten (zur Laufzeit) + ├── GameData/ # TM-Server-Daten + ├── AdminServ/ # AdminServ + RemoteCP + └── MariaDB/ # MariaDB-Datenbankdateien ``` ## Dokumentation @@ -56,6 +61,7 @@ Die vollständige Dokumentation befindet sich im Ordner [`docs/`](docs/README.md - [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 +- [RemoteCP](docs/remotecp.md) – Alternative Server-Verwaltungsoberfläche - [Ports](docs/ports.md) – Freigegebene Ports und deren Verwendung --- diff --git a/assets/bin/RunTrackmaniaServer.sh b/assets/bin/RunTrackmaniaServer.sh index 6d963db..e836f31 100644 --- a/assets/bin/RunTrackmaniaServer.sh +++ b/assets/bin/RunTrackmaniaServer.sh @@ -10,7 +10,7 @@ if [ "$PHP_DISPLAY_ERRORS" = "true" ]; then echo "==> PHP-Debug-Modus AKTIVIERT (PHP_DISPLAY_ERRORS=true)" cat > "$PHP_INI_DIR/99-adminserv-debug.ini" < Konfiguriere RemoteCP..." + + # DB-Konfiguration aus Umgebungsvariablen + REMOTECP_DB_HOST="${REMOTECP_DB_HOST:-}" + REMOTECP_DB_NAME="${REMOTECP_DB_NAME:-remotecp}" + REMOTECP_DB_USER="${REMOTECP_DB_USER:-remotecp}" + REMOTECP_DB_PASSWORD="${REMOTECP_DB_PASSWORD:-}" + + if [ -n "$REMOTECP_DB_HOST" ] && [ -n "$REMOTECP_DB_PASSWORD" ]; then + DB_ENABLED="true" + DB_DSN="mysql:dbname=${REMOTECP_DB_NAME};host=${REMOTECP_DB_HOST}" + else + DB_ENABLED="false" + DB_DSN="mysql:dbname=remotecp;host=localhost" + echo " HINWEIS: Keine DB-Zugangsdaten gesetzt (REMOTECP_DB_HOST/REMOTECP_DB_PASSWORD)." + echo " RemoteCP wird ohne Datenbank konfiguriert. Manuelle Einrichtung moeglich." + fi + + # servers.xml: Serververbindung und Datenbank automatisch konfigurieren + SA_PW=$(printf '%s' "${SERVER_SA_PASSWORD:-SuperAdmin}" | sed 's/&/\&/g; s//\>/g') + SAFE_RCP_NAME=$(printf '%s' "${SERVER_NAME:-Trackmania Server}" | sed 's/&/\&/g; s//\>/g') + SAFE_DB_DSN=$(printf '%s' "$DB_DSN" | sed 's/&/\&/g; s//\>/g') + SAFE_DB_USER=$(printf '%s' "$REMOTECP_DB_USER" | sed 's/&/\&/g; s//\>/g') + SAFE_DB_PW=$(printf '%s' "$REMOTECP_DB_PASSWORD" | sed 's/&/\&/g; s//\>/g') + cat > "$REMOTECP_DIR/xml/servers.xml" < + + + 1 + + ${SAFE_RCP_NAME} + + + + 127.0.0.1 + ${XMLRPC_PORT} + ${SA_PW} + 000000 + + + localhost + + username + password + /GameData/Tracks/ + + + ${SAFE_DB_DSN} + ${SAFE_DB_USER} + ${SAFE_DB_PW} + + + guestlist.txt + blacklist.txt + + + +EORCPSERV + + # admins.xml: Admin-Zugang aus SuperAdmin-Passwort konfigurieren + RCP_PW="${SERVER_SA_PASSWORD:-SuperAdmin}" + RCP_PW_MD5=$(printf '%s' "$RCP_PW" | md5sum | cut -d' ' -f1) + cat > "$REMOTECP_DIR/xml/admins.xml" < + + + L1 + true + + + + rcplive + 5b8e508f6f4a95bc581a37243d88f07e + false + false + en + + + + G1 + true + + + + Guest + adb831a7fdd83dd1e2a309ce7591dff8 + false + false + en + + + + 1 + true + + + + SuperAdmin + ${RCP_PW_MD5} + false + false + de + + + +EORCPADM + + # ============================================================ + # RemoteCP: Datenbank-Initialisierung + # ============================================================ + if [ "$DB_ENABLED" = "true" ]; then + echo " Warte auf MariaDB (${REMOTECP_DB_HOST})..." + DB_READY=false + for i in $(seq 1 30); do + if mysql -h "$REMOTECP_DB_HOST" -u "$REMOTECP_DB_USER" -p"$REMOTECP_DB_PASSWORD" "$REMOTECP_DB_NAME" -e "SELECT 1" > /dev/null 2>&1; then + echo " MariaDB erreichbar." + DB_READY=true + break + fi + echo " Versuch $i/30 - MariaDB noch nicht bereit, warte 3s..." + sleep 3 + done + + if [ "$DB_READY" = "true" ]; then + echo " Importiere RemoteCP-Datenbankschema..." + for sqlfile in "$REMOTECP_DIR"/plugins/*/mysql_*.sql "$REMOTECP_DIR"/live/*/mysql_*.sql; do + if [ -f "$sqlfile" ]; then + echo " -> $(basename "$sqlfile")" + mysql -h "$REMOTECP_DB_HOST" -u "$REMOTECP_DB_USER" -p"$REMOTECP_DB_PASSWORD" "$REMOTECP_DB_NAME" < "$sqlfile" + fi + done + + # Installer-Markierung setzen (ueberspringt den Web-Installer) + echo "installed" > "$REMOTECP_DIR/cache/installed" + chown www-data:www-data "$REMOTECP_DIR/cache/installed" + echo " RemoteCP-Datenbank erfolgreich initialisiert." + else + echo " WARNUNG: MariaDB nicht erreichbar nach 90s!" + echo " RemoteCP-Datenbank muss manuell eingerichtet werden." + echo " Installer: http:///remotecp/index.php?page=install" + fi + fi + + # Berechtigungen fuer RemoteCP setzen + chmod -R 777 "$REMOTECP_DIR/cache" + chmod -R 777 "$REMOTECP_DIR/xml" + chown -R www-data:www-data "$REMOTECP_DIR/" + + echo " RemoteCP-Konfiguration abgeschlossen (Port: ${XMLRPC_PORT}, User: SuperAdmin)." + fi else echo "==> Vorhandene AdminServ-Daten gefunden. Keine Aenderungen." fi diff --git a/assets/bin/remoteCP_v4.0.3.5.zip b/assets/bin/remoteCP_v4.0.3.5.zip new file mode 100644 index 0000000..55f231b Binary files /dev/null and b/assets/bin/remoteCP_v4.0.3.5.zip differ diff --git a/docker-compose.yml b/docker-compose.yml index 141bb4d..b56dadb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,6 +4,9 @@ services: context: . container_name: tmserver restart: unless-stopped + depends_on: + mariadb: + condition: service_healthy ports: - "${SERVER_PORT:-2350}:${SERVER_PORT:-2350}/tcp" - "${SERVER_PORT:-2350}:${SERVER_PORT:-2350}/udp" @@ -19,6 +22,29 @@ services: tmserver_net: ipv4_address: 172.20.60.10 + mariadb: + image: mariadb:10.11 + container_name: tmserver-mariadb + restart: unless-stopped + env_file: + - .env + environment: + MYSQL_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD} + MYSQL_DATABASE: ${REMOTECP_DB_NAME:-remotecp} + MYSQL_USER: ${REMOTECP_DB_USER:-remotecp} + MYSQL_PASSWORD: ${REMOTECP_DB_PASSWORD} + volumes: + - ./data/MariaDB:/var/lib/mysql + healthcheck: + test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] + interval: 10s + timeout: 5s + retries: 5 + start_period: 30s + networks: + tmserver_net: + ipv4_address: 172.20.60.11 + networks: tmserver_net: name: tmserver.dockernetwork.local diff --git a/docs/README.md b/docs/README.md index 7d89c8d..eddd679 100644 --- a/docs/README.md +++ b/docs/README.md @@ -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 | diff --git a/docs/adminserv.md b/docs/adminserv.md index 0fd07bb..6d56118 100644 --- a/docs/adminserv.md +++ b/docs/adminserv.md @@ -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 diff --git a/docs/konfiguration.md b/docs/konfiguration.md index 30e887e..b8454b8 100644 --- a/docs/konfiguration.md +++ b/docs/konfiguration.md @@ -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 diff --git a/docs/ports.md b/docs/ports.md index 3c3001a..cd7bf62 100644 --- a/docs/ports.md +++ b/docs/ports.md @@ -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 diff --git a/docs/remotecp.md b/docs/remotecp.md new file mode 100644 index 0000000..0a67dc1 --- /dev/null +++ b/docs/remotecp.md @@ -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:///` +- **RemoteCP:** `http:///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:///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 `false` deaktiviert werden diff --git a/docs/schnellstart.md b/docs/schnellstart.md index 00bfc88..4aee476 100644 --- a/docs/schnellstart.md +++ b/docs/schnellstart.md @@ -65,9 +65,14 @@ docker run -d \ --name tmserver tmserver:latest ``` -## 4. AdminServ öffnen +## 4. Verwaltungsoberflächen öffnen -Die Verwaltungsoberfläche ist unter `http://` erreichbar. Weitere Details unter [AdminServ](adminserv.md). +| Tool | URL | Beschreibung | +|------|-----|-------------| +| AdminServ | `http:///` | Server-Verwaltungsoberfläche | +| RemoteCP | `http:///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. diff --git a/docs/umgebungsvariablen.md b/docs/umgebungsvariablen.md index 51f2b0e..b73a78c 100644 --- a/docs/umgebungsvariablen.md +++ b/docs/umgebungsvariablen.md @@ -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 |