Documentación / Primeros pasos / Tu primer despliegue

Tu primer despliegue

Despliega tu primera aplicación en sh0 en menos de cinco minutos. Esta guía te lleva paso a paso, desde crear un stack hasta ver tu aplicación en vivo.

Descripción general

Desplegar una aplicación en sh0 sigue un flujo sencillo:

  1. Crear un stack -- Un stack agrupa servicios relacionados (como una aplicación y su base de datos).
  2. Agregar una aplicación -- Apunta sh0 a un repositorio Git o elige una plantilla.
  3. Configurar dominio -- Asigna un dominio o usa el subdominio predeterminado *.sh0.app.
  4. Desplegar -- sh0 compila y lanza tu aplicación automáticamente.
  5. Verificar -- Visita tu aplicación y confirma que todo funciona.
Tip
Para esta guía, desplegaremos una aplicación sencilla de Node.js desde un repositorio Git público. Puedes seguir con tu propio proyecto o usar nuestro repositorio de ejemplo.

Paso 1: Crear un stack

Los stacks son la unidad organizativa de nivel superior en sh0. Piensa en un stack como una carpeta de proyecto que agrupa una aplicación con sus servicios relacionados (bases de datos, cachés, workers).

  1. Desde el panel de control, haz clic en el botón Nuevo stack en la esquina superior derecha.
  2. Ingresa un nombre para tu stack (por ejemplo, my-first-app).
  3. Opcionalmente agrega una descripción para identificar el stack más adelante.
  4. Haz clic en Crear stack.
New Stack dialog with a name field showing 'my-first-app', a description field, and a Create Stack button
Creating a new stack

Tu nuevo stack aparece en la lista de stacks. Haz clic en él para abrir la vista de detalle del stack, donde agregarás tu primera aplicación.

Empty stack detail view with an 'Add App' button prominently displayed in the center, plus tabs for Apps, Environment, Settings
A fresh stack ready for its first app

Paso 2: Agregar una aplicación

Dentro de tu stack, haz clic en Agregar aplicación. Puedes desplegar desde un repositorio Git, una imagen Docker o una plantilla preconstruida.

Desde repositorio Git

La forma más común de desplegar. Proporciona una URL de Git y sh0 se encarga del resto:

  1. Selecciona Repositorio Git como origen.
  2. Ingresa la URL del repositorio. Para este ejemplo, usa nuestra aplicación de demostración:
    Repository URL
    https://github.com/sh0-dev/demo-node-app
  3. Elige la rama a desplegar (predeterminada: main).
  4. sh0 detecta automáticamente el stack del proyecto (Node.js, Python, Go, etc.) y selecciona la configuración de compilación apropiada.
  5. Haz clic en Agregar aplicación.
Add App form showing Git Repository selected, with a URL field containing a GitHub URL, branch selector set to 'main', and auto-detected stack showing 'Node.js'
Adding an app from a Git repository
Repositorios privados
Para repositorios privados, primero necesitas conectar un proveedor Git. Ve a Configuración > Proveedores Git para vincular tu cuenta de GitHub, GitLab o Bitbucket. Alternativamente, puedes agregar una clave SSH de despliegue.

Desde plantilla

Si deseas desplegar una aplicación popular sin escribir código, usa una plantilla:

  1. Selecciona Plantilla como origen.
  2. Explora o busca en la biblioteca de plantillas (más de 170 opciones incluyendo WordPress, Ghost, Plausible, Uptime Kuma y más).
  3. Haz clic en una plantilla para ver sus detalles -- recursos requeridos, servicios incluidos y configuración predeterminada.
  4. Haz clic en Desplegar plantilla.
Template gallery showing a grid of application templates with icons, names, and descriptions -- WordPress, PostgreSQL, Redis, Ghost, Plausible, Uptime Kuma visible
Browse over 170 one-click deploy templates

Paso 3: Configurar dominio

Toda aplicación necesita un dominio para ser accesible. sh0 ofrece dos opciones:

Subdominio predeterminado

sh0 asigna automáticamente un subdominio como my-first-app.sh0.app. No se necesita configuración DNS -- perfecto para pruebas.

Dominio personalizado

Usa tu propio dominio (por ejemplo, app.yourdomain.com). Requiere agregar un registro A apuntando a la IP de tu servidor. El SSL es automático.

Para configurar un dominio para tu aplicación:

  1. En la configuración de tu aplicación, ve a la pestaña Dominios.
  2. Haz clic en Agregar dominio.
  3. Ingresa tu nombre de dominio (o conserva el subdominio predeterminado .sh0.app).
  4. Si usas un dominio personalizado, agrega un registro A en tu proveedor DNS apuntando a la dirección IP de tu servidor.
  5. Haz clic en Guardar. sh0 aprovisionará automáticamente un certificado SSL.
Domain configuration tab showing a domain input field, DNS instructions with the server IP, and an SSL status indicator showing 'Certificate Active'
Adding a custom domain with automatic SSL

Paso 4: Desplegar

Con tu aplicación configurada, es momento de desplegar. Haz clic en el botón Desplegar. sh0 hará lo siguiente:

  1. Clonar el repositorio Git (o descargar la imagen Docker)
  2. Detectar el stack del proyecto y generar un Dockerfile
  3. Construir la imagen del contenedor
  4. Iniciar el nuevo contenedor y ejecutar verificaciones de salud
  5. Configurar el proxy inverso para enrutar el tráfico
  6. Marcar el despliegue como activo
Deployment progress view showing a real-time build log with steps: Cloning repository, Detecting stack (Node.js 20), Building image, Starting container, Running health check, Configuring proxy -- each with a green checkmark
Real-time deployment progress with build logs

Puedes ver los registros de compilación en tiempo real. Un despliegue típico para una aplicación Node.js toma de 30 a 90 segundos, dependiendo del tamaño de tus dependencias.

Caché de compilación
sh0 almacena en caché las capas Docker entre compilaciones. Los despliegues posteriores son significativamente más rápidos porque solo las capas modificadas necesitan recompilarse. Una compilación de Node.js en caché típicamente se completa en menos de 15 segundos.
Build log showing detailed output: npm install progress, dependency tree, build output, and final container start confirmation
Detailed build output during deployment

Paso 5: Verificar

Una vez que el despliegue se completa, tu aplicación está en vivo. Verifica que esté funcionando:

  1. Haz clic en el enlace del dominio que se muestra en la vista general de la aplicación para abrirla en una nueva pestaña.
  2. Verifica el indicador de estado de la aplicación -- debería mostrar una insignia verde de En ejecución.
  3. Revisa la entrada de despliegue en la pestaña Despliegues para ver el historial completo.
App overview page showing status 'Running' with a green badge, the domain link, resource usage (CPU, memory), uptime, and deployment history below
Your app is live and running

También puedes verificar desde la línea de comandos:

Terminal
curl -I https://my-first-app.sh0.app
Response
HTTP/2 200
content-type: text/html; charset=utf-8
server: Caddy
x-powered-by: sh0
Propagación DNS
Si usaste un dominio personalizado, los cambios DNS pueden tardar hasta 24 horas en propagarse globalmente, aunque la mayoría de las actualizaciones se completan en minutos. Usa el subdominio predeterminado .sh0.app para acceso inmediato mientras esperas.

Próximos pasos

Felicidades -- tu primera aplicación está desplegada. Estos son algunos próximos pasos recomendados: