Files
cesizen-individuel/docker-compose.prod.yaml
T
Azmog 40137c2991 fix(deploy): renomme le volume Postgres (init propre avec le bon mot de passe)
Force la création d'un volume neuf -> postgres s'initialise avec le mot de passe
figé, sans avoir à supprimer manuellement l'ancien volume (mismatch). Un simple
Redeploy suffit.
2026-06-19 10:08:45 +02:00

71 lines
2.2 KiB
YAML

# Stack de production CESIZen — pour déploiement sur Coolify (type "Docker Compose").
# Les valeurs ${...} sont à définir dans l'onglet "Environment Variables" de Coolify.
# Voir DEPLOIEMENT_COOLIFY.md pour la liste complète.
services:
postgres:
image: postgres:16-alpine
restart: unless-stopped
environment:
# Identifiants de la base figés en dur : la base n'est PAS exposée
# publiquement (réseau interne Coolify), et cela évite les soucis de
# substitution ${...} non fiables côté Coolify (postgres et backend
# doivent partager exactement le même mot de passe).
POSTGRES_DB: cesizen
POSTGRES_USER: cesizen
POSTGRES_PASSWORD: cesizen_secret_change_me
volumes:
- cesizen_pgdata_v2:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U cesizen -d cesizen"]
interval: 10s
timeout: 5s
retries: 10
start_period: 40s
backend:
build:
context: ./backend
dockerfile: Dockerfile.prod
restart: unless-stopped
environment:
APP_NAME: CESIZen
APP_ENV: production
APP_DEBUG: "false"
# APP_KEY et JWT_SECRET ne sont PAS dans ce fichier (pas de secret versionné) :
# l'entrypoint du backend les génère au démarrage s'ils sont absents.
# Domaines figés en dur (Coolify ne propage pas les ${...} de façon fiable).
APP_URL: https://api.cesizen.cleanows.fr
DB_CONNECTION: pgsql
DB_HOST: postgres
DB_PORT: 5432
DB_DATABASE: cesizen
DB_USERNAME: cesizen
DB_PASSWORD: cesizen_secret_change_me
JWT_TTL: "60"
FRONTEND_URL: https://cesizen.cleanows.fr
CACHE_STORE: database
SESSION_DRIVER: database
QUEUE_CONNECTION: database
expose:
- "8000"
depends_on:
postgres:
condition: service_healthy
frontend:
build:
context: ./frontend
dockerfile: Dockerfile.prod
args:
# URL PUBLIQUE de l'API (injectée au build, visible côté navigateur)
NEXT_PUBLIC_API_URL: https://api.cesizen.cleanows.fr/api/v1
restart: unless-stopped
expose:
- "3000"
depends_on:
- backend
volumes:
cesizen_pgdata_v2: