services: exporter: build: context: .. dockerfile: Dockerfile container_name: homehub-exporter ports: - "9100:9100" environment: - ROUTER_IP=${ROUTER_IP:-192.168.2.1} - ROUTER_PASSWORD=${ROUTER_PASSWORD} - EXPORTER_PORT=9100 - HEADLESS_BROWSER=true - SCRAPE_INTERVAL=60 - LOG_POLL_INTERVAL=75 - DB_PATH=/app/data/virgin_monitor.db volumes: - exporter-data:/app/data restart: unless-stopped # For accessing router on host network extra_hosts: - "host.docker.internal:host-gateway" prometheus: image: prom/prometheus:latest container_name: homehub-prometheus ports: - "9090:9090" volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro - prometheus-data:/prometheus depends_on: - exporter restart: unless-stopped grafana: image: grafana/grafana:latest container_name: homehub-grafana ports: - "3000:3000" environment: - GF_SECURITY_ADMIN_USER=${GRAFANA_ADMIN_USER:-admin} - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_ADMIN_PASSWORD:-admin} - GF_USERS_ALLOW_SIGN_UP=false volumes: - grafana-data:/var/lib/grafana - ./grafana:/etc/grafana/provisioning:ro depends_on: - prometheus restart: unless-stopped volumes: exporter-data: prometheus-data: grafana-data: