Docs/ CLI/ Resumen

Resumen del CLI

Un solo binario para desplegar, gestionar y monitorear tus apps desde la terminal.

Qué es el CLI de sh0

El CLI de sh0 es un binario independiente que se comunica con tu servidor sh0 a través de su API REST. Proporciona más de 30 comandos para todo lo que puedes hacer en el panel de control -- despliegues, logs, escalado, variables de entorno, trabajos cron, plantillas y más.

Funciona desde cualquier máquina: tu laptop, un runner de CI o un servidor remoto. Autentícate una vez con sh0 login y estarás listo.

Instalar

Un comando, sin dependencias. Soporta Linux y macOS en x64 y ARM64.

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

El script detecta tu SO y arquitectura, descarga el binario correcto desde GitHub Releases y lo coloca en /usr/local/bin/sh0. Ver Instalación para opciones de descarga manual y configuración.

Cuatro flujos principales

1. Push Deploy

Despliega directamente desde un directorio local. El CLI detecta tu stack, sube archivos, construye un contenedor y devuelve una URL en vivo -- todo en un comando.

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

El primer push crea una nueva app. Los pushes subsiguientes la actualizan. El vínculo se almacena en .sh0/link.json para que el CLI sepa qué app actualizar. Usa sh0 link <app> para conectar un directorio a una app existente. Ver Push Deploy para la guía completa.

2. Modo observación

Para flujos de desarrollo, sh0 watch monitorea tu proyecto en busca de cambios de archivos y re-push automáticamente después de un retraso de debounce configurable (por defecto: 2 segundos).

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

Respeta patrones .sh0ignore. Presiona Ctrl+C para detener.

3. Gestión de despliegues Git

Para apps conectadas a un repositorio Git, el CLI te permite activar despliegues, gestionar variables de entorno, configurar dominios y controlar el ciclo de vida de la 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. Monitoreo y operaciones

Transmite logs, verifica estado, accede a contenedores por SSH, gestiona trabajos cron y controla el ciclo de vida de apps -- todo sin salir de tu 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

Ergonomía del desarrollador

El CLI incluye comandos para optimizar tu flujo de trabajo diario:

  • sh0 init -- Detectar tu stack y generar un archivo .sh0ignore con patrones apropiados
  • sh0 link <app> -- Conectar un directorio local a una app existente para futuros pushes
  • sh0 open [app] -- Abrir la URL de la app en tu navegador predeterminado
  • sh0 config show|set|get -- Ver y gestionar la configuración del CLI (URL del servidor, token)
  • sh0 restart|stop|start|delete -- Control completo del ciclo de vida de la app desde la terminal
  • sh0 domains <app> list|add|remove -- Gestionar dominios personalizados para cualquier app

CLI vs. panel de control

El CLI y el panel de control son complementarios. Ambos usan la misma API REST y tienen paridad completa de funciones.

EscenarioMejor opción
Despliegue rápido desde proyecto localsh0 push
Integración de pipeline CI/CDCLI con salida --json
Resumen visual de stacks y recursosPanel de control
Despliegues de plantilla de un clicPanel de control
Transmisión de logs durante depuraciónsh0 logs --follow
Cambios masivos de variables de entornoScripting CLI
Tip
Cada comando del CLI soporta --json para salida legible por máquinas. Canaliza a jq, alimenta scripts o intégrate con cualquier herramienta de automatización.