Saltearse al contenido

Docker y desarrollo local

El stack local está en docker-compose.local.yaml, con los contextos de build bajo compose/. Está calcado de seimseim-reservas.

ServicioPara qué
traefikproxy en :80, manda /api /ws /admin al backend y / al frontend
backendDjango en ASGI (uvicorn), corre las migraciones al arrancar
celeryworkertareas en segundo plano
celerybeattareas programadas (la prueba nocturna contra Toteat)
frontendservidor de desarrollo de Vite
postgresPostgres 18
redisRedis 7.2 (capa de channels y broker de celery)

Comparado con reservas, le quitamos lo que el POS no necesita: la app de reservas, el mcp-server, flower y mailpit.

Ventana de terminal
just up # --profile full (todo)
just up-backend # --profile backend (backend + celery + postgres + redis)
just up-frontend # --profile frontend

Cada servicio tiene su archivo en .envs/.local/ (.backend, .postgres, .frontend). Son valores de desarrollo, sin secretos, y sí van al repo. Los secretos de producción viven en .envs/.production/, que está en el gitignore. El entrypoint del backend arma el DATABASE_URL a partir de las variables POSTGRES_* y espera a que Postgres esté listo antes de arrancar.

  • La versión de pnpm está fijada con packageManager para que el corepack de la imagen de Node use la misma que el lockfile.
  • El puerto :80 tiene que estar libre. A veces otro stack local lo tiene tomado.
  • Sin Docker, pnpm dev salta al siguiente puerto si el 5173 está ocupado. En Docker el puerto es fijo porque Traefik enruta hacia él.