Docs/ Operaciones/ Actualizaciones y diagnóstico

Actualizaciones y diagnóstico

Mantenga sh0 al día, vuelva atrás cuando una versión falle y revise el host antes de culpar a la app.

Actualizar sh0

Ejecute la actualización en el servidor. Busca la última versión final en GitHub, descarga el archivo de su arquitectura, lo verifica con las sumas de verificación publicadas y reemplaza el binario. La versión reemplazada se conserva para una reversión.

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).

En un terminal interactivo, sh0 pregunta antes de reiniciar el servicio. Con --yes reinicia sin preguntar. Si se ejecuta desde cron, una tubería o un script sin --yes, nunca reinicia y lo avisa primero.

Canales

Por defecto, la actualización sigue el canal stable: solo versiones finales. --channel beta instala en su lugar la preversión más reciente. --force instala la versión del canal aunque no sea más nueva: así se vuelve a una versión anterior.

Revertir

--rollback restaura la versión que reemplazó la última actualización. Úselo cuando una versión falle justo después de actualizar.

Lo que sigue funcionando

Sus aplicaciones son contenedores de Docker: reiniciar sh0 no las detiene. El proxy inverso que tienen delante también sigue activo, siempre que la unidad de servicio conserve KillMode=process, que configura el instalador (vea Instalación).

Note
Las migraciones de la base de datos del propio sh0 se aplican automáticamente al arrancar la nueva versión.

Revisar el host con sh0 doctor

Ejecute sh0 doctor en el servidor cuando algo parezca ir mal, antes de una actualización o justo después de instalar. No requiere iniciar sesión y no cambia 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
En la versión actual, el informe se muestra en francés.

Cada línea es una comprobación: Docker, los puertos que necesita sh0 (80, 443 y el del panel), el espacio libre en disco, los certificados a punto de caducar, el dominio del panel y si el panel sigue respondiendo por HTTP sin cifrar, el reloj y las apps que quedaron fuera de todo proyecto. Una línea WARN señala algo que corregir; no bloquea.

Códigos de salida

  • 0: nada bloquea (pueden quedar avisos).
  • 1: al menos un problema bloqueante.
  • 2: una comprobación no pudo ejecutarse. Una comprobación que no se ejecutó nunca se presenta como superada.

Añada --json para obtener una salida legible por máquina, por ejemplo en un script de monitorización.

Comprobaciones de la base de datos

Dos subcomandos de solo lectura inspeccionan la base de datos de sh0 en busca de restos de versiones anteriores:

  • sh0 doctor backup-rows cuenta los registros de restauración que una migración anterior no pudo alcanzar.
  • sh0 doctor bind-mounts lista los montajes del host que las reglas de montaje actuales rechazarían.