services: nginx: image: nginx:alpine restart: always ports: - "8020:80" volumes: - "./nginx/default.conf:/etc/nginx/conf.d/default.conf:ro" labels: - "traefik.enable=true" # Roteador de Produção (scoreodonto.com) - "traefik.http.routers.scoreodonto-prod.rule=Host(`scoreodonto.com`) || Host(`www.scoreodonto.com`)" - "traefik.http.routers.scoreodonto-prod.entrypoints=websecure" - "traefik.http.routers.scoreodonto-prod.tls.certresolver=le" - "traefik.http.services.scoreodonto-prod.loadbalancer.server.port=80" - "traefik.docker.network=web" networks: - soc - web depends_on: - scoreodonto-backend - scoreodonto-frontend scoreodonto-backend: build: context: "./backend" dockerfile: Dockerfile args: APP_VERSION: ${APP_VERSION:-dev} GIT_COMMIT: ${GIT_COMMIT:-dev} BUILD_TIME: ${BUILD_TIME:-} APP_ENV: ${APP_ENV:-DEV} restart: always env_file: - "./backend/.env" environment: - BAILEYS_ENGINE=infinite - TZ=America/Sao_Paulo - PORT=8018 - NODE_ENV=production # Senha do banco vem do ambiente (.env raiz em DEV; provisionado fora do git em PROD). # `:?` falha o `up` se a senha não estiver definida — evita subir com senha vazia/errada. # Host/usuário/banco mantêm default (não são segredo); só a senha é obrigatória via env. - DATABASE_URL=postgresql://${SCOREO_DB_USER:-scoreodonto_user}:${SCOREO_DB_PASS:?defina SCOREO_DB_PASS no .env}@${SCOREO_DB_HOST:-10.99.0.3}:5432/${SCOREO_DB_NAME:-scoreodonto}?schema=public # DRAGONFLY_URL (com senha) vem do env_file backend/.env — não fica em texto no compose. - NATS_URL=nats://10.99.0.3:4222 - TEMPORAL_ADDRESS=10.99.0.3:7233 - BAILEYS_SESSIONS_PATH=/app/sessions - APP_URL=https://scoreodonto.com - GOOGLE_REDIRECT_URI=https://scoreodonto.com/api/oauth2callback volumes: - "/home/deploy/scoreodonto-sessions:/app/sessions" - "/home/deploy/scoreodonto-media:/app/media" - "./plugins:/app/plugins" networks: - soc - web scoreodonto-frontend: build: context: "." dockerfile: frontend/Dockerfile args: GIT_COMMIT: ${GIT_COMMIT:-dev} BUILD_TIME: ${BUILD_TIME:-} APP_ENV: ${APP_ENV:-DEV} restart: always env_file: - "./frontend/.env.production.local" environment: - PORT=3013 - NODE_ENV=production - NEXT_PUBLIC_API_URL=https://scoreodonto.com/api networks: - soc - web networks: soc: external: true web: external: true