Instalación

Pon sh0 en funcionamiento en un servidor limpio en menos de un minuto. Un solo comando descarga el binario -- sh0 maneja todas las dependencias automáticamente.

Requisitos del sistema

RequisitoMínimoRecomendado
SOLinux (cualquier distribución)Ubuntu 22.04+ / Debian 12+
RAM1 GB2 GB+
Disco10 GB20 GB+ (SSD)
CPU1 vCPU2 vCPUs+
DockerInstalado automáticamente por sh0 si falta
Note
sh0 en sí usa muy poca memoria (alrededor de 30 MB). El requisito de RAM es principalmente para Docker y las aplicaciones que despliegues. Un servidor de 1 GB puede ejecutar cómodamente sh0 más 2-3 aplicaciones pequeñas.

Plataformas compatibles

sh0 proporciona binarios precompilados para las siguientes arquitecturas:

  • x86_64 (AMD64) -- La mayoría de servidores en la nube y proveedores VPS
  • aarch64 (ARM64) -- AWS Graviton, Oracle Ampere, Raspberry Pi 4+
Cero dependencias
sh0 debe instalarse en un servidor limpio. Cuando ejecutas sh0 serve como root, detecta e instala Docker y Caddy automáticamente si faltan. No se requiere configuración manual.

Instalar sh0

Instalación rápida (recomendada)

El script de instalación detecta tu arquitectura, descarga el último binario y configura el servicio systemd automáticamente:

Terminal
curl -fsSL https://sh0.dev/install | sh
Terminal output showing the sh0 install script downloading the binary, setting permissions, and starting the service
El script de instalación se completa en unos segundos

El script realiza estos pasos:

  1. Detecta la arquitectura de tu CPU (x86_64 o aarch64)
  2. Descarga el último binario de sh0 en /usr/local/bin/sh0
  3. Establece los permisos de ejecución
  4. Crea una unidad de servicio systemd
  5. Habilita e inicia el servicio

Descarga manual

Si prefieres instalar manualmente, descarga el binario directamente:

Terminal
# Download the binary (replace ARCH with amd64 or arm64)
curl -L -o /usr/local/bin/sh0 https://sh0.dev/download/latest/sh0-linux-ARCH

# Make it executable
chmod +x /usr/local/bin/sh0

# Start the server
sh0 serve

Verificar la instalación

Verifica que sh0 esté instalado y en ejecución:

Terminal
# Check the version
sh0 --version

# Check the service status
systemctl status sh0

# Verify the dashboard is accessible
curl -s http://localhost:9000/api/health
Terminal showing sh0 version output and systemctl status showing the service as active and running
Una instalación saludable de sh0

El endpoint de salud debería devolver una respuesta JSON confirmando que el servidor está operativo:

Health Response
{"data": {"status": "ok", "version": "1.6.0", "uptime": 42}}

Configuración del servicio systemd

Si usaste el script de instalación rápida, el servicio systemd ya está configurado. Para instalaciones manuales, crea el archivo de servicio:

/etc/systemd/system/sh0.service
[Unit]
Description=sh0 Deployment Platform
After=docker.service
Requires=docker.service

[Service]
Type=simple
ExecStart=/usr/local/bin/sh0 serve
Restart=always
RestartSec=5
Environment=SH0_DATA_DIR=/var/lib/sh0

[Install]
WantedBy=multi-user.target

Luego habilita e inicia el servicio:

Terminal
sudo systemctl daemon-reload
sudo systemctl enable sh0
sudo systemctl start sh0
Tip
El servicio systemd garantiza que sh0 se inicie automáticamente después de un reinicio del servidor y se reinicie si falla. Los registros están disponibles vía journalctl -u sh0 -f.

Configuración de firewall

sh0 requiere que los siguientes puertos sean accesibles:

PuertoProtocoloPropósito
80TCPTráfico HTTP (redirige a HTTPS)
443TCPTráfico HTTPS para tus aplicaciones desplegadas
9000TCPPanel de control y API de sh0

Si estás usando ufw (Ubuntu/Debian):

Terminal
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 9000/tcp
Seguridad del panel de control
El puerto 9000 proporciona acceso completo a tu panel de control de sh0. En producción, considera restringir el acceso a IPs de confianza o colocarlo detrás de una VPN. También puedes configurar sh0 para servir el panel de control a través de Caddy en un dominio personalizado con SSL.

Actualizar sh0

Actualizar es tan simple como reemplazar el binario y reiniciar el servicio. Tu configuración, aplicaciones desplegadas y datos se preservan -- residen en el directorio de datos, no dentro del binario.

Terminal
# Download the latest version
curl -fsSL https://sh0.dev/install | sh

# Or manually:
curl -L -o /usr/local/bin/sh0 https://sh0.dev/download/latest/sh0-linux-amd64
sudo systemctl restart sh0
Note
sh0 maneja automáticamente las migraciones de base de datos al iniciar. Después de actualizar, cualquier cambio de esquema se aplica de forma transparente.