services: prometheus: image: prom/prometheus:latest container_name: prometheus volumes: - /opt/homelab/data/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro - /opt/homelab/data/prometheus:/prometheus command: - "--config.file=/etc/prometheus/prometheus.yml" - "--storage.tsdb.path=/prometheus" - "--web.console.libraries=/etc/prometheus/console_libraries" - "--web.console.templates=/etc/prometheus/consoles" - "--web.enable-lifecycle" ports: - 9090:9090 networks: - proxy_net restart: unless-stopped grafana: image: grafana/grafana:latest container_name: grafana env_file: - .env environment: - GF_SECURITY_ADMIN_USER=${GF_SECURITY_ADMIN_USER} - GF_SECURITY_ADMIN_PASSWORD=${GF_SECURITY_ADMIN_PASSWORD} volumes: - /opt/homelab/data/grafana:/var/lib/grafana ports: - 3001:3000 depends_on: - prometheus networks: - proxy_net labels: - "traefik.enable=true" - "traefik.http.routers.grafana.rule=Host(`grafana.kotori-waifu`)" - "traefik.http.services.grafana.loadbalancer.server.port=3000" restart: unless-stopped cadvisor: image: ghcr.io/google/cadvisor:v0.53.0 container_name: cadvisor privileged: true environment: - DOCKER_API_VERSION=1.44 devices: - /dev/kmsg:/dev/kmsg volumes: - /:/rootfs:ro - /var/run:/var/run:ro - /sys:/sys:ro - /var/lib/docker:/var/lib/docker:ro - /dev/disk/:/dev/disk:ro - /var/run/docker.sock:/var/run/docker.sock:ro - /sys/fs/cgroup:/sys/fs/cgroup:ro ports: - 8081:8080 networks: - proxy_net restart: unless-stopped node-exporter: image: prom/node-exporter:latest container_name: node-exporter volumes: - /proc:/host/proc:ro - /sys:/host/sys:ro - /:/rootfs:ro command: - "--path.procfs=/host/proc" - "--path.rootfs=/rootfs" - "--path.sysfs=/host/sys" - "--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)" ports: - 9100:9100 networks: - proxy_net restart: unless-stopped networks: proxy_net: external: true