Zum Inhalt springen

Einen bestehenden Server aktualisieren

Diese Seite ist für einen Server, der schon läuft. Eine Neuinstallation nutzt Installation oder das txAdmin-Rezept. Allgemeines zu Backups und Migrationen steht unter Updates & Datenbank.

  1. Stoppe den Server.
  2. Sichere den gesamten Serverordner und die Datenbank. Behalte eine unberührte Kopie der installierten Version.
  3. Entpacke die neue Version in einen separaten Ordner. Entpacke sie nie über deinen Server.

Du brauchst Python 3.10 oder neuer und Git. Die Version enthält update/bs_update.py.

python update/bs_update.py prepare --base OLD_RELEASE --local YOUR_SERVER --new NEW_RELEASE --review REVIEW_FOLDER
  • REVIEW_FOLDER/plan.json listet genau, welche Dateien sich geändert haben. Die vorgeschlagenen Fassungen liegen in proposed/.
  • Dateien, die du nicht bearbeitet hast, werden sauber aktualisiert. Bearbeitete bekommen einen Drei-Wege-Merge, und solche mit Konflikten brauchen einen manuellen Blick. Dateien, die nur du hast, bleiben unberührt.
  • Config-Dateien werden genauso geprüft, überschreibe also nicht blind deine Passwörter oder eigenen Einstellungen.

Schreibe nur die Pfade, die du genehmigst, in REVIEW_FOLDER/accept.txt, einen pro Zeile. Löse zuerst alle Merge-Markierungen auf. Eine genehmigte Löschung entfernt genau diese Datei. Dann:

python update/bs_update.py apply --review REVIEW_FOLDER

Um die genehmigten Dateiänderungen rückgängig zu machen, bevor du weiter bearbeitest: python update/bs_update.py rollback --review REVIEW_FOLDER. Das Datenbank-Backup stellst du bei Bedarf separat wieder her.

Das Tool berührt die Datenbank nie. bs_core wendet die neuen Migrationen beim ersten Start an und trägt sie in bs_migrations ein, der Reihe nach und nur einmal. Die neuen sind 044_operations.sql, 045_darkzone.sql, 046_building_v2.sql und 047_faction_emblems.sql, zusätzlich zu den früheren in Datenbank-Migrationen. Importiere nie die Datenbank einer Neuinstallation über deine laufende.

Vergleiche deine server.cfg mit der neuen und ergänze, was fehlt. Das sind die Ressourcen, die die neueren Systeme brauchen, in der Reihenfolge, in der der Live-Server sie startet:

ensure bs_config
ensure bs_ui
ensure bs_building
ensure bs_zombies
stop pma-voice
setr voice_useNativeAudio true
setr voice_useSendingRangeOnly true
ensure bs_voice
ensure bs_radio
ensure bs_missions
ensure bs_traders
ensure bs_jobs
ensure bs_events
ensure bs_operations
ensure bs_darkzone # bleibt aus, bis du sie in F1 > Dark Zone einschaltest
ensure bs_guard
ensure bs_pushgates
ensure bs_pause
ensure bs_tutorial
ensure bs_pass
ensure bs_survivor

bs_voice ersetzt pma-voice. Stoppe pma-voice, bevor du es aktivierst, und stelle eigene Skripte um, die es aufrufen.

Starte privat und prüfe: Charakterauswahl, Inventar, Speichern in der Datenbank und alles, was sich geändert hat. Behalte die Backups, bis du das Ergebnis akzeptierst.

  • F1 hat neue Seiten: Operations, Dark Zone, Hunting, Tutorial & Pause Menu, Themes & UI, Voice & radio und Building materials. Siehe Dark Zone, Operationen, Building v2 und Sprache, Funk & Themes.
  • Die Dark Zone ist aus. Raids und Basisverfall sind aus. Für Spieler ändert sich nichts, bis du sie einschaltest.
  • Deine F1-Profile liegen in der Datenbank und überstehen das Update. Ein Schlüssel, den es nicht mehr gibt, wird ignoriert.
  • Lösche cache/, wenn nach dem Update etwas seltsam wirkt. Kopiere ihn nie zwischen Rechnern.

Die server.private.cfg enthält, was nur zu diesem Rechner gehört. Die server.cfg lädt sie weit oben mit:

exec server.private.cfg

Das gehört hinein:

  • sv_licenseKey und mysql_connection_string
  • steam_webApiKey, falls du ihn nutzt, und bs_vip_tebex_secret, falls du VIP verkaufst
  • Deine Admin-Zeilen, add_principal identifier.license:... group.superadmin
sv_licenseKey "dein Schlüssel"
set mysql_connection_string "mysql://benutzer:[email protected]/beyondsurvival?charset=utf8mb4"
add_principal identifier.license:DEINE_LIZENZ group.superadmin

Regeln:

  • Sie liegt nicht in Git, und das Update-Tool überschreibt sie nie, ein Update berührt also nie deinen Schlüssel, dein Passwort oder deine Admin-Liste.
  • Gib sie nie weiter, packe sie nie für andere in ein Archiv, committe sie nie.
  • Convars werden der Reihe nach gelesen, und das letzte set gewinnt. Setzt die server.cfg dieselbe Convar nach der exec-Zeile erneut, überschreibt das die private Datei. Halte Rechnerwerte an einer einzigen Stelle und entferne das Duplikat aus der server.cfg.
  • Nimm set für Geheimnisse, nicht setr, weil setr den Wert an alle Spieler sendet.