# Copy this file to `compose.yml` and modify it to your liking. # Copy `.env.example` to `.env` to configure environment variables. services: bot: build: context: . dockerfile: ./packages/bot/Dockerfile environment: - DB_HOST=mongo:27017 - DB_USERNAME=mogus - DB_PASS - DB_NAME=admin - BOT_TOKEN - BOT_OWNERS - LOG_WEBHOOK - NODE_ENV=production - API_WS_URL=ws://api:9000/internal/ws - API_WS_TOKEN=${INTERNAL_API_TOKEN} - WEB_UI_URL=${PUBLIC_WEB_URL} - BOT_PREFIX - BOT_METRICS_PORT - BOT_METRICS_MSG_PING_CHANNEL - BOT_STATUS - BOT_STATUS_INTERVAL - STOAT_API_URL - MONGODB_LOG_ALL=off # Uncomment if you enabled Prometheus metrics #ports: # - 127.0.0.1:${BOT_METRICS_PORT}:${BOT_METRICS_PORT} depends_on: mongo: condition: service_healthy api: condition: service_started restart: unless-stopped api: build: context: . dockerfile: ./packages/api/Dockerfile environment: - BOT_API_TOKEN=${INTERNAL_API_TOKEN} - DB_HOST=mongo:27017 - DB_USERNAME=mogus - DB_PASS - DB_NAME=admin - REDIS_URL=redis://redis:6379 expose: - 9000 ports: - "9000:9000" depends_on: mongo: condition: service_healthy redis: condition: service_started restart: unless-stopped web: build: context: ./packages/web dockerfile: Dockerfile environment: - WEB_PORT=8080 - PUBLIC_API_URL=${PUBLIC_API_URL:-http://api:9000} - BASE_PATH=${WEB_BASE_PATH:-} ports: - "${PUBLIC_WEB_PORT:-8080}:8080" depends_on: - api restart: unless-stopped mongo: image: mongo command: --quiet environment: - MONGO_INITDB_ROOT_USERNAME=mogus - MONGO_INITDB_ROOT_PASSWORD=${DB_PASS} expose: - 27017 volumes: - ./db:/data/db:rw healthcheck: test: > mongosh --quiet -u mogus -p "$$MONGO_INITDB_ROOT_PASSWORD" --authenticationDatabase admin --eval "db.adminCommand('ping').ok" interval: 10s timeout: 5s retries: 5 start_period: 30s restart: unless-stopped redis: image: valkey/valkey restart: always