Docs/ CLI/ Visão Geral

Visão Geral do CLI

Um único binário para fazer deploy, gerenciar e monitorar seus apps pelo terminal.

O que é o CLI sh0

O CLI sh0 é um binário independente que se comunica com seu servidor sh0 pela API REST. Ele fornece mais de 30 comandos para tudo que você pode fazer no dashboard — deploys, logs, scaling, variáveis de ambiente, cron jobs, templates e mais.

Funciona de qualquer máquina: seu laptop, um runner CI ou um servidor remoto. Autentique uma vez com sh0 login e estará pronto.

Instalação

Um comando, sem dependências. Suporta Linux e macOS em x64 e ARM64.

Install sh0
curl -fsSL https://get.sh0.dev | bash

O script detecta seu SO e arquitetura, baixa o binário correto do GitHub Releases e o coloca em /usr/local/bin/sh0. Veja Instalação para download manual e opções de configuração.

Quatro Fluxos Principais

1. Push Deploy

Faça deploy diretamente de um diretório local. O CLI detecta sua stack, envia arquivos, constrói um container e retorna uma URL online — tudo em um comando.

Push deploy
sh0 init              # Optional: detect stack, create .sh0ignore
sh0 push              # Deploy to live URL

O primeiro push cria um novo app. Pushes subsequentes o atualizam. O vínculo é armazenado em .sh0/link.json para que o CLI saiba qual app atualizar. Use sh0 link <app> para conectar um diretório a um app existente. Veja Push Deploy para o guia completo.

2. Modo Watch

Para fluxos de desenvolvimento, sh0 watch monitora seu projeto para mudanças de arquivo e refaz push automaticamente após um atraso de debounce configurável (padrão: 2 segundos).

Watch mode
sh0 watch                     # Watch current directory
sh0 watch --debounce 3000     # 3s debounce

Respeita padrões .sh0ignore. Pressione Ctrl+C para parar.

3. Gerenciamento de Deploy Git

Para apps conectados a um repositório Git, o CLI permite acionar deploys, gerenciar variáveis de ambiente, configurar domínios e controlar o ciclo de vida do app:

Git deploy workflow
sh0 deploy myapi --wait
sh0 env myapi set DATABASE_URL="postgres://..."
sh0 domains myapi add api.example.com
sh0 restart myapi

4. Monitoramento & Operações

Transmita logs, verifique status, conecte via SSH em containers, gerencie cron jobs e controle o ciclo de vida do app — tudo sem sair do terminal:

Operations
sh0 logs myapi --follow --tail 50
sh0 status
sh0 ssh myapi -- ls /app
sh0 restart myapi
sh0 open myapi          # Open in browser
sh0 cron ls

Ergonomia do Desenvolvedor

O CLI inclui comandos para otimizar seu fluxo de trabalho diário:

  • sh0 init — Detectar sua stack e gerar um arquivo .sh0ignore com padrões apropriados
  • sh0 link <app> — Conectar um diretório local a um app existente para futuros pushes
  • sh0 open [app] — Abrir a URL do app no seu navegador padrão
  • sh0 config show|set|get — Visualizar e gerenciar configuração do CLI (URL do servidor, token)
  • sh0 restart|stop|start|delete — Controle completo do ciclo de vida do app pelo terminal
  • sh0 domains <app> list|add|remove — Gerenciar domínios personalizados para qualquer app

CLI vs Dashboard

O CLI e o dashboard são complementares. Ambos usam a mesma API REST e têm paridade completa de recursos.

CenárioMelhor opção
Deploy rápido de projeto localsh0 push
Integração com pipeline CI/CDCLI com saída --json
Visão geral visual de stacks e recursosDashboard
Deploys de template com um cliqueDashboard
Streaming de logs durante depuraçãosh0 logs --follow
Alterar vars de ambiente em loteScripts CLI
Tip
Todo comando CLI suporta --json para saída legível por máquina. Encaminhe para jq, alimente scripts ou integre com qualquer ferramenta de automação.