# UnPoller + InfluxDB 2.x + Grafana # Run on the Docker host at 192.168.69.180 # All secrets/config live in the .env file next to this file. services: influxdb: image: influxdb:2.7 container_name: unpoller-influxdb restart: unless-stopped ports: - '8086:8086' volumes: - influxdb-storage:/var/lib/influxdb2 - influxdb-config:/etc/influxdb2 environment: - DOCKER_INFLUXDB_INIT_MODE=setup - DOCKER_INFLUXDB_INIT_USERNAME=${INFLUXDB_ADMIN_USER} - DOCKER_INFLUXDB_INIT_PASSWORD=${INFLUXDB_ADMIN_PASSWORD} - DOCKER_INFLUXDB_INIT_ORG=${INFLUXDB_ORG} - DOCKER_INFLUXDB_INIT_BUCKET=${INFLUXDB_BUCKET} - DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=${INFLUXDB_ADMIN_TOKEN} - DOCKER_INFLUXDB_INIT_RETENTION=0s # 0s = keep data forever grafana: image: grafana/grafana:latest container_name: unpoller-grafana restart: unless-stopped ports: - '3000:3000' volumes: - grafana-storage:/var/lib/grafana depends_on: - influxdb environment: - GF_SECURITY_ADMIN_USER=${GRAFANA_USERNAME} - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD} - GF_INSTALL_PLUGINS=grafana-clock-panel,natel-discrete-panel,grafana-piechart-panel unpoller: image: ghcr.io/unpoller/unpoller:${POLLER_TAG} container_name: unpoller restart: unless-stopped ports: - '9130:9130' # Prometheus /metrics endpoint (optional health check) depends_on: - influxdb - grafana environment: # ---- InfluxDB 2.x output ---- - UP_INFLUXDB_URL=http://influxdb:8086 - UP_INFLUXDB_ORG=${INFLUXDB_ORG} - UP_INFLUXDB_BUCKET=${INFLUXDB_BUCKET} - UP_INFLUXDB_AUTH_TOKEN=${INFLUXDB_ADMIN_TOKEN} # ---- UniFi controller to poll ---- - UP_UNIFI_DEFAULT_URL=${UNIFI_URL} - UP_UNIFI_DEFAULT_USER=${UNIFI_USER} - UP_UNIFI_DEFAULT_PASS=${UNIFI_PASS} - UP_UNIFI_DEFAULT_VERIFY_SSL=false # UniFi uses a self-signed cert - UP_UNIFI_DEFAULT_SAVE_SITES=true - UP_UNIFI_DEFAULT_SAVE_DPI=${POLLER_SAVE_DPI} # ---- General ---- - UP_POLLER_DEBUG=${POLLER_DEBUG} volumes: influxdb-storage: influxdb-config: grafana-storage: