networks: proxy: external: true monitoring: name: monitoring external: false volumes: prometheus: name: prometheus grafana: name: grafana services: prometheus: image: gitea.steinle-computer.de/production/prometheus container_name: prometheus hostname: prometheus restart: unless-stopped networks: - proxy volumes: - prometheus:/prometheus labels: - "traefik.enable=true" - "traefik.http.routers.prometheus.rule=Host(`prometheus.steinle-computer.de`)" - "traefik.http.routers.prometheus.entrypoints=web" - "traefik.http.routers.prometheus.service=prometheus" - "traefik.http.routers.prometheus.middlewares=auth" - "traefik.http.services.prometheus.loadbalancer.server.port=9090" cadvisor: image: gcr.io/cadvisor/cadvisor:v0.52.1 container_name: cadvisor hostname: cadvisor restart: unless-stopped networks: - proxy volumes: - /:/rootfs:ro - /var/run:/var/run:rw - /sys:/sys:ro - /var/lib/docker/:/var/lib/docker:ro command: - "-docker_only=true" - "-housekeeping_interval=10s" labels: - "traefik.enable=true" - "traefik.http.routers.cadvisor.rule=Host(`cadvisor.steinle-computer.de`)" - "traefik.http.routers.cadvisor.entrypoints=web" - "traefik.http.routers.cadvisor.service=cadvisor" - "traefik.http.routers.cadvisor.middlewares=auth" - "traefik.http.services.cadvisor.loadbalancer.server.port=8080" node_exporter: image: prom/node-exporter container_name: node_exporter hostname: node_exporter command: - '--path.rootfs=/host' networks: - proxy pid: host restart: unless-stopped volumes: - '/:/host:ro,rslave' labels: - "traefik.enable=true" - "traefik.http.routers.node-exporter.rule=Host(`node-exporter.steinle-computer.de`)" - "traefik.http.routers.node-exporter.entrypoints=web" - "traefik.http.routers.node-exporter.service=node-exporter" - "traefik.http.routers.node-exporter.middlewares=auth" - "traefik.http.services.node-exporter.loadbalancer.server.port=9100" grafana: image: grafana/grafana-oss container_name: grafana hostname: grafana networks: - proxy restart: unless-stopped volumes: - grafana:/var/lib/grafana labels: - "traefik.enable=true" - "traefik.http.routers.grafana.rule=Host(`grafana.steinle-computer.de`)" - "traefik.http.routers.grafana.entrypoints=web" - "traefik.http.routers.grafana.middlewares=grafana" - "traefik.http.middlewares.grafana.redirectscheme.scheme=https" - "traefik.http.routers.grafana-secure.rule=Host(`grafana.steinle-computer.de`)" - "traefik.http.routers.grafana-secure.entrypoints=websecure" - "traefik.http.routers.grafana-secure.service=grafana-secure" - "traefik.http.routers.grafana-secure.tls=true" - "traefik.http.routers.grafana-secure.tls.certresolver=cs" - "traefik.http.services.grafana-secure.loadbalancer.server.port=3000" watchtower: image: containrrr/watchtower restart: always networks: - monitoring volumes: - /var/run/docker.sock:/var/run/docker.sock - ./watchtower-config.json:/config.json environment: TZ: Europe/Berlin WATCHTOWER_INCLUDE_STOPPED: true WATCHTOWER_MONITOR_ONLY: false WATCHTOWER_CLEANUP: true WATCHTOWER_REMOVE_VOLUMES: true WATCHTOWER_WARN_ON_HEAD_FAILURE: "never" WATCHTOWER_SCHEDULE: "0 0 2 * * *"