services:
  selenium:
    container_name: selenium-standalone-chromium
    image: selenium/standalone-chromium:129.0
    volumes:
      - ./webrtc-internals-exporter:/tmp/webrtc-internals-exporter:ro
    shm_size: "2g"
    attach: false
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:4444/wd/hub/status"]
      interval: 5s
      timeout: 10s
      retries: 5
    network_mode: host

  telegraf:
    container_name: telegraf
    image: telegraf:1.33.1
    volumes:
      - ./telegraf.conf:/etc/telegraf/telegraf.conf:ro
    environment:
      - DATABASE=${TELEGRAF_MONGODB_DATABASE:?"Database name is required"}
      - DSN=${TELEGRAF_MONGODB_DSN:?"DSN is required"}
      - HOSTNAME=${TELEGRAF_HOSTNAME:?"Hostname is required"}
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080"]
      interval: 5s
      timeout: 10s
      retries: 5
    restart: unless-stopped
    networks:
      - backend

  collector:
    container_name: collector
    image: gitea.kobim.cloud/kobim/peertube-collector
    #build:
      #context: .
      #dockerfile: Dockerfile
    depends_on:
      selenium:
        condition: service_healthy
      telegraf:
        condition: service_healthy
    environment:
      - VIDEO_URL=${VIDEO_URL:?"Video URL is required"}
    restart: unless-stopped
    ports:
      - "9092:9092"
    extra_hosts:
      - "host.docker.internal:host-gateway"
    networks:
      - backend

networks:
  backend: