networks: metrics: driver: bridge name: metrics traefik: external: true minecraft: external: true volumes: prometheus_data: {} services: grafana: image: grafana/grafana user: "1003:1005" container_name: grafana restart: unless-stopped networks: - metrics - traefik volumes: - ./grafana.ini:/etc/grafana/grafana.ini - /pwspool/software/grafana:/var/lib/grafana labels: - traefik.http.routers.grafana.rule=Host(`grafana.whitney.rip`) - traefik.http.routers.grafana.tls=true - traefik.http.routers.grafana.tls.certresolver=lets-encrypt - traefik.http.services.grafana.loadbalancer.server.port=3000 depends_on: - node_exporter - prometheus node_exporter: image: quay.io/prometheus/node-exporter:latest container_name: node_exporter user: "1003:1005" restart: unless-stopped networks: - metrics pid: host command: - "--path.rootfs=/host" volumes: - "/:/host:ro,rslave" depends_on: - prometheus labels: - traefik.enable=false prometheus: image: prom/prometheus:latest container_name: prometheus restart: always networks: - metrics - traefik volumes: - "./prometheus.yml:/etc/prometheus.yml" - prometheus_data:/prometheus command: - "--config.file=/etc/prometheus.yml" - "--storage.tsdb.path=/prometheus" - "--web.console.libraries=/usr/share/prometheus/console_libraries" - "--web.console.templates=/usr/share/prometheus/consoles" labels: - traefik.enable=true - traefik.docker.network=traefik - traefik.http.routers.prometheus.rule=Host(`${PROMETHEUS_HOST}`) - traefik.http.routers.prometheus.tls=true - traefik.http.routers.prometheus.tls.certresolver=lets-encrypt - traefik.http.routers.prometheus.middlewares=prometheus-auth - traefik.http.middlewares.prometheus-auth.basicauth.users=${PROMETHEUS_BASIC_AUTH} - traefik.http.services.prometheus.loadbalancer.server.port=9090