Pular para o conteúdo

Atualizar um servidor existente

Esta página é para um servidor que já está a funcionar. Uma instalação nova usa Instalação ou a receita txAdmin. O contexto geral de cópias de segurança e migrações está em Atualizar e base de dados.

  1. Pára o servidor.
  2. Faz uma cópia de segurança da pasta inteira do servidor e da base de dados. Guarda uma cópia intacta da versão que instalaste.
  3. Extrai a nova versão para uma pasta separada. Nunca a extraias por cima do teu servidor.

Rever as alterações com a ferramenta de atualização

Seção intitulada “Rever as alterações com a ferramenta de atualização”

Precisas de Python 3.10 ou mais recente e de Git. A versão traz 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 lista exatamente que ficheiros mudaram. As versões propostas estão em proposed/.
  • Os ficheiros que não editaste são atualizados sem problemas. Os que editaste passam por uma fusão a três vias, e os que têm conflitos precisam de ser vistos à mão. Os ficheiros que só tu tens ficam como estão.
  • Os ficheiros de config têm a mesma revisão, por isso não colocas por cima as tuas palavras-passe ou definições.

Põe em REVIEW_FOLDER/accept.txt só os caminhos que aprovas, um por linha. Resolve primeiro todos os marcadores de fusão. Uma remoção aprovada apaga esse ficheiro exato. Depois:

python update/bs_update.py apply --review REVIEW_FOLDER

Para desfazer as alterações de ficheiros aprovadas antes de editares mais alguma coisa: python update/bs_update.py rollback --review REVIEW_FOLDER. Restaura a cópia da base de dados à parte se for preciso.

A ferramenta nunca toca na base de dados. O bs_core aplica as novas migrações no primeiro arranque e regista-as em bs_migrations, por ordem e uma só vez. As novas são 044_operations.sql, 045_darkzone.sql, 046_building_v2.sql e 047_faction_emblems.sql, além das anteriores listadas em Migrações da base de dados. Nunca importes a base de dados de uma instalação nova por cima da tua.

Compara o teu server.cfg com o novo e acrescenta o que falta. Estes são os recursos de que os sistemas mais recentes precisam, pela ordem em que o servidor real os corre:

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 # fica desligada até a ligares em F1 > Dark Zone
ensure bs_guard
ensure bs_pushgates
ensure bs_pause
ensure bs_tutorial
ensure bs_pass
ensure bs_survivor

O bs_voice substitui o pma-voice. Pára o pma-voice antes de o ativares e migra qualquer script teu que o chame.

Arranca em privado e verifica: seleção de personagem, inventário, gravação na base de dados e tudo o que mudou. Guarda as cópias de segurança até aceitares o resultado.

  • O F1 tem páginas novas: Operations, Dark Zone, Hunting, Tutorial & Pause Menu, Themes & UI, Voice & radio e Building materials. Ver Zona Negra, Operações, Construção v2 e Voz, rádio e temas.
  • A Zona Negra está desligada. Os raids e a decadência de bases estão desligados. Nada muda para os jogadores até os ligares.
  • Os teus perfis F1 estão na base de dados e sobrevivem à atualização. Uma chave que já não existe é ignorada.
  • Apaga cache/ se algo parecer estranho depois da atualização. Nunca a copies entre máquinas.

O server.private.cfg guarda o que pertence só a esta máquina. O server.cfg carrega-o perto do início com:

exec server.private.cfg

Mete lá:

  • sv_licenseKey e mysql_connection_string
  • steam_webApiKey se o usares, e bs_vip_tebex_secret se venderes VIP
  • As tuas linhas de admin, add_principal identifier.license:... group.superadmin
sv_licenseKey "a tua chave"
set mysql_connection_string "mysql://utilizador:[email protected]/beyondsurvival?charset=utf8mb4"
add_principal identifier.license:A_TUA_LICENCA group.superadmin

Regras:

  • Não está no git e a ferramenta de atualização nunca o substitui, por isso atualizar nunca toca na tua chave, palavra-passe ou lista de admins.
  • Nunca o partilhes, nunca o comprimas para outras pessoas, nunca o faças commit.
  • As convars são lidas por ordem e ganha o último set. Se o server.cfg voltar a definir a mesma convar depois da linha exec, sobrepõe-se ao ficheiro privado. Mantém os valores da máquina num só sítio e tira a duplicação do server.cfg.
  • Usa set para segredos, não setr, porque o setr envia o valor a todos os jogadores.