services:
  blackbox:
    image: prom/blackbox-exporter:latest
    command:
      - --config.file=/etc/blackbox/blackbox.yml
    volumes:
      - ./config/blackbox:/etc/blackbox
    ports:
      - 127.0.0.1:9115:9115 # Debug only

  prometheus:
    image: prom/prometheus:latest
    user: 1000:1000
    ports:
      - 127.0.0.1:9094:9090 # Debug only
    volumes:
      - ./config/prometheus:/etc/prometheus
      - ./data/prometheus:/prometheus
    command: --web.enable-lifecycle --web.enable-remote-write-receiver --config.file=/etc/prometheus/prometheus.yml
    restart: unless-stopped

  grafana:
    image: grafana/grafana-oss:latest
    restart: unless-stopped
    user: 1000:1000
    environment:
      GF_DATABASE_TYPE: postgres
      GF_DATABASE_HOST: grafana_db:5432
      GF_DATABASE_NAME: grafana
      GF_DATABASE_USER: grafana
      GF_DATABASE_PASSWORD: grafana
      GF_DATABASE_SSL_MODE: disable
      #GF_SERVER_ROOT_URL: "https://grafana.druit.org/"
    depends_on:
        - grafana_db
    ports:
      - 3000:3000
    volumes:
      - ./data/grafana:/var/lib/grafana
#      - ./config/grafana/provisioning:/etc/grafana/provisioning
#      - ./config/grafana/dashboards:/var/lib/grafana/dashboards

  grafana_db:
    image: postgres:15
    restart: unless-stopped
    environment:
      POSTGRES_DB: grafana
      POSTGRES_USER: grafana
      POSTGRES_PASSWORD: grafana
    volumes:
      - ./data/grafana-db:/var/lib/postgresql/data