🚀 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. Tres formas de entregarlo:

1. Conectar GitHub (recomendado)

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).

2. 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.

3. 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.