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
| Requisito | Mínimo | Recomendado |
|---|---|---|
| SO | Linux (qualquer distro) | Ubuntu 22.04+ / Debian 12+ |
| RAM | 1 GB | 2 GB+ |
| Disco | 10 GB | 20 GB+ (SSD) |
| CPU | 1 vCPU | 2 vCPUs+ |
| Docker | Instalado automaticamente pelo sh0 se ausente | |
Plataformas Suportadas
O sh0 fornece binários pré-compilados para as seguintes arquiteturas:
x86_64(AMD64) -- A maioria dos servidores cloud e provedores VPSaarch64(ARM64) -- AWS Graviton, Oracle Ampere, Raspberry Pi 4+
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:
curl -fsSL https://get.sh0.dev | bashO script realiza estas etapas:
- Detecta a arquitetura da sua CPU (x86_64 ou aarch64)
- Baixa o binário sh0 mais recente para
/usr/local/bin/sh0 - Define permissões de execução
- Cria uma unidade de serviço systemd
- Habilita e inicia o serviço
Download Manual
Se preferir instalar manualmente, baixe o arquivo da versão no GitHub e confira-o com as somas de verificação publicadas antes de extraí-lo:
# Download the archive and the checksums (use sh0-linux-arm64.tar.gz on ARM64)
curl -fsSLO https://github.com/zerosuite-inc/sh0/releases/latest/download/sh0-linux-x64.tar.gz
curl -fsSLO https://github.com/zerosuite-inc/sh0/releases/latest/download/checksums.txt
# Check the archive, then extract it
sha256sum --ignore-missing -c checksums.txt
tar -xzf sh0-linux-x64.tar.gz
# Install the binary
sudo install -m 0755 sh0 /usr/local/bin/sh0
sh0 --versionsh0-linux-x64.tar.gz: OK
sh0 1.10.2Uma instalação manual não cria o serviço systemd: configure-o como descrito abaixo e depois inicie-o.
Verificar Instalação
Verifique se o sh0 está instalado e em execução:
# Check the version
sh0 --version
# Check the service status
systemctl status sh0
# Verify the API answers
curl -s http://localhost:9000/api/v1/healthO endpoint de saúde deve retornar uma resposta JSON confirmando que o servidor está operacional:
{"data":{"license":{"plan":"business","status":"active"},"mode":"selfhosted","needs_setup":false,"status":"ok","version":"1.10.3-rc9"}}Configuração do Serviço Systemd
Se você usou o script de instalação rápida, o serviço systemd já está configurado. Numa instalação manual, crie o mesmo arquivo de serviço que o instalador grava:
[Unit]
Description=sh0 -- Self-Hosted PaaS
Documentation=https://sh0.dev/docs
After=network-online.target docker.service
Wants=network-online.target
Requires=docker.service
[Service]
Type=simple
ExecStart=/usr/local/bin/sh0 serve
Restart=always
RestartSec=5
Environment=RUST_LOG=info
WorkingDirectory=/var/lib/sh0
KillMode=process
NoNewPrivileges=true
ProtectKernelTunables=true
ProtectKernelModules=true
ProtectControlGroups=true
RestrictSUIDSGID=true
RestrictRealtime=true
LockPersonality=true
LimitNOFILE=65535:524288
StandardOutput=journal
StandardError=journal
SyslogIdentifier=sh0
[Install]
WantedBy=multi-user.targetKillMode=process. Sem essa opção, reiniciar o serviço sh0 também encerra os processos que ele iniciou, e suas aplicações caem durante a reinicialização.Depois habilite e inicie o serviço:
sudo systemctl daemon-reload
sudo systemctl enable sh0
sudo systemctl start sh0journalctl -u sh0 -f.pgsty/minio (Pigsty), fixada por digest. Não é uma fonte oficial do MinIO. Para usar outra imagem compatível com MinIO, adicione Environment=SH0_MINIO_IMAGE=<image> ao ambiente do serviço, execute systemctl daemon-reload, remova o contêiner sh0-system-minio e reinicie o sh0: a imagem só se aplica na criação do contêiner, e o volume de dados é mantido.Configuração de Firewall
O sh0 requer que as seguintes portas estejam acessíveis:
| Porta | Protocolo | Finalidade |
|---|---|---|
| 80 | TCP | Tráfego HTTP (redireciona para HTTPS) |
| 443 | TCP | Tráfego HTTPS para suas aplicações implantadas |
| 9000 | TCP | Painel e API do sh0 |
Se estiver usando ufw (Ubuntu/Debian):
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 9000/tcpAtualizando o sh0
Sua configuração, suas aplicações implantadas e seus dados ficam no diretório de dados, não dentro do binário, então atualizar substitui apenas o binário. O comando integrado baixa a versão final mais recente, verifica-a e guarda a versão anterior para um rollback:
sudo sh0 updateOs canais, o rollback e as verificações de host do sh0 doctor estão descritos em Atualizações e diagnóstico.