services: prometheus: profiles: ["monitoring","all","prometheus"] image: prom/prometheus:latest # env_file: # - ${PROJECT_ROOT}/secrets/stack-secrets.env container_name: prometheus depends_on: # - alertmanager - telegraf - influxdb - node-exporter - docker-update-exporter - pihole-exporter command: - "--config.file=/etc/prometheus/prometheus.yml" - "--storage.tsdb.path=/prometheus" - "--storage.tsdb.retention.time=15d" # build: # context: ${PROJECT_ROOT}/monitoring/prometheus volumes: - ${PROJECT_ROOT}/monitoring/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro - ${PROJECT_ROOT}/monitoring/prometheus/data:/prometheus - ${PROJECT_ROOT}/monitoring/prometheus/rules:/etc/prometheus/rules:ro - ${PROJECT_ROOT}/secrets/prometheus_kuma_basic_auth_password.txt:/run/secrets/prometheus_kuma_basic_auth_password:ro restart: unless-stopped labels: - "traefik.http.routers.prometheus.rule=Host(`prometheus.lan.ddnsgeek.com`)" - "traefik.enable=true" - "traefik.http.routers.prometheus.entrypoints=websecure" - "traefik.http.routers.prometheus.tls.certresolver=myresolver" - "io.portainer.accesscontrol.public" - "traefik.http.services.prometheus.loadbalancer.server.port=9090" - "traefik.http.routers.prometheus.middlewares=authelia" - "traefik.docker.network=core_traefik" networks: # - edge # - traefik_reverse_proxy - traefik - monitor healthcheck: test: ["CMD", "wget", "--spider", "-q", "http://localhost:9090/-/healthy"] interval: 30s timeout: 10s retries: 3 start_period: 30s