name: historical-digital-me services: mongo: image: mongo:7-jammy restart: unless-stopped environment: MONGO_INITDB_DATABASE: ${MONGO_DB:-digital_me_local} volumes: - mongo_data:/data/db healthcheck: test: ["CMD", "mongosh", "--quiet", "--eval", "db.adminCommand('ping').ok"] interval: 10s timeout: 5s retries: 10 start_period: 20s backend: build: context: ./digital-me-backend dockerfile: Dockerfile restart: unless-stopped environment: PORT: 3701 NODE_ENV: development EDITION: ${EDITION:-both} PUBLIC_URL: ${PUBLIC_URL:-http://localhost:8080} CORS_ORIGINS: ${CORS_ORIGINS:-http://localhost:8080} WEB_BASE_URL: ${WEB_BASE_URL:-http://localhost:8080} MONGO_URI: mongodb://mongo:27017 MONGO_DB: ${MONGO_DB:-digital_me_local} JWT_SECRET: ${JWT_SECRET:-local-docker-only-change-before-ecs-2026} JWT_EXPIRES: ${JWT_EXPIRES:-7d} STORAGE_DRIVER: local STORAGE_LOCAL_DIR: /app/data/uploads SMS_PROVIDER: stub ALLOW_STUB_LOGIN: "true" PAYMENT_PROVIDER: stub STORE_PROVIDER: stub LLM_OVERSEAS_FALLBACK: "off" ALLOW_OVERSEAS_EGRESS: "false" DASHSCOPE_API_KEY: ${DASHSCOPE_API_KEY:-} ports: - "127.0.0.1:${BACKEND_PORT:-3701}:3701" volumes: - backend_data:/app/data depends_on: mongo: condition: service_healthy init: true web: build: context: ./digital-me-web dockerfile: Dockerfile args: VITE_API_BASE_URL: ${VITE_API_BASE_URL:-same-origin} VITE_EDITION: ${EDITION:-both} restart: unless-stopped ports: - "${WEB_BIND_ADDRESS:-0.0.0.0}:${WEB_PORT:-8080}:80" depends_on: backend: condition: service_healthy volumes: mongo_data: backend_data: