services: bridge: build: . # No port binding — nginx-proxy routes traffic via the shared proxy network env_file: .env environment: # nginx-proxy / acme-companion auto-routing - VIRTUAL_HOST=${VIRTUAL_HOST:-hl.cast.ph} - VIRTUAL_PORT=${PORT:-3002} - LETSENCRYPT_HOST=${VIRTUAL_HOST:-hl.cast.ph} - LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL:-ops@cast.ph} depends_on: mongo: condition: service_healthy networks: - internal - proxy # shared nginx-proxy network — must match the nginx-proxy container's network restart: unless-stopped logging: driver: json-file options: max-size: "10m" max-file: "3" mongo: image: mongo:7 # No ports exposed — only reachable by bridge on the internal network volumes: - mongo-data:/data/db networks: - internal restart: unless-stopped healthcheck: test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"] interval: 10s timeout: 5s retries: 5 start_period: 20s networks: internal: # Private network for bridge ↔ mongo proxy: external: true # Must match the name of the existing nginx-proxy Docker network on the server. # Check with: docker network ls | grep proxy volumes: mongo-data: