Saltearse al contenido

Desplegar una landing web desde GitHub

Usa esta guía cuando un agente de código con IA generó una landing estática y quieres publicarla desde GitHub con Septiembre Cloud. El objetivo es concreto: una URL real de producción conectada al repositorio que controlas.

  1. Sube la landing a GitHub.
  2. Confirma que compila localmente con pnpm.
  3. Crea una app web en Septiembre conectada a ese repositorio.
  4. Dispara el primer deploy.
  5. Espera a que el primer deploy exitoso active y materialice la infraestructura DNS/CDN en vivo.

Necesitas:

  • Un repositorio de GitHub para la landing.
  • Un directorio final de archivos estáticos, como dist, build u out.
  • Un proyecto de Septiembre Cloud donde puedas crear apps y desplegarlas.
  • Un comando de build que funcione sin pasos manuales.

Para proyectos con pnpm, la verificación local habitual es:

Ventana de terminal
pnpm install
pnpm build

Si tu landing usa Astro, Vite, Next con export estático u otra herramienta frontend estática, lo importante es el directorio final. Septiembre sincroniza esa salida con S3 durante el deploy.

Pídele a tu agente la forma correcta del proyecto

Sección titulada «Pídele a tu agente la forma correcta del proyecto»

Dale al agente el enlace de documentación y el contrato esperado de despliegue. Por ejemplo:

Crea una landing estática lista para producción para mi negocio.
Usa comandos pnpm. La app se va a desplegar como app web de Septiembre Cloud desde GitHub.
Asegúrate de que `pnpm build` genere archivos estáticos en `dist`.
Lee la referencia de API de Septiembre antes de asumir comportamiento de endpoints.
No esperes infraestructura DNS/CDN en vivo antes del primer deploy exitoso.

En Septiembre Cloud, crea una nueva app web y conéctala al repositorio y rama de GitHub.

Si usas la API, la referencia fuente es ../cloud-api/docs/api-reference.md y el endpoint de creación de apps es:

POST /api/v1/orgs/{orgID}/projects/{projectID}/apps
Authorization: Bearer <cognito-id-token>
Content-Type: application/json

Body típico:

{
"name": "my-landing",
"label": "production",
"type": "web",
"region": "us-east-2",
"github_repo_full": "my-org/my-landing",
"github_branch": "main",
"build_command": "pnpm install --frozen-lockfile && pnpm build",
"build_output_dir": "dist"
}

El ciclo de vida visible para el usuario es clave: la creación de la app web guarda solo la configuración de base de datos y GitHub. Registra la app, región, repositorio, rama, comando de build, directorio de salida, subdominio generado y ambiente de producción. Eso no significa que la landing ya esté viva en DNS/CDN.

Cuando la app ya existe, dispara un despliegue:

POST /api/v1/orgs/{orgID}/projects/{projectID}/apps/{appID}/deployments
Authorization: Bearer <cognito-id-token>
Content-Type: application/json

Para una app web, el deploy usa la rama, comando de build y directorio de salida configurados. El flujo de landing web no requiere release_tag.

Durante el build, Septiembre clona el repositorio, hace checkout del ref, ejecuta tu comando de build y sincroniza el directorio de salida con el bucket S3 regional.

El primer deploy exitoso es el punto de activación. Después de que el build termina bien, Septiembre activa y materializa la infraestructura DNS/CDN en vivo:

  • Crea o registra el tenant de CloudFront de la app web.
  • Crea el CNAME de Route53 para el subdominio de la app.
  • Habilita el tenant cuando la app es pública.
  • Invalida la caché del CDN para que los visitantes reciban los archivos nuevos.

Por eso una app web puede existir en el panel antes de que la URL pública esté lista. Primero existe la configuración; la ruta pública de entrega aparece después del primer deploy exitoso.

Después del primer éxito, los deploys posteriores reconstruyen el proyecto, sincronizan la salida con S3 e invalidan la caché del CDN. No recrean la infraestructura DNS/CDN en cada deploy.

Empieza por el detalle de falla o el mensaje de la interfaz de Cloud:

GET /api/v1/orgs/{orgID}/projects/{projectID}/apps/{appID}/deployments/{deployID}/failure

La mayoría de fallas del primer deploy vienen de configuración del proyecto: dependencias faltantes, comando de build que falla o directorio de salida incorrecto. Ejecuta los mismos comandos localmente antes de reintentar:

Ventana de terminal
pnpm install
pnpm build
ls dist
  • Tu repositorio de GitHub contiene el código de la landing y el lockfile.
  • pnpm build funciona localmente.
  • El tipo de app es web.
  • El directorio de salida coincide con el proyecto.
  • El primer deploy exitoso terminó.
  • El subdominio público funciona después de la activación DNS/CDN.