Files
Arnout van Westen 0eb590f455 feat(dnsweaver): traefik router labels on all HTTP UIs; exclude list trimmed to DBs/agents
All HTTP-served containers (web UIs + metrics APIs) now carry explicit
router-rule labels so dnsweaver manages their arnoutvw.nl rewrites end
to end (no more relying on traefik defaultRule). krusader fixed to
noVNC 8080-ish label -> 6080. EXCLUDE_DOMAINS reduced to databases,
workers and agents (postgres14/mariadb/redis/postgresql17/komodo-mongo/
bookorbit-db/immich_postgres/immich_ml/dawarich_*db-redis-sidekiq/
influxdb/newt*/komodo-periphery/dockersocket/subsyncarr/wordpress-blues).
2026-10-05 09:10:52 +02:00

196 lines
5.4 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:v5.5.0"
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:v1.2.1"
labels:
- traefik.enable=true
- traefik.http.routers.adguard-exporter.rule=Host(`adguard-exporter.arnoutvw.nl`)
- traefik.http.services.adguard-exporter.loadbalancer.server.port=9618
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"
# $$ zodat compose niet interpoleert; shell doet dit runtime
- "/venv/bin/python$${PYTHON_VERSION} -m glances $${GLANCES_OPT}"
container_name: "glances"
environment:
- "GLANCES_OPT=-w -C /config/glances.conf"
- "TERM=xterm"
- "TZ=Europe/Berlin"
- "PYTHON_VERSION=3.14"
expose:
- "61208/tcp"
- "61209/tcp"
hostname: "Atlas"
image: "nicolargo/glances:4.5.7"
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:v0.20.1"
labels:
- traefik.enable=true
- traefik.http.routers.postgres_exporter.rule=Host(`postgres_exporter.arnoutvw.nl`)
- traefik.http.services.postgres_exporter.loadbalancer.server.port=9187
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@sha256:80bedf58b930d4f7bcb7a9bf571c8e085e768771869e27112e9117d510a80cd2"
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:13.2.3"
labels:
- traefik.enable=true
- traefik.http.routers.grafana.rule=Host(`grafana.arnoutvw.nl`)
- traefik.http.services.grafana.loadbalancer.server.port=3000
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"