services: db: image: postgres:16 container_name: wikitcg-db restart: unless-stopped environment: POSTGRES_DB: wikitcg POSTGRES_USER: wikitcg POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?} PGDATA: /var/lib/postgresql/data TZ: Europe/Paris volumes: - /mnt/cache/appdata/postgresql16:/var/lib/postgresql/data networks: - tcg-internal healthcheck: test: ["CMD-SHELL", "pg_isready -U wikitcg -d wikitcg"] interval: 10s timeout: 5s retries: 5 start_period: 30s backend: build: context: ./backend dockerfile: dockerfile image: wikitcg-backend container_name: wikitcg-backend restart: unless-stopped environment: DATABASE_URL: postgresql://wikitcg_app:${APP_DB_PASSWORD:?}@db:5432/wikitcg MIGRATION_DATABASE_URL: postgresql://wikitcg:${POSTGRES_PASSWORD:?}@db:5432/wikitcg JWT_SECRET_KEY: ${JWT_SECRET_KEY:?} STRIPE_SECRET_KEY: ${STRIPE_SECRET_KEY:?} STRIPE_PUBLISHABLE_KEY: ${STRIPE_PUBLISHABLE_KEY:?} STRIPE_WEBHOOK_SECRET: ${STRIPE_WEBHOOK_SECRET:?} RESEND_API_KEY: ${RESEND_API_KEY:?} EMAIL_FROM: noreply@tcg.gade.gg FRONTEND_URL: https://tcg.gade.gg CORS_ORIGINS: https://tcg.gade.gg WIKIRANK_USER_AGENT: WikiTCG/1.0 (nikolaj@gade.gg) TZ: Europe/Paris networks: - tcg-internal - proxy depends_on: db: condition: service_healthy frontend: build: context: ./frontend dockerfile: dockerfile args: PUBLIC_API_URL: https://tcg-api.gade.gg image: wikitcg-frontend container_name: wikitcg-frontend restart: unless-stopped environment: TZ: Europe/Paris networks: - proxy networks: proxy: external: true tcg-internal: internal: true