services: uptime-kuma: image: louislam/uptime-kuma:1 container_name: uptime-kuma restart: unless-stopped volumes: - uptime-kuma-data:/app/data ports: - "3001:3001" prometheus: image: prom/prometheus:latest container_name: prometheus restart: unless-stopped volumes: - ./prometheus:/etc/prometheus - prometheus-data:/prometheus command: - "--config.file=/etc/prometheus/prometheus.yml" - "--storage.tsdb.retention.time=15d" ports: - "9090:9090" grafana: image: grafana/grafana:latest container_name: grafana restart: unless-stopped environment: - GF_SECURITY_ADMIN_USER=admin - GF_SECURITY_ADMIN_PASSWORD=admin # change immediately volumes: - grafana-data:/var/lib/grafana # ports: # - "3000:3000" labels: - "traefik.enable=true" - "traefik.http.routers.grafana.rule=Host(`grafana.vpn.savant.io`)" - "traefik.http.routers.grafana.entrypoints=websecure" - "traefik.http.routers.grafana.tls=true" - "traefik.http.routers.grafana.tls.certresolver=cloudflare" - "traefik.http.services.grafana.loadbalancer.server.port=3000" networks: - frontend - default node-exporter: image: quay.io/prometheus/node-exporter:latest container_name: node-exporter command: - '--path.rootfs=/host' network_mode: host pid: host restart: unless-stopped volumes: - '/:/host:ro,rslave' volumes: uptime-kuma-data: prometheus-data: grafana-data: networks: frontend: external: true