Despliegue Git
Conecta cualquier repositorio Git y despliega automáticamente en cada push. sh0 se encarga de clonar, compilar y desplegar tu aplicación sin configuración.
Conectar un repositorio
Para desplegar desde Git, navega a tu stack en el panel de control de sh0 y selecciona Nueva aplicación → Repositorio Git. Puedes conectar un repositorio ingresando su URL o vinculando tu cuenta del proveedor Git para acceso a repositorios privados.
Para repositorios públicos, pega la URL de clonación HTTPS directamente. Para repositorios privados, necesitarás conectar tu cuenta del proveedor Git o agregar una clave SSH en Configuración → Claves SSH.
https://github.com/your-org/your-app.gitProveedores compatibles
sh0 funciona con cualquier proveedor Git que admita webhooks y clonación SSH/HTTPS:
- GitHub -- Integración OAuth para vinculación de repositorios con un clic
- GitLab -- Autoalojado y GitLab.com compatibles
- Bitbucket -- Ediciones Cloud y Server
- Gitea / Forgejo -- Forjas Git autoalojadas
- Cualquier servidor Git -- Cualquier repositorio accesible vía SSH o HTTPS
Configuración de webhook
Los webhooks habilitan el despliegue al hacer push. Cuando haces push de código a tu repositorio, tu proveedor Git envía una notificación a sh0, que activa una nueva compilación y despliegue.
Si conectaste tu proveedor Git vía OAuth, los webhooks se configuran automáticamente. Para configuración manual, agrega un webhook en la configuración de tu repositorio con la siguiente URL:
https://your-sh0-server.com:9000/api/hooks/git/{app_id}Configura el webhook para activarse en eventos de push. sh0 genera un secreto de webhook para cada aplicación, que puedes encontrar en Configuración de la aplicación → Git → Secreto del webhook. Agrega este secreto a tu proveedor Git para verificar los payloads entrantes.
Selección de rama
Por defecto, sh0 despliega desde la rama main. Puedes cambiar la rama de despliegue en la configuración de tu aplicación para desplegar desde cualquier rama de tu repositorio.
Las configuraciones comunes incluyen:
- Producción: Desplegar desde
mainoproduction - Staging: Desplegar desde
developostaging - Ramas de características: Usa Entornos de vista previa para despliegues automáticos de PR
Configuración de compilación
sh0 detecta automáticamente el stack de tu aplicación y configura el pipeline de compilación en consecuencia. También puedes anular estos ajustes manualmente.
Detección automática de Dockerfile
Si tu repositorio contiene un Dockerfile, sh0 lo usa automáticamente. También puedes especificar una ruta de Dockerfile personalizada y un contexto de compilación:
dockerfile: ./deploy/Dockerfile
context: .
build_args:
NODE_ENV: production
API_URL: https://api.example.comsh0 admite compilaciones multi-etapa, argumentos de compilación y contextos de compilación personalizados. La compilación se ejecuta en tu servidor, por lo que las imágenes grandes no generan costos de transferencia.
Buildpacks
Si tu repositorio no incluye un Dockerfile, sh0 analiza tu código y genera un Dockerfile optimizado automáticamente. Detecta más de 15 frameworks y lenguajes:
- Node.js: Next.js, Nuxt, SvelteKit, Remix, Express, Fastify
- Python: Django, Flask, FastAPI
- Go: Módulos Go estándar
- Rust: Proyectos basados en Cargo
- PHP: Laravel, Symfony
- Ruby: Rails, Sinatra
- Sitios estáticos: HTML, Astro, Hugo, Jekyll
Desplegar al hacer push
Con los webhooks configurados, cada push a tu rama de despliegue activa automáticamente un nuevo despliegue. El flujo de trabajo es:
- Haces push de código a la rama configurada
- Tu proveedor Git envía un webhook a sh0
- sh0 descarga el código más reciente de tu repositorio
- La imagen Docker se construye a partir de tu Dockerfile (o uno generado automáticamente)
- Se despliega un nuevo contenedor usando despliegue blue-green
- El tráfico se cambia al nuevo contenedor una vez que las verificaciones de salud pasan
También puedes desactivar los despliegues automáticos y activarlos manualmente desde el panel de control o vía la API:
curl -X POST https://your-sh0-server.com:9000/api/apps/{app_id}/deploy \
-H "Authorization: Bearer YOUR_TOKEN"Ver registros de compilación
Cada despliegue genera un registro completo de compilación que puedes transmitir en tiempo real desde el panel de control. Los registros de compilación incluyen:
- Salida de clonación y checkout de Git
- Pasos de compilación de la imagen Docker (cada capa)
- Resultados de inicio del contenedor y verificaciones de salud
- Confirmación del cambio de tráfico
Los registros de compilación se almacenan para cada despliegue y se pueden acceder desde la pestaña Despliegues en cualquier momento. Si una compilación falla, sh0 mantiene la versión anterior en ejecución y marca el despliegue como fallido con un mensaje de error detallado.