services: backend: build: context: ./backend container_name: hll-vietnam-backend env_file: - ./backend/.env.example environment: HLL_BACKEND_LIVE_DATA_SOURCE: ${HLL_BACKEND_LIVE_DATA_SOURCE:-a2s} HLL_BACKEND_HISTORICAL_DATA_SOURCE: ${HLL_BACKEND_HISTORICAL_DATA_SOURCE:-public-scoreboard} HLL_BACKEND_RCON_TIMEOUT_SECONDS: ${HLL_BACKEND_RCON_TIMEOUT_SECONDS:-10} HLL_BACKEND_RCON_TARGETS: ${HLL_BACKEND_RCON_TARGETS:-} ports: - "8000:8000" volumes: - ./backend/data:/app/data restart: unless-stopped historical-runner: build: context: ./backend container_name: hll-vietnam-historical-runner command: ["python", "-m", "app.historical_runner", "--hourly"] env_file: - ./backend/.env.example environment: HLL_BACKEND_LIVE_DATA_SOURCE: ${HLL_BACKEND_LIVE_DATA_SOURCE:-a2s} HLL_BACKEND_HISTORICAL_DATA_SOURCE: ${HLL_BACKEND_HISTORICAL_DATA_SOURCE:-public-scoreboard} HLL_BACKEND_RCON_TIMEOUT_SECONDS: ${HLL_BACKEND_RCON_TIMEOUT_SECONDS:-10} HLL_BACKEND_RCON_TARGETS: ${HLL_BACKEND_RCON_TARGETS:-} depends_on: - backend volumes: - ./backend/data:/app/data restart: unless-stopped rcon-historical-worker: build: context: ./backend container_name: hll-vietnam-rcon-historical-worker command: ["python", "-m", "app.rcon_historical_worker", "loop", "--interval", "120"] env_file: - ./backend/.env.example environment: HLL_BACKEND_LIVE_DATA_SOURCE: ${HLL_BACKEND_LIVE_DATA_SOURCE:-a2s} HLL_BACKEND_HISTORICAL_DATA_SOURCE: ${HLL_BACKEND_HISTORICAL_DATA_SOURCE:-public-scoreboard} HLL_BACKEND_RCON_TIMEOUT_SECONDS: ${HLL_BACKEND_RCON_TIMEOUT_SECONDS:-10} HLL_BACKEND_RCON_TARGETS: ${HLL_BACKEND_RCON_TARGETS:-} HLL_RCON_HISTORICAL_CAPTURE_INTERVAL_SECONDS: ${HLL_RCON_HISTORICAL_CAPTURE_INTERVAL_SECONDS:-120} HLL_RCON_HISTORICAL_CAPTURE_MAX_RETRIES: ${HLL_RCON_HISTORICAL_CAPTURE_MAX_RETRIES:-2} HLL_RCON_HISTORICAL_CAPTURE_RETRY_DELAY_SECONDS: ${HLL_RCON_HISTORICAL_CAPTURE_RETRY_DELAY_SECONDS:-15} depends_on: - backend volumes: - ./backend/data:/app/data restart: unless-stopped frontend: build: context: ./frontend container_name: hll-vietnam-frontend depends_on: - backend ports: - "8080:8080" restart: unless-stopped