🚀 documentación

Apps — deploy desde git con CI/CD

El servicio de apps funciona como Railway en tu propio servidor: le das código y te devuelve una URL con SSL. Cuatro formas de entregarlo:

1. Crear tu app con IA (sin escribir código)

En el dashboard: Apps → Nueva app → Crear con IA → describís la app que querés y Claude Code la construye desde cero en un sandbox del servidor.

Al crearla entrás al Estudio (/panel/apps/<id>/estudio): a la izquierda chateás —cada mensaje es un cambio— y a la derecha ves tu app corriendo de verdad, con vista de escritorio o móvil. Antes de publicar cualquier cambio te muestra el diff; vos aprobás y recién ahí se deploya. Cuando se aplica, la vista previa se recarga sola.

Podés volver al Estudio cuando quieras desde el menú (⋮) de la app en la lista, o desde la pestaña Tickets IA, que queda como historial con los diffs y los logs de cada run.

Cupo diario: cada prompt de IA cuenta contra un límite por día (lo fija el admin en Integraciones → Tickets IA; por defecto 5). El Estudio te muestra cuántos te quedan antes de escribir, y a qué hora se reinician.

La ventaja de este camino: como el código vive en CloudWapp (no en un repo externo), la app se sigue editando para siempre. Lo mismo aplica a las apps de código subido (opción 4). Las apps conectadas a git no admiten Estudio ni tickets: CloudWapp no puede escribir en tu repo, así que ahí los cambios llegan con git push.

2. Conectar GitHub (recomendado si ya tenés el código en un repo)

En el dashboard: Apps → Connect GitHub → elegís el repo → deploy. Cada git push al branch configurado redeploya automáticamente (webhook del GitHub App; sin tokens que expiren).

3. Repo git por URL

cloudwapp apps create --name mi-api --repo https://github.com/usuario/mi-api \
  --branch main --port 3000 --env NODE_ENV=production --deploy

Para repos privados sin GitHub App, pasá un PAT con --token.

4. Sin repo — apps up (estilo railway up)

cd mi-proyecto
cloudwapp apps up --name mi-proyecto -f

Empaqueta el directorio (excluye node_modules, .git, dist), lo sube y deploya. Con -f seguís el build en vivo. Ideal para prototipos o código generado por un agente.

Cómo se buildea

  1. Con Dockerfile en la raíz → docker build directo.
  2. Sin Dockerfilenixpacks detecta el stack (Node, Python, Go, Rust, PHP…) y genera el plan por vos.

El container corre con límites de memoria/CPU, red aislada, y tu app recibe PORT.

Operación diaria

cloudwapp apps list                  # estado y URL de tus apps
cloudwapp apps build-log mi-api -f   # build en vivo
cloudwapp apps logs mi-api -f        # logs runtime (SSE)
cloudwapp apps env mi-api --set KEY=valor
cloudwapp apps restart mi-api
EndpointDescripción
POST /api/v1/appsCrear app
POST /api/v1/apps/:id/deployForzar deploy
POST /api/v1/apps/:id/uploadDeploy por tarball (sin repo)
GET /api/v1/apps/:id/deployments/:dep/logsLog del build (incremental)
GET /api/v1/apps/:id/logs/streamLogs runtime en vivo (SSE)

Volúmenes persistentes

Si tu app escribe a disco (SQLite, uploads), configurá --volume /app/data: sobrevive redeploys y restarts.

Notificaciones del deploy

Activá las notificaciones push en el dashboard (🔔) y recibís un aviso cuando cada deploy termina: ✅ Deploy exitoso o ❌ Deploy falló con el error.