Despliega y gestiona una app con el CLI de Septiembre
De un equipo existente a una app web en funcionamiento con URL pública usando el CLI septiembre v0.1.0. Cada paso está verificado contra el código fuente del CLI y es seguro para ejecutar textualmente en agentes de IA y pipelines de CI.
Camino rápido
Sección titulada «Camino rápido»- Verificá tu equipo —
septiembre teams list --org <slug> - Creá la app —
septiembre apps create --name my-app --type web --region us-east-1 --org <slug> - Configurá variables de entorno (opcional) —
septiembre env set <app-id> --org <slug> CLAVE=valor - Disparar y observar el primer deploy —
septiembre deploys trigger <app-id> --org <slug> --wait - Obtener la URL pública —
septiembre apps get <app-id> --org <slug> | jq -r '.url' - Verificar estado y logs según necesidad
Antes de empezar
Sección titulada «Antes de empezar»- GitHub App instalada — la instalación es solo desde la web en cloud.septiembre.ai. No existe ruta por CLI.
- Equipo existente — tu org debe tener al menos un equipo. Los equipos se crean únicamente en la interfaz web; el CLI solo puede listarlos.
- PAT exportado — exportá tu token de acceso personal:
Consultá Autenticación para saber cómo crear un PAT.
Ventana de terminal export SEPTIEMBRE_TOKEN=sapi_<tu-token>export SEPTIEMBRE_ORG=<slug-de-tu-org> # opcional; evita repetir --org
1. Verificá tu equipo
Sección titulada «1. Verificá tu equipo»septiembre teams list --org <slug>Extraer los slugs de equipos con jq:
septiembre teams list --org <slug> | jq -r '.[].slug'Si la org no tiene equipos, creá uno en cloud.septiembre.ai antes de continuar. El código de salida 4 indica que no se cumplió una precondición.
2. Creá la app web
Sección titulada «2. Creá la app web»septiembre apps create \ --name my-app \ --type web \ --region us-east-1 \ --org <slug>Capturá el ID de la app de inmediato:
APP_ID=$(septiembre apps create \ --name my-app \ --type web \ --region us-east-1 \ --org <slug> | jq -r '.id')Una respuesta exitosa se ve así (simplificada para reconocimiento):
{ "id": "app_01abc...", "name": "my-app", "type": "web", "subdomain": "my-app-a1b2", "domain_status": "pending", "url": null}domain_status está en pending y url está ausente al momento de la creación. La URL queda disponible después del primer deploy exitoso, cuando se activa la infraestructura DNS/CDN.
3. Configurá variables de entorno (opcional)
Sección titulada «3. Configurá variables de entorno (opcional)»septiembre env set $APP_ID --org <slug> \ DATABASE_URL=postgres://... \ REDIS_URL=redis://...env set realiza un reemplazo completo tipo PUT — cualquier clave no incluida en el comando se elimina. Verificá después de configurar:
septiembre env get $APP_ID --org <slug> | jq 'keys'4. Disparar y observar el primer deploy
Sección titulada «4. Disparar y observar el primer deploy»septiembre deploys trigger $APP_ID --org <slug> --wait--wait bloquea hasta que el deploy llega a un estado terminal (timeout 15m). Códigos de salida:
| Código de salida | Código de error | Significado |
|---|---|---|
0 | — | Deploy exitoso |
1 | deploy_failed | El deploy llegó a un estado terminal fallido o cancelado |
1 | wait_timeout | El deploy no completó en 15m |
Para apps web, --tag no es requerido. El deploy usa la rama de GitHub, el comando de build y el directorio de salida configurados.
5. Obtener la URL pública
Sección titulada «5. Obtener la URL pública»Después de que el paso 4 termina con código 0, el dominio está activo:
septiembre apps get $APP_ID --org <slug> | jq -r '.url'# https://my-app-a1b2.septiembre.coEl sufijo de host por defecto es septiembre.co. El campo url es null / ausente hasta que domain_status es active.
6. Verificar estado y logs
Sección titulada «6. Verificar estado y logs»# Listar deploys recientesseptiembre deploys list $APP_ID --org <slug>
# Obtener el estado de un deploy específicoseptiembre deploys status $APP_ID <deploy-id> --org <slug>
# Obtener un snapshot de logsseptiembre logs $APP_ID --org <slug>Obtener el ID y estado del último deploy en un solo comando:
septiembre deploys list $APP_ID --org <slug> | jq -r '.[0] | "\(.id) \(.status)"'Eliminar una app
Sección titulada «Eliminar una app»septiembre apps delete $APP_ID --org <slug> --yesEn caso de éxito, la API devuelve {"status": "deleting"} y el proceso de eliminación corre de forma asincrónica. Códigos de salida:
| Código de salida | Código de error | Significado |
|---|---|---|
0 | — | Eliminación despachada |
1 | teardown_dispatch_failed | La API aceptó la solicitud pero el proceso de eliminación de infraestructura no pudo iniciarse |
4 | validation_error | No se pasó --yes |
Usá septiembre apps get $APP_ID --org <slug> para verificar el estado de la eliminación.
Tipos de app más allá de web
Sección titulada «Tipos de app más allá de web»Para apps api, sse y web-ssr se aplican dos requisitos adicionales:
--runtimeal crear — requerido:nodejs24,python314ogo126.--tagal desplegar — desplegá un tag de release que creás externamente:Ventana de terminal gh release create v1.0.0 --repo mi-org/mi-appseptiembre deploys trigger $APP_ID --org <slug> --tag v1.0.0 --wait
Ejemplo para una app de tipo API:
APP_ID=$(septiembre apps create \ --name my-api \ --type api \ --runtime nodejs24 \ --region us-east-1 \ --org <slug> | jq -r '.id')
gh release create v1.0.0 --repo mi-org/my-apiseptiembre deploys trigger $APP_ID --org <slug> --tag v1.0.0 --waitCódigos de salida y manejo de errores
Sección titulada «Códigos de salida y manejo de errores»Códigos de salida clave para el recorrido de esta guía:
| Código de salida | Código de error | Disparador |
|---|---|---|
0 | — | Éxito |
1 | wait_timeout | apps create --wait o deploys trigger --wait superaron el timeout |
1 | domain_failed | apps create --wait — falló la provisión del dominio |
1 | deploy_failed | deploys trigger --wait — el deploy falló o fue cancelado |
1 | teardown_dispatch_failed | apps delete — el proceso de eliminación de infraestructura no pudo iniciarse |
4 | validation_error | Falta --yes, --runtime, --team u otra precondición |
Consultá Uso con agentes para patrones de scripting y la referencia completa de códigos de salida.
Guías relacionadas
Sección titulada «Guías relacionadas»- Desplegar una landing web desde GitHub — ciclo de vida DNS/CDN del primer deploy para apps web.
- Referencia del CLI — referencia completa de flags y códigos de salida.
- Autenticación — crear y gestionar tokens de acceso personal.