# Prometheus & Grafana Monitoring Stack # Deployed on Homelab VM at ~/docker/monitoring # # Usage: # cd ~/docker/monitoring # docker-compose up -d services: prometheus: image: prom/prometheus:latest container_name: prometheus restart: unless-stopped ports: - "9090:9090" volumes: - ./prometheus:/etc/prometheus - prometheus-data:/prometheus command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.path=/prometheus' - '--web.enable-lifecycle' networks: - monitoring grafana: image: grafana/grafana-oss:latest container_name: grafana restart: unless-stopped ports: - "3300:3000" environment: - GF_SECURITY_ADMIN_USER=admin - GF_SECURITY_ADMIN_PASSWORD="REDACTED_PASSWORD" volumes: - grafana-data:/var/lib/grafana depends_on: - prometheus networks: - monitoring node_exporter: image: prom/node-exporter:latest container_name: node_exporter restart: unless-stopped network_mode: host pid: host user: nobody command: - '--path.rootfs=/host' volumes: - /proc:/host/proc:ro - /sys:/host/sys:ro - /:/host:ro,rslave volumes: prometheus-data: grafana-data: networks: monitoring: driver: bridge