# Update-Anleitung Diese Anleitung beschreibt, wie du eine **bestehende Installation** auf den neuesten Stand bringst – ohne Daten zu verlieren und ohne alles neu aufsetzen zu müssen. > **Hinweis:** Alle persistenten Daten (Konfiguration, Tracks, Datenbanken, Logs) liegen im Ordner `./data/` und werden bei einem Update nicht berührt. --- ## 1. Repository aktualisieren Wechsle in den Projektordner und lade die neuesten Änderungen: ```bash git pull ``` Damit werden aktualisierte Konfigurationsdateien, Skripte und Dokumentation aus dem Repository übernommen. --- ## 2. Neue Umgebungsvariablen prüfen Mit neuen Versionen können neue Variablen in der `.env.example` hinzugekommen sein. Deine persönliche `.env`-Datei wird dabei **nicht überschrieben** – du musst neue Variablen manuell nachtragen. Vergleiche `.env.example` mit deiner `.env`, um fehlende Einträge zu finden: ```bash diff .env.example .env ``` Zeilen, die in `.env.example` vorhanden sind, aber nicht in deiner `.env`, erscheinen mit `<` am Anfang. Diese solltest du in deine `.env` übernehmen und die Werte anpassen. > **Tipp:** Neue Variablen haben in der Regel sinnvolle Standardwerte, die du oft einfach übernehmen kannst. Achte nur auf sicherheitsrelevante Werte wie Passwörter. --- ## 3. Docker Image aktualisieren Lade das neueste Image aus der Registry: ```bash docker compose pull ``` --- ## 4. Container neu starten Starte die Container mit dem neuen Image neu. Docker Compose erkennt automatisch, ob ein Rebuild nötig ist: ```bash docker compose up -d ``` > **Hinweis:** Wenn sich die `docker-compose.yml` geändert hat (z.B. neue Services oder geänderte Konfiguration), werden betroffene Container automatisch neu erstellt. Deine Daten in `./data/` bleiben dabei vollständig erhalten. --- ## Zusammenfassung ```bash # Im Projektordner ausführen: git pull docker compose pull docker compose up -d ``` Das war's – der Server läuft jetzt auf dem neuesten Stand. --- ## Was passiert mit meinen Daten? | Ordner | Inhalt | Beim Update | |--------|--------|-------------| | `./data/gamedata/` | TM-Server-Daten, Konfiguration, Tracks | Bleibt erhalten | | `./data/controlpanel/` | AdminServ- und RemoteCP-Daten | Bleibt erhalten | | `./data/xaseco/` | XAseco-Konfiguration und Logs | Bleibt erhalten | | `./data/mariadb/` | Datenbankdateien | Bleibt erhalten | | `.env` | Deine Umgebungsvariablen | Wird nicht überschrieben | --- ## Häufige Situationen ### Neue Umgebungsvariable hat keinen Effekt Einige Variablen (z.B. `SERVER_SA_PASSWORD`) werden nur beim **ersten Start** in die `dedicated_cfg.txt` geschrieben. Falls du eine neue Variable nachträglich setzen möchtest, kannst du das erzwingen: ```bash # In der .env setzen: FORCE_CONFIG_UPDATE=true ``` Dann Container neu starten. Danach unbedingt wieder auf `false` setzen, damit manuelle Änderungen erhalten bleiben. Weitere Details unter [Konfiguration](konfiguration.md). ### Welches Image-Tag wird verwendet? In der `docker-compose.yml` ist das Image-Tag angegeben (z.B. `1.3.2` oder `latest`). Du kannst auf `latest` umstellen, um immer automatisch das neueste Image zu bekommen: ```yaml image: git.techniverse.net/scriptos/trackmania-server:latest ``` Alle verfügbaren Tags findest du in der [Container-Registry](https://git.techniverse.net/scriptos/-/packages/container/trackmania-server/).