Docs/ Operações/ Atualizações e diagnóstico

Atualizações e diagnóstico

Mantenha o sh0 atualizado, volte atrás quando uma versão falhar e verifique o host antes de culpar a app.

Atualizar o sh0

Execute a atualização no servidor. Ela procura a versão final mais recente no GitHub, baixa o arquivo da sua arquitetura, confere com as somas de verificação publicadas e substitui o binário. A versão substituída é guardada para um rollback.

Terminal
sudo sh0 update
Output (already up to date)
* sh0 self-update
  Current version: v1.10.3-rc9

  Checking for updates...
  [+] Already running the latest version (v1.10.3-rc9).

Num terminal interativo, o sh0 pergunta antes de reiniciar o serviço. Com --yes, reinicia sem perguntar. Executado por cron, pipe ou script sem --yes, nunca reinicia e avisa antes.

Canais

Por padrão, a atualização segue o canal stable: apenas versões finais. --channel beta instala a pré-versão mais recente. --force instala a versão do canal mesmo que não seja mais nova: é assim que se volta a uma versão anterior.

Reverter

--rollback recoloca a versão que a última atualização substituiu. Use quando uma versão falhar logo após uma atualização.

O que continua rodando

Suas aplicações são contêineres Docker: reiniciar o sh0 não as para. O proxy reverso na frente delas também continua no ar, desde que a unidade de serviço mantenha KillMode=process, que o instalador define (veja Instalação).

Note
As migrações do banco do próprio sh0 são aplicadas automaticamente quando a nova versão inicia.

Verificar o host com o sh0 doctor

Execute o sh0 doctor no servidor quando algo parecer errado, antes de uma atualização ou logo após instalar. Ele não exige login e não altera nada.

Terminal
sudo sh0 doctor
Output
sh0 doctor préflight d'hôte
  données : /var/lib/sh0

   OK  docker                     démon joignable -- version 29.8.1, API 1.56, linux/amd64, 2 conteneurs (2 en marche)
   OK  port 80                    tenu par `caddy` -- c'est notre propre pile
   OK  port 443                   tenu par `caddy` -- c'est notre propre pile
   OK  port 9000                  tenu par `sh0` -- c'est notre propre pile
   OK  disque                     /var/lib/docker : 20.5 % occupés, 119.2 Gio libres sur 149.9 Gio
   OK  certificats                1 actif(s) (1 par Caddy, 0 téléversé(s), 35 interne(s) hors seuil), le plus proche expire dans 88 j (demo.sh0.dev)
   OK  panneau (domaine)          demo.sh0.dev servi en HTTPS, certificat valable jusqu'au 2026-12-29
  WARN panneau (exposition)       HTTPS en service, mais le port 9000 répond encore en clair sur 5.78.182.107
   OK  horloge                    synchronisée, décalage mesuré 0 s
   OK  Applications sans projet   toutes les applications sont rattachées à un projet

  des avertissements, rien de bloquant  (code de sortie 0)
Note
Na versão atual, o relatório é exibido em francês.

Cada linha é uma verificação: Docker, as portas de que o sh0 precisa (80, 443 e a porta do painel), espaço livre em disco, certificados perto de expirar, o domínio do painel e se ele ainda responde em HTTP sem criptografia, o relógio e apps que ficaram fora de qualquer projeto. Uma linha WARN aponta algo a corrigir; não bloqueia.

Códigos de saída

  • 0: nada bloqueia (podem restar avisos).
  • 1: pelo menos um problema bloqueante.
  • 2: uma verificação não pôde ser executada. Uma verificação que não rodou nunca é apresentada como aprovada.

Adicione --json para uma saída legível por máquina, por exemplo num script de monitoramento.

Verificações do banco

Dois subcomandos somente leitura inspecionam o banco do sh0 em busca de resquícios de versões antigas:

  • sh0 doctor backup-rows conta os registros de restauração que uma migração anterior não conseguiu alcançar.
  • sh0 doctor bind-mounts lista as montagens do host que as regras de montagem atuais recusariam.