diff --git a/.env.example b/.env.example index de654ba..34e401b 100644 --- a/.env.example +++ b/.env.example @@ -2,33 +2,39 @@ # tmserver-docker – Umgebungsvariablen # ============================================================ # Diese Datei wird von docker-compose.yml eingelesen. +# Bitte ändere sämtliche Passwörter hier, um die Sicherheit deines Servers zu gewährleisten. # Kopiere diese Vorlage nach .env und passe die Werte an: # cp .env.example .env # -# WICHTIG: .env niemals ins Git einchecken! # ============================================================ # --- Authentifizierung --- -SERVER_SA_PASSWORD=SuperAdmin -SERVER_ADM_PASSWORD=Admin -SERVER_USER_PASSWORD=User +# User: SuperAdmin, Admin, User +SERVER_SA_PASSWORD="3HbQc2EVarykEPX" +SERVER_ADM_PASSWORD="YhNDuChmzoaHP72" +SERVER_USER_PASSWORD="8e9J8AKwS6YDXmT" -# --- Masterserver-Account (fuer Internet-Modus) --- +# --- Masterserver-Account --- +# Wenn du deinen Server im Internet-Modus betreiben möchtest, musst du hier die Zugangsdaten für deinen Masterserver-Account eingeben. +# Diese Informationen erhältst du, wenn du deinen Server auf der Trackmania-Webseite registrierst. SERVER_LOGIN= SERVER_LOGIN_PASSWORD= SERVER_VALIDATION_KEY= # --- Server-Optionen --- -SERVER_NAME=Trackmania Server -SERVER_DESC=Powered by tmserver-docker +# Bitte ändere den Server-Namen und die Beschreibung, um deinen Server von anderen zu unterscheiden. +# Du kannst auch die Anzahl der Spieler und Zuschauer anpassen, sowie ein Passwort setzen, um den Zugang zu beschränken. +SERVER_NAME="$F00F$F10re$F20eZ$F30on$F40e $F50|$F60 T$F70ra$F80ck$F90ma$FA0n$FB0ia$FC0 S$FD0er$FE0ve$FF0r" +SERVER_DESC="Powered by tm-server-docker" SERVER_HIDE=0 -SERVER_MAX_PLAYERS=32 +SERVER_MAX_PLAYERS=40 SERVER_PASSWORD= -SERVER_MAX_SPECTATORS=32 +SERVER_MAX_SPECTATORS=40 SERVER_SPEC_PASSWORD= SERVER_LADDER_MODE=forced # --- Netzwerk --- +# Bitte ändere die Ports, wenn sie in deinem Netzwerk bereits verwendet werden. SERVER_PORT=2350 SERVER_P2P_PORT=3450 SERVER_XMLRPC_PORT=5000 @@ -36,17 +42,27 @@ SERVER_UPLOAD_RATE=512 SERVER_DOWNLOAD_RATE=8192 # --- Server-Modus und Config-Steuerung --- +# Der Server-Modus kann auf "internet" oder "lan" gesetzt werden. Im Internet-Modus wird eine Verbindung zum Masterserver hergestellt, um den Server öffentlich sichtbar zu machen. +# Im LAN-Modus wird keine Verbindung zum Masterserver hergestellt, und der Server ist nur im lokalen Netzwerk sichtbar. SERVER_MODE=internet + +# Wenn FORCE_CONFIG_UPDATE auf true gesetzt ist, wird die Server-Konfiguration bei jedem Start des Containers überschrieben. +# Dies kann nützlich sein, wenn du Änderungen an der .env-Datei vornimmst und sicherstellen möchtest, dass diese Änderungen angewendet werden. +# In einer Produktionsumgebung sollte dieser Wert jedoch auf false belassen werden, um zu verhindern, dass die Konfiguration versehentlich überschrieben wird. FORCE_CONFIG_UPDATE=false # --- Debugging --- +# Setze diesen Wert auf true, um PHP-Fehlermeldungen anzuzeigen. Dies kann bei der Fehlersuche hilfreich sein, sollte aber in einer Produktionsumgebung auf false belassen werden. PHP_DISPLAY_ERRORS=false # --- RemoteCP-Datenbank --- # --- MariaDB --- -MARIADB_ROOT_PASSWORD=changeme_root +# Bitte ändere das Root-Passwort für MariaDB, um die Sicherheit deiner Datenbank zu gewährleisten. +MARIADB_ROOT_PASSWORD="RAPjY2FLtLoLDYU" +# --- RemoteCP-Datenbankzugang --- +# Diese Zugangsdaten werden von RemoteCP verwendet, um sich mit der Datenbank zu verbinden. Ändere diese Werte, um die Sicherheit deiner Datenbank zu gewährleisten. REMOTECP_DB_HOST=mariadb REMOTECP_DB_NAME=remotecp REMOTECP_DB_USER=remotecp -REMOTECP_DB_PASSWORD=changeme_remotecp +REMOTECP_DB_PASSWORD="6MP2mBdF9TBtdmN" diff --git a/Dockerfile b/Dockerfile index 7aa6e62..c4e79b7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -70,7 +70,7 @@ RUN unzip /var/www/html/remoteCP_v4.0.3.5.zip -d /var/www/html \ && 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 +RUN cp -r /var/www/html /opt/tmserver/default-controlpanel # PHP-Debug-Konfiguration: wird zur Laufzeit vom Startup-Script gesetzt # (kein Rebuild noetig – nur Container neustarten) diff --git a/assets/bin/RunTrackmaniaServer.sh b/assets/bin/RunTrackmaniaServer.sh index e836f31..fb2dfb9 100644 --- a/assets/bin/RunTrackmaniaServer.sh +++ b/assets/bin/RunTrackmaniaServer.sh @@ -34,11 +34,11 @@ fi # ============================================================ ADMINSERV_DIR="/var/www/html" -DEFAULT_ADMINSERV="/opt/tmserver/default-adminserv" +DEFAULT_CONTROLPANEL="/opt/tmserver/default-controlpanel" if [ ! -f "$ADMINSERV_DIR/index.php" ]; then echo "==> Erster Start erkannt: Kopiere AdminServ-Dateien ins Volume..." - cp -r "$DEFAULT_ADMINSERV"/* "$ADMINSERV_DIR/" + cp -r "$DEFAULT_CONTROLPANEL"/* "$ADMINSERV_DIR/" chmod -R 777 "$ADMINSERV_DIR/logs/" chmod 666 "$ADMINSERV_DIR/config/adminlevel.cfg.php" chmod 666 "$ADMINSERV_DIR/config/servers.cfg.php" diff --git a/docker-compose.yml b/docker-compose.yml index b56dadb..1ff1c6d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -16,14 +16,14 @@ services: env_file: - .env volumes: - - ./data/GameData:/opt/tmserver/GameData - - ./data/AdminServ:/var/www/html + - ./data/gamedata:/opt/tmserver/GameData + - ./data/controlpanel:/var/www/html networks: tmserver_net: ipv4_address: 172.20.60.10 mariadb: - image: mariadb:10.11 + image: mariadb:11.4 container_name: tmserver-mariadb restart: unless-stopped env_file: @@ -34,7 +34,7 @@ services: MYSQL_USER: ${REMOTECP_DB_USER:-remotecp} MYSQL_PASSWORD: ${REMOTECP_DB_PASSWORD} volumes: - - ./data/MariaDB:/var/lib/mysql + - ./data/mariadb:/var/lib/mysql healthcheck: test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] interval: 10s diff --git a/docs/adminserv.md b/docs/adminserv.md index 6d56118..9dc11d9 100644 --- a/docs/adminserv.md +++ b/docs/adminserv.md @@ -30,13 +30,13 @@ Die Admin-Stufen können unter `http:///config` geä ## Persistente Speicherung -Alle AdminServ-Daten (Passwort, Server-Einträge, Konfiguration, Logs) werden über einen Bind-Mount (`./data/AdminServ`) persistent auf dem Host gespeichert. Beim ersten Start werden die Dateien automatisch aus dem Image ins Volume kopiert. +Alle AdminServ-Daten (Passwort, Server-Einträge, Konfiguration, Logs) werden über einen Bind-Mount (`./data/controlpanel`) persistent auf dem Host gespeichert. Beim ersten Start werden die Dateien automatisch aus dem Image ins Volume kopiert. | Host-Pfad | Container-Pfad | Beschreibung | |-----------|----------------|-------------| -| `./data/AdminServ` | `/var/www/html` | AdminServ- und RemoteCP-Installation | +| `./data/controlpanel` | `/var/www/html` | AdminServ- und RemoteCP-Installation | -> **Hinweis:** Im selben Volume befindet sich auch [RemoteCP](remotecp.md) unter `./data/AdminServ/remotecp/`. +> **Hinweis:** Im selben Volume befindet sich auch [RemoteCP](remotecp.md) unter `./data/controlpanel/remotecp/`. ## Fehlerbehebung @@ -61,7 +61,7 @@ Falls AdminServ in einen inkonsistenten Zustand geraten ist: ```bash # AdminServ-Daten auf dem Host löschen -rm -rf ./data/AdminServ/* +rm -rf ./data/controlpanel/* # Container neu starten – AdminServ wird frisch initialisiert docker compose up -d