services: prometheus: image: prom/prometheus:latest container_name: onasty-prometheus user: root volumes: - onasty-prometheus:/prometheus - ../infra/prometheus:/etc/prometheus ports: - 9090:9090 networks: [onasty] restart: unless-stopped grafana: image: grafana/grafana:11.1.6 container_name: onasty-grafana user: root environment: - GF_SECURITY_ADMIN_USER=${GRAFANA_ADMIN_USER:-admin} - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_ADMIN_PASSWORD} volumes: - onasty-grafana:/var/lib/grafana - ../infra/grafana/datasources.yml:/etc/grafana/provisioning/datasources/datasources.yml - ../infra/grafana/dashboards.yml:/etc/grafana/provisioning/dashboards/dashboards.yml - ../infra/grafana/dashboards:/etc/grafana/provisioning/dashboards ports: - 3000:3000 networks: [onasty] restart: unless-stopped depends_on: - prometheus loki: image: grafana/loki:3.2.0 command: ["--pattern-ingester.enabled=true", "-config.file=/etc/loki/config.yaml"] ports: - 3100:3100 volumes: - onasty-loki:/loki - ../infra/loki/config.yaml:/etc/loki/config.yaml:ro networks: [onasty] restart: unless-stopped promtail: image: grafana/promtail:3.0.0 command: -config.file=/etc/promtail/config.yaml volumes: - ../infra/promtail/config.yaml:/etc/promtail/config.yaml:ro - /var/run/docker.sock:/var/run/docker.sock:ro - /var/lib/docker/containers:/var/lib/docker/containers:ro networks: [onasty] restart: unless-stopped depends_on: - loki networks: onasty: external: true volumes: onasty-prometheus: onasty-grafana: onasty-loki: