name: monitoring services: prometheus: image: prom/prometheus:v3.4.0 container_name: prometheus restart: unless-stopped ports: - "9090:9090" command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.path=/prometheus' - '--storage.tsdb.retention.time=90d' - '--web.enable-lifecycle' volumes: - /mnt/tank/docker/appdata/prometheus:/prometheus - /mnt/docker-ssd/docker/compose/monitoring/prometheus.yml:/etc/prometheus/prometheus.yml:ro networks: - default grafana: image: grafana/grafana:13.0.1 container_name: grafana restart: unless-stopped ports: - "3000:3000" environment: TZ: ${TZ} GF_SECURITY_ADMIN_USER: ${GF_ADMIN_USER} GF_SECURITY_ADMIN_PASSWORD: ${GF_ADMIN_PASS} GF_SERVER_ROOT_URL: https://${GF_HOST}/ volumes: - /mnt/tank/docker/appdata/grafana:/var/lib/grafana - /mnt/docker-ssd/docker/compose/monitoring/provisioning:/etc/grafana/provisioning:ro networks: - pangolin - default node-exporter: image: prom/node-exporter:v1.9.0 container_name: node-exporter restart: unless-stopped ports: - "9100:9100" command: - '--path.procfs=/host/proc' - '--path.sysfs=/host/sys' - '--path.rootfs=/rootfs' - '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)' volumes: - /proc:/host/proc:ro - /sys:/host/sys:ro - /:/rootfs:ro networks: - default networks: pangolin: external: true