--- - name: Deploy Prometheus include_role: name: docker vars: name: prometheus network_name: "monitoring" networks: - name: "monitoring" - name: "homelab" directories: - "{{ data_dir }}/monitoring" - "{{ data_dir }}/monitoring/grafana" - "{{ data_dir }}/monitoring/prometheus" image: name: prom/prometheus tag: latest volumes: - "{{ data_dir }}/monitoring/prometheus:/etc/prometheus" - "{{ data_dir }}/monitoring/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml" labels: traefik.enable: "true" traefik.http.routers.prom.rule: Host(`prom.fntz.net`) traefik.http.routers.prom.entrypoints: webSecure traefik.http.routers.prom.tls.certresolver: letsencrypt traefik.http.services.prom.loadbalancer.server.port: "9090" - name: Deploy Node Exporter include_role: name: docker vars: name: node-exporter image: name: prom/node-exporter tag: latest command: - "--path.rootfs=host" network_mode: host pid_mode: host volumes: - "/:/host:ro,rslave" - name: Deploy CAdvisor include_role: name: docker vars: name: cadvisor image: name: ghcr.io/google/cadvisor tag: 0.55.1 networks: - name: "monitoring" volumes: - "/:/rootfs:ro" - "/var/run:/var/run:ro" - "/sys:/sys:ro" - "/var/lib/docker:/var/lib/docker:ro" - "/dev/disk:/dev/disk:ro" privileged: true devices: - /dev/kmsg - name: Deploy Grafana include_role: name: docker vars: name: grafana networks: - name: "monitoring" - name: "homelab" image: name: grafana/grafana tag: latest volumes: - "{{ data_dir }}/monitoring/grafana:/var/lib/grafana" env: GF_AUTH_ANONYMOUS_ENABLED: "{{ GRAFANA_AUTH_ANONYMOUS_ENABLED }}" labels: traefik.enable: "true" traefik.http.routers.grafana.rule: Host(`grafana.fntz.net`) traefik.http.routers.grafana.entrypoints: webSecure traefik.http.routers.grafana.tls.certresolver: letsencrypt traefik.http.services.grafana.loadbalancer.server.port: "3000" traefik.http.routers.grafana.middlewares: tinyauth