Files
compose-files/monitoring/compose.yaml
T
Arnout van Westen ec6a723776 fix: pocketid encryption key inline, photon image layout, glances py 3.14
- Pocket-ID: ENCRYPTION_KEY contains $ — Komodo .env interpolation
  eats it. Inline with $$ YAML escape (value already in git history
  from master.yaml; rotate later).
- photon: image dropped uv; use image default CMD, strip stale PATH/JAVA.
- glances: PYTHON_VERSION must be 3.14 to match image venv.
2026-10-02 16:21:53 +02:00

181 lines
4.7 KiB
YAML

version: "3.6"
services:
UniFi-Poller:
container_name: "UniFi-Poller"
entrypoint:
- "/usr/bin/unpoller"
environment:
- "UP_INFLUXDB_DISABLE=false"
- "UP_POLLER_DEBUG=false"
- "UP_INFLUXDB_URL=http://192.168.10.144:8785"
- "UP_UNIFI_CONTROLLER_0_SAVE_IDS=true"
- "UP_UNIFI_CONTROLLER_0_VERIFY_SSL=false"
- "UP_INFLUXDB_PASS=${INFLUXDB_UNIFI_PASSWORD}"
- "UP_PROMETHEUS_HTTP_LISTEN=0.0.0.0:9031"
- "UP_PROMETHEUS_DISABLE=true"
- "TZ=Europe/Berlin"
- "UP_UNIFI_CONTROLLER_0_URL=https://192.168.10.1"
- "UP_UNIFI_CONTROLLER_0_PASS=${UNIFI_POLLER_PASSWORD}"
- "UP_UNIFI_CONTROLLER_0_SAVE_DPI=true"
- "UP_INFLUXDB_DB=unifi"
- "UP_POLLER_QUIET=false"
- "UP_UNIFI_CONTROLLER_0_SITES_0=all"
- "UP_UNIFI_CONTROLLER_0_USER=unifipoller"
- "UP_UNIFI_CONTROLLER_0_SAVE_SITES=true"
- "UP_INFLUXDB_USER=unifipoller"
- "UP_INFLUXDB_INTERVAL=30s"
- "SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt"
image: "golift/unifi-poller"
ipc: "private"
logging:
driver: "json-file"
options:
max-file: "1"
max-size: "50m"
network_mode: "bridge"
user: "0"
restart: "unless-stopped"
working_dir: "/"
adguard-exporter:
container_name: "adguard-exporter"
entrypoint:
- "/adguard-exporter"
environment:
- "ADGUARD_SERVERS=http://192.168.10.54:3000,http://192.168.10.65:8083"
- "ADGUARD_USERNAMES=arnout,admin"
- "ADGUARD_PASSWORDS=${ADGUARD_PASSWORDS}"
- "TZ=Europe/Berlin"
image: "ghcr.io/henrywhitaker3/adguard-exporter:latest"
ipc: "private"
logging:
driver: "json-file"
options:
max-file: "1"
max-size: "50m"
network_mode: "bridge"
ports:
- "9618:9618/tcp"
user: "65532:65532"
restart: "unless-stopped"
working_dir: "/"
glances:
command:
- "/bin/sh"
- "-c"
- "/venv/bin/python${PYTHON_VERSION} -m glances ${GLANCES_OPT}"
container_name: "glances"
environment:
- "GLANCES_OPT=-w -C /config/glances.conf"
- "TZ=Europe/Berlin"
- "PYTHON_VERSION=3.14"
expose:
- "61208/tcp"
- "61209/tcp"
hostname: "Atlas"
image: "nicolargo/glances"
ipc: "private"
logging:
driver: "json-file"
options:
max-file: "1"
max-size: "50m"
network_mode: "host"
restart: "always"
security_opt:
- "label=disable"
volumes:
- "/mnt/cache/appdata/glances:/config"
- "/mnt:/mnt:ro"
- "/var/run/docker.sock:/var/run/docker.sock:ro"
working_dir: "/app"
postgres_exporter:
command:
- "--config.file=/app/postgres_exporter.yml"
container_name: "postgres_exporter"
entrypoint:
- "/bin/postgres_exporter"
environment:
- "TZ=Europe/Berlin"
image: "quay.io/prometheuscommunity/postgres-exporter"
ipc: "private"
logging:
driver: "json-file"
options:
max-file: "1"
max-size: "50m"
network_mode: "bridge"
ports:
- "9187:9187/tcp"
restart: "unless-stopped"
user: "nobody"
volumes:
- "/mnt/cache/appdata/postgres_exporter:/app"
telegraf:
command:
- "telegraf"
container_name: "telegraf"
entrypoint:
- "/entrypoint.sh"
environment:
- "HOST_SYS=/rootfs/sys"
- "HOST_ETC=/rootfs/etc"
- "HOST_MOUNT_PREFIX=/rootfs"
- "TZ=Europe/Berlin"
- "HOST_PROC=/rootfs/proc"
expose:
- "8092/udp"
- "8094/tcp"
- "8125/udp"
hostname: "Atlas"
image: "golift/telegraf"
ipc: "private"
logging:
driver: "json-file"
options:
max-file: "1"
max-size: "50m"
network_mode: "host"
privileged: true
restart: "unless-stopped"
security_opt:
- "label=disable"
user: "telegraf:281"
volumes:
- "/:/rootfs:ro"
- "/etc:/rootfs/etc:ro"
- "/mnt/user/appdata/telegraf/telegraf.conf:/etc/telegraf/telegraf.conf"
- "/proc:/rootfs/proc:ro"
- "/run/udev:/run/udev:ro"
- "/sys:/rootfs/sys:ro"
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "/var/run/utmp:/var/run/utmp:ro"
Grafana:
container_name: "Grafana"
environment:
- "TZ=Europe/Berlin"
- "GF_SERVER_ROOT_URL=http://grafana.arnoutvw.nl"
- "GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_ADMIN_PASSWORD}"
image: "grafana/grafana"
ipc: "private"
logging:
driver: "json-file"
options:
max-file: "1"
max-size: "50m"
network_mode: "bridge"
ports:
- "3029:3000/tcp"
restart: "unless-stopped"
user: "472"
volumes:
- "/mnt/user/appdata/grafana-latest:/var/lib/grafana"