services: uptime-kuma: image: louislam/uptime-kuma:${UPTIME_KUMA_VERSION} container_name: uptime-kuma restart: unless-stopped volumes: - uptime-kuma-data:/app/data ports: - "${UPTIME_KUMA_PORT}:3001" prometheus: image: prom/prometheus:${PROMETHEUS_VERSION} container_name: prometheus restart: unless-stopped volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro - prometheus-data:/prometheus command: - "--config.file=/etc/prometheus/prometheus.yml" - "--storage.tsdb.retention.time=${PROM_RETENTION}" ports: - "${PROMETHEUS_PORT}:9090" grafana: image: grafana/grafana:${GRAFANA_VERSION} container_name: grafana restart: unless-stopped environment: - GF_SECURITY_ADMIN_USER=${GRAFANA_USER} - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD} volumes: - grafana-data:/var/lib/grafana labels: - "traefik.enable=true" - "traefik.http.routers.grafana.rule=Host(`${GRAFANA_HOST}`)" - "traefik.http.routers.grafana.entrypoints=${TRAEFIK_ENTRYPOINT}" - "traefik.http.routers.grafana.tls=true" - "traefik.http.routers.grafana.tls.certresolver=${TRAEFIK_RESOLVER}" - "traefik.http.services.grafana.loadbalancer.server.port=3000" networks: - frontend - default node-exporter: image: quay.io/prometheus/node-exporter:${NODE_EXPORTER_VERSION} container_name: node-exporter restart: unless-stopped network_mode: host pid: host command: - '--path.rootfs=/host' volumes: - '/:/host:ro,rslave' volumes: uptime-kuma-data: prometheus-data: grafana-data: networks: frontend: external: true