Files
benevoles/docker-compose.prod.yml
T
AdamThomas 5a3e11b77e
ci-cd / backend-test (push) Canceled after 0s
ci-cd / frontend-test (push) Canceled after 0s
ci-cd / build-backend (push) Canceled after 0s
ci-cd / build-frontend (push) Canceled after 0s
ci-cd / deploy (push) Canceled after 0s
update ci
2026-09-16 21:49:34 +02:00

62 lines
1.9 KiB
YAML

name: benevoles
# Déployé sur le VPS. Les variables sont lues depuis un fichier .env situé à
# côté de ce fichier (non versionné) : POSTGRES_USER, POSTGRES_PASSWORD,
# POSTGRES_DB, JWT_SECRET, PUBLIC_BASE_URL et les variables SMTP_* / EMAIL_ENABLED.
# BACKEND_IMAGE / FRONTEND_IMAGE sont exportées par le pipeline de déploiement
# (.gitea/workflows/ci-cd.yml).
#
# Les deux services ne publient que sur `127.0.0.1` : c'est le Caddy du VPS
# (hors de ce compose, voir deploy/README.md) qui reçoit le trafic public et
# reverse-proxy vers ces ports.
services:
db:
image: postgres:16-alpine
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
volumes:
- db_data:/var/lib/postgresql/data
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER}"]
interval: 10s
timeout: 5s
retries: 10
backend:
image: ${BACKEND_IMAGE:-gitea.mon-domaine.fr/OWNER/REPO/backend:latest}
environment:
DATABASE_URL: postgresql+psycopg://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}
ENVIRONMENT: production
JWT_SECRET: ${JWT_SECRET}
PUBLIC_BASE_URL: ${PUBLIC_BASE_URL}
EMAIL_ENABLED: ${EMAIL_ENABLED:-false}
SMTP_HOST: ${SMTP_HOST:-}
SMTP_PORT: ${SMTP_PORT:-587}
SMTP_USER: ${SMTP_USER:-}
SMTP_PASSWORD: ${SMTP_PASSWORD:-}
SMTP_STARTTLS: ${SMTP_STARTTLS:-true}
SMTP_SSL: ${SMTP_SSL:-false}
SMTP_FROM: ${SMTP_FROM:-}
TZ: Europe/Paris
depends_on:
db:
condition: service_healthy
ports:
- "127.0.0.1:8000:8000"
restart: unless-stopped
frontend:
image: ${FRONTEND_IMAGE:-gitea.mon-domaine.fr/OWNER/REPO/frontend:latest}
depends_on:
- backend
ports:
- "127.0.0.1:8080:80"
restart: unless-stopped
volumes:
db_data: