version: '3.8' services: db: image: postgres:15 environment: POSTGRES_DB: vip_coordinator POSTGRES_PASSWORD: ${DB_PASSWORD} volumes: - postgres-data:/var/lib/postgresql/data ports: - 5432:5432 redis: image: redis:7 ports: - 6379:6379 backend: build: context: ./backend target: production environment: DATABASE_URL: postgresql://postgres:${DB_PASSWORD}@db:5432/vip_coordinator REDIS_URL: redis://redis:6379 NODE_ENV: production FRONTEND_URL: ${FRONTEND_URL} AUTH0_DOMAIN: ${AUTH0_DOMAIN} AUTH0_CLIENT_ID: ${AUTH0_CLIENT_ID} AUTH0_CLIENT_SECRET: ${AUTH0_CLIENT_SECRET} AUTH0_AUDIENCE: ${AUTH0_AUDIENCE} INITIAL_ADMIN_EMAILS: ${INITIAL_ADMIN_EMAILS:-} AVIATIONSTACK_API_KEY: ${AVIATIONSTACK_API_KEY:-} DATABASE_SSL: ${DATABASE_SSL:-false} PGSSLMODE: disable ports: - 3000:3000 depends_on: - db - redis frontend: build: context: ./frontend target: serve args: VITE_AUTH0_DOMAIN: ${AUTH0_DOMAIN} VITE_AUTH0_CLIENT_ID: ${AUTH0_CLIENT_ID} VITE_AUTH0_AUDIENCE: ${AUTH0_AUDIENCE} ports: - 80:80 - 443:443 volumes: - /opt/vip-coordinator/certs:/etc/nginx/certs:ro depends_on: - backend volumes: postgres-data: