Aller au contenu

Mettre à jour un serveur existant

Cette page s’adresse à un serveur déjà en marche. Une installation neuve utilise Installation ou la recette txAdmin. Le contexte général sur les sauvegardes et migrations est sur Mises à jour et base de données.

  1. Arrête le serveur.
  2. Sauvegarde tout le dossier du serveur et la base de données. Garde une copie intacte de la release installée.
  3. Extrais la nouvelle release dans un dossier séparé. Ne l’extrais jamais par-dessus ton serveur.

Relire les changements avec l’outil de mise à jour

Section intitulée « Relire les changements avec l’outil de mise à jour »

Il te faut Python 3.10 ou plus récent et Git. La release contient 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 liste exactement quels fichiers ont changé. Les versions proposées sont dans proposed/.
  • Les fichiers que tu n’as pas modifiés sont mis à jour proprement. Ceux que tu as modifiés reçoivent une fusion à trois voies, et ceux en conflit demandent un examen manuel. Les fichiers que tu es seul à avoir sont laissés tels quels.
  • Les fichiers de config suivent la même relecture, ne colle donc pas par-dessus tes mots de passe ou réglages personnalisés.

Mets uniquement les chemins que tu approuves dans REVIEW_FOLDER/accept.txt, un par ligne. Corrige d’abord tous les marqueurs de fusion. Une suppression approuvée retire ce fichier précis. Puis :

python update/bs_update.py apply --review REVIEW_FOLDER

Pour annuler les changements de fichiers approuvés avant de modifier autre chose : python update/bs_update.py rollback --review REVIEW_FOLDER. Restaure la sauvegarde de la base séparément si nécessaire.

L’outil ne touche jamais à la base. bs_core applique les nouvelles migrations à son premier démarrage et les enregistre dans bs_migrations, dans l’ordre et une seule fois. Les nouvelles sont 044_operations.sql, 045_darkzone.sql, 046_building_v2.sql et 047_faction_emblems.sql, en plus des précédentes listées dans Migrations de la base de données. N’importe jamais la base d’une installation neuve par-dessus ta base en production.

Compare ton server.cfg avec le nouveau et ajoute ce qui manque. Voici les ressources dont les nouveaux systèmes ont besoin, dans l’ordre où le serveur en production les lance :

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 # reste désactivée tant que tu ne l'actives pas dans F1 > Dark Zone
ensure bs_guard
ensure bs_pushgates
ensure bs_pause
ensure bs_tutorial
ensure bs_pass
ensure bs_survivor

bs_voice remplace pma-voice. Arrête pma-voice avant de l’activer, et migre tout script personnalisé qui appelle pma-voice.

Démarre en privé et vérifie : sélection de personnage, inventaire, sauvegardes en base, et tout ce qui a changé. Garde tes sauvegardes jusqu’à ce que tu valides le résultat.

  • F1 a de nouvelles pages : Operations, Dark Zone, Hunting, Tutorial & Pause Menu, Themes & UI, Voice & radio et Building materials. Voir Dark Zone, Operations, Building v2 et Voix, radio et thèmes.
  • La Dark Zone est désactivée. Les raids et la dégradation des bases sont désactivés. Rien ne change pour les joueurs tant que tu ne l’actives pas.
  • Tes profils F1 sont en base et survivent à la mise à jour. Une clé qui n’existe plus est ignorée.
  • Supprime cache/ si quelque chose paraît étrange après la mise à jour. Ne le copie jamais d’une machine à l’autre.

server.private.cfg contient ce qui appartient à cette machine uniquement. server.cfg le charge près du début avec :

exec server.private.cfg

Mets-y :

  • sv_licenseKey et mysql_connection_string
  • steam_webApiKey si tu l’utilises, et bs_vip_tebex_secret si tu vends du VIP
  • Tes lignes d’admin, add_principal identifier.license:... group.superadmin
sv_licenseKey "your key"
set mysql_connection_string "mysql://user:[email protected]/beyondsurvival?charset=utf8mb4"
add_principal identifier.license:YOUR_LICENSE group.superadmin

Règles :

  • Il n’est pas dans git et l’outil de mise à jour ne l’écrase jamais, donc mettre à jour ne touche jamais à ta clé, ton mot de passe ni ta liste d’admins.
  • Ne le partage jamais, ne le zippe jamais pour d’autres personnes, ne le commite jamais.
  • Les convars sont lues dans l’ordre et le dernier set gagne. Si server.cfg redéfinit la même convar après la ligne exec, il écrase le fichier privé. Garde les valeurs propres à la machine à un seul endroit et retire le doublon de server.cfg.
  • Utilise set pour les secrets, pas setr, car setr envoie la valeur à tous les joueurs.