Docs / Primeiros Passos / Instalação

Instalação

Coloque o sh0 em funcionamento em um servidor limpo em menos de um minuto. Um comando baixa o binário -- o sh0 cuida de todas as dependências automaticamente.

Requisitos de Sistema

RequisitoMínimoRecomendado
SOLinux (qualquer distro)Ubuntu 22.04+ / Debian 12+
RAM1 GB2 GB+
Disco10 GB20 GB+ (SSD)
CPU1 vCPU2 vCPUs+
DockerInstalado automaticamente pelo sh0 se ausente
Note
O sh0 em si usa muito pouca memória (cerca de 30 MB). O requisito de RAM é principalmente para o Docker e as aplicações que você implanta. Um servidor de 1 GB pode rodar confortavelmente o sh0 mais 2-3 aplicações pequenas.

Plataformas Suportadas

O sh0 fornece binários pré-compilados para as seguintes arquiteturas:

  • x86_64 (AMD64) -- A maioria dos servidores cloud e provedores VPS
  • aarch64 (ARM64) -- AWS Graviton, Oracle Ampere, Raspberry Pi 4+
Zero Dependências
O sh0 deve ser instalado em um servidor limpo. Quando você executa sh0 serve como root, ele detecta e instala automaticamente Docker e Caddy se estiverem ausentes. Nenhuma configuração manual necessária.

Instalar sh0

Instalação Rápida (Recomendada)

O script de instalação detecta sua arquitetura, baixa o binário mais recente e configura o serviço systemd automaticamente:

Terminal
curl -fsSL https://sh0.dev/install | sh
Terminal output showing the sh0 install script downloading the binary, setting permissions, and starting the service
O script de instalação é concluído em poucos segundos

O script realiza estas etapas:

  1. Detecta a arquitetura da sua CPU (x86_64 ou aarch64)
  2. Baixa o binário sh0 mais recente para /usr/local/bin/sh0
  3. Define permissões de execução
  4. Cria uma unidade de serviço systemd
  5. Habilita e inicia o serviço

Download Manual

Se preferir instalar manualmente, baixe o binário diretamente:

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 Instalação

Verifique se o sh0 está instalado e em execução:

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
Uma instalação sh0 saudável

O endpoint de saúde deve retornar uma resposta JSON confirmando que o servidor está operacional:

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

Configuração do Serviço Systemd

Se você usou o script de instalação rápida, o serviço systemd já está configurado. Para instalações manuais, crie o arquivo de serviço:

/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

Depois habilite e inicie o serviço:

Terminal
sudo systemctl daemon-reload
sudo systemctl enable sh0
sudo systemctl start sh0
Tip
O serviço systemd garante que o sh0 inicie automaticamente após uma reinicialização do servidor e reinicie caso trave. Logs estão disponíveis via journalctl -u sh0 -f.

Configuração de Firewall

O sh0 requer que as seguintes portas estejam acessíveis:

PortaProtocoloFinalidade
80TCPTráfego HTTP (redireciona para HTTPS)
443TCPTráfego HTTPS para suas aplicações implantadas
9000TCPPainel e API do sh0

Se estiver usando ufw (Ubuntu/Debian):

Terminal
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 9000/tcp
Segurança do Painel
A porta 9000 fornece acesso total ao seu painel sh0. Em produção, considere restringir o acesso a IPs confiáveis ou colocá-lo atrás de uma VPN. Você também pode configurar o sh0 para servir o painel através do Caddy em um domínio personalizado com SSL.

Atualizando o sh0

Atualizar é tão simples quanto substituir o binário e reiniciar o serviço. Sua configuração, aplicações implantadas e dados são preservados -- eles ficam no diretório de dados, não dentro do binário.

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
O sh0 lida automaticamente com migrações de banco de dados ao iniciar. Após atualizar, quaisquer alterações de schema são aplicadas de forma transparente.