Files
MISC_DOCKER_COMPOSE_FILES/UnPoller + InfluxDB 2.x + Grafana/docker-compose.yml
T
2026-09-13 20:27:51 +01:00

68 lines
2.2 KiB
YAML

# 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: