services: postgres: image: postgres:15-alpine container_name: postgres restart: unless-stopped environment: POSTGRES_USER: ${POSTGRES_USER:-directus} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-directus_password} POSTGRES_DB: ${POSTGRES_DB:-directus} volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER}"] interval: 5s timeout: 5s retries: 5 directus: image: directus/directus:11.14.1 container_name: directus restart: unless-stopped depends_on: postgres: condition: service_healthy ports: - "8055:8055" environment: KEY: ${DIRECTUS_KEY:-change-me-key} SECRET: ${DIRECTUS_SECRET:-change-me-secret} DB_CLIENT: pg DB_HOST: postgres DB_PORT: 5432 DB_DATABASE: ${POSTGRES_DB:-directus} DB_USER: ${POSTGRES_USER:-directus} DB_PASSWORD: ${POSTGRES_PASSWORD:-directus_password} ADMIN_EMAIL: ${DIRECTUS_ADMIN_EMAIL:-admin@example.com} ADMIN_PASSWORD: ${DIRECTUS_ADMIN_PASSWORD:-ChangeMe123!} PUBLIC_URL: ${DIRECTUS_PUBLIC_URL:-http://localhost:8055} CORS_ENABLED: "true" CORS_ORIGIN: ${DIRECTUS_CORS_ORIGIN:-http://localhost:3000} volumes: - directus_uploads:/directus/uploads web: # Image construite et poussĂ©e par GitHub Actions (voir .github/workflows/deploy.yml) : # le VPS ne build plus rien, il pull juste l'image prĂȘte. image: ghcr.io/takcastel/123soleil-web:latest container_name: frontend restart: unless-stopped depends_on: - directus ports: - "3001:3000" volumes: - ./backend:/backend - .:/workspace environment: DIRECTUS_URL: http://directus:8055 DIRECTUS_PUBLIC_URL: ${DIRECTUS_PUBLIC_URL:-} NEXT_PUBLIC_DIRECTUS_URL: ${NEXT_PUBLIC_DIRECTUS_URL} DIRECTUS_TOKEN: ${DIRECTUS_TOKEN:-} GOOGLE_SITE_VERIFICATION: ${GOOGLE_SITE_VERIFICATION:-} HELLOASSO_ADHESION_URL: ${HELLOASSO_ADHESION_URL:-} HELLOASSO_DON_URL: ${HELLOASSO_DON_URL:-} CONTACT_EMAIL_PRIMARY: ${CONTACT_EMAIL_PRIMARY:-} CONTACT_EMAIL_FALLBACK: ${CONTACT_EMAIL_FALLBACK:-} RESEND_API_KEY: ${RESEND_API_KEY:-} RESEND_FROM: ${RESEND_FROM:-} volumes: postgres_data: directus_uploads: