version: "3.9" services: prometheus: image: prom/prometheus:v2.52.0 restart: unless-stopped volumes: - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro - ./rules:/etc/prometheus/rules:ro - prometheus-data:/prometheus command: - "--config.file=/etc/prometheus/prometheus.yml" - "--storage.tsdb.retention.time=15d" - "--web.enable-lifecycle" ports: - "9090:9090" alertmanager: image: prom/alertmanager:v0.27.0 restart: unless-stopped env_file: - ./.env volumes: - ./alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml:ro - alertmanager-data:/alertmanager ports: - "9093:9093" grafana: image: grafana/grafana:11.1.0 restart: unless-stopped environment: - GF_SECURITY_ADMIN_USER=admin - GF_SECURITY_ADMIN_PASSWORD=admin - GF_USERS_ALLOW_SIGN_UP=false - GF_RENDERING_SERVER_URL=http://grafana-image-renderer:8081/render - GF_RENDERING_CALLBACK_URL=http://grafana:3000 - GF_RENDERING_CONCURRENT_RENDER_REQUEST_LIMIT=5 volumes: - grafana-data:/var/lib/grafana - ./grafana/provisioning:/etc/grafana/provisioning:ro - ./grafana/dashboards:/var/lib/grafana/dashboards:ro ports: - "3000:3000" depends_on: - prometheus - grafana-image-renderer grafana-image-renderer: image: grafana/grafana-image-renderer:3.11.0 restart: unless-stopped environment: - ENABLE_METRICS=true ports: - "8081:8081" node-exporter: image: prom/node-exporter:v1.8.1 restart: unless-stopped pid: host volumes: - /:/host:ro,rslave command: - "--path.rootfs=/host" ports: - "9100:9100" cadvisor: image: gcr.io/cadvisor/cadvisor:v0.49.1 restart: unless-stopped privileged: true volumes: - /:/rootfs:ro - /var/run:/var/run:rw - /sys:/sys:ro - /var/lib/docker/:/var/lib/docker:ro ports: - "8080:8080" smartctl-exporter: image: prometheuscommunity/smartctl-exporter:v0.12.0 restart: unless-stopped privileged: true volumes: - /dev:/dev - /run/udev:/run/udev:ro command: - "--smartctl.device=auto" ports: - "9633:9633" blackbox-exporter: image: prom/blackbox-exporter:v0.25.0 restart: unless-stopped volumes: - ./blackbox/blackbox.yml:/etc/blackbox_exporter/config.yml:ro ports: - "9115:9115" telegram-relay: image: python:3.12-slim restart: unless-stopped env_file: - ./.env environment: - GRAFANA_BASE=https://grafana.g4st3r.ru - PROM_BASE=https://prometheus.g4st3r.ru volumes: - ./telegram-relay:/app:ro working_dir: /app command: ["/bin/sh","-lc","pip install -r requirements.txt && python app.py"] ports: - "8088:8088" volumes: prometheus-data: grafana-data: alertmanager-data: