# Prometheus + Grafana monitoring stack. services: prometheus: image: prom/prometheus:v3.1.0 container_name: prometheus command: - --config.file=/etc/prometheus/prometheus.yml ports: - "9090:9090" volumes: - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro - prometheus_data:/prometheus # Lets Prometheus reach services running natively on the host. extra_hosts: - "host.docker.internal:host-gateway" grafana: image: grafana/grafana:11.4.0 container_name: grafana ports: - "3000:3000" environment: # Dev-only: open Grafana with no login, full access. - GF_AUTH_ANONYMOUS_ENABLED=true - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin - GF_AUTH_DISABLE_LOGIN_FORM=true volumes: - ./grafana/provisioning:/etc/grafana/provisioning:ro - ./grafana/dashboards:/var/lib/grafana/dashboards:ro - grafana_data:/var/lib/grafana depends_on: - prometheus volumes: prometheus_data: grafana_data: