Skip to content

build(sprint-20): add staging compose#82

Merged
David-LS-Bilbao merged 1 commit into
devfrom
feat/sprint-20-2-compose-staging
Jul 9, 2026
Merged

build(sprint-20): add staging compose#82
David-LS-Bilbao merged 1 commit into
devfrom
feat/sprint-20-2-compose-staging

Conversation

@David-LS-Bilbao

Copy link
Copy Markdown
Owner

Sprint 20.2 — Compose staging local

Resumen

Añade docker-compose.staging.yml para levantar en local el stack staging completo de
JobIT: PostgreSQL, API y Web, con red interna, volúmenes persistentes y healthchecks
(ADR-0012, opción B).

Cambios principales

  • Nuevo docker-compose.staging.yml (único archivo).
  • Proyecto Compose determinista jobit-staging y red interna dedicada.
  • Volúmenes persistentes para PostgreSQL (jobit-staging-db-data) y uploads de la API
    (jobit-staging-api-uploads).
  • PostgreSQL postgres:16 sin puerto publicado al host (estructural).
  • API/Web publican 4000/3000 solo para smoke local (comentado: en el VPS no se
    publicarían; NPM accede por red interna).
  • Healthchecks para DB (pg_isready), API (/health) y Web (/) con node -e fetch.
  • Logging con rotación (10m × 3).
  • Migraciones y seed documentados como pasos gated con el stage builder del Dockerfile
    de la API, nunca automáticos.

Validaciones realizadas

  • docker compose config / build / up -d → OK; los 3 servicios healthy.
  • GET http://localhost:4000/health → 200; GET http://localhost:3000/ → 200.
  • Migraciones Prisma gated con el stage builder → 8/8 aplicadas.
  • Seed ejecutado → 14 ofertas mock.
  • Escritura real contra PostgreSQL dockerizado: POST /api/auth/register → 201 (valida el
    cliente Prisma re-inyectado y el engine OpenSSL con queries reales).
  • Limpieza con docker compose down sin -v; volúmenes locales (datos dummy) conservados
    para la fase 20.4.

Decisiones técnicas

  • La imagen runtime de la API no lleva la CLI de Prisma: migrar/seedear usa el stage
    builder del mismo Dockerfile (comandos documentados en la cabecera del compose).
  • El build-arg NEXT_PUBLIC_API_BASE_URL difiere entre local y VPS: rebuild por entorno
    (ya documentado en spec).

Riesgos pendientes

  • El procedimiento de migración con stage builder se documentará para el VPS en 20.5.
  • Los volúmenes locales contienen solo datos dummy de validación.

Fuera de alcance respetado

  • Sin env templates (fase 20.3), sin cambios en Dockerfiles/código/docs/workflows.
  • Sin VPS/DNS/Nginx, sin secrets reales, sin deploy.

Siguiente fase

Sprint 20.3 — plantillas env seguras para staging con placeholders y documentación de la
ubicación de los secretos reales fuera del repo.

Revisión

PR lista para revisión humana. No mergear por CLI.

@David-LS-Bilbao David-LS-Bilbao merged commit 07abf3e into dev Jul 9, 2026
2 checks passed
@David-LS-Bilbao David-LS-Bilbao deleted the feat/sprint-20-2-compose-staging branch July 9, 2026 09:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant