Skip to content

[F8-02] Imágenes Docker de producción y proxy inverso #76

Open

Description

@JCCG-code

Fase: F8 · Tamaño: M · Depende de: #56 (F8-01), #44 (F6-01), #54 (F4-01)

Objetivo

Artefactos de despliegue reproducibles y seguros, válidos para el hosting elegido en #56.

Alcance

  • Dockerfile multi-etapa con pnpm deploy --filter server y dos targets:

    • server: API, sin ffmpeg.
    • worker: con ffmpeg.

    Usuario no root, HEALTHCHECK a /healthz y versión fija de Node 22.

  • La web se compila a estáticos y la sirve el proxy.

  • Proxy inverso (Caddy si es VPS; el equivalente del PaaS si no) con un solo origen: / → web, /api → server. HTTPS automático, compresión (excepto SSE) y cabeceras de caché para los estáticos con hash.

  • El archivo de verificación de TikTok se sirve en su ruta actual.

  • docker-compose.prod.yml (si es VPS) o la configuración equivalente del PaaS, con secretos fuera del repo.

  • Publicación de imágenes en GHCR desde CI al etiquetar una versión (sustituye a docker:deploy hacia Docker Hub).

Criterios de aceptación

  • docker run <server> whoami no devuelve root.
  • La imagen server no contiene ffmpeg y la worker sí.
  • En un entorno de staging: / sirve la web, /api/v1/healthz responde 200 y un stream SSE recibe eventos sin buffering.
  • Etiquetar v0.1.0 publica ambas imágenes en GHCR.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions