# ────────────────────────────────────────────────────────────────────── # OmniRoute — Docker Compose (Production Snapshot) # ────────────────────────────────────────────────────────────────────── # # Isolated production instance running on port 20130. # Keeps the app running while you continue developing locally. # # Usage: # docker compose -f docker-compose.prod.yml up -d --build # docker compose -f docker-compose.prod.yml down # docker compose -f docker-compose.prod.yml logs -f # ────────────────────────────────────────────────────────────────────── services: omniroute-prod: container_name: omniroute-prod build: context: . target: runner-cli image: omniroute:prod restart: unless-stopped stop_grace_period: 40s env_file: .env environment: - NODE_ENV=production - PORT=${PORT:-20128} - DASHBOARD_PORT=${DASHBOARD_PORT:-${PORT:-20128}} - API_PORT=${API_PORT:-20129} - API_HOST=${API_HOST:-0.0.0.0} - HOSTNAME=0.0.0.0 - DATA_DIR=/app/data ports: - "${PROD_DASHBOARD_PORT:-20130}:${DASHBOARD_PORT:-${PORT:-20128}}" - "${PROD_API_PORT:-20131}:${API_PORT:-20129}" volumes: - omniroute-prod-data:/app/data healthcheck: test: ["CMD", "node", "healthcheck.mjs"] interval: 30s timeout: 5s retries: 3 start_period: 15s volumes: omniroute-prod-data: name: omniroute-prod-data