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).
306 lines
13 KiB
YAML
306 lines
13 KiB
YAML
services:
|
|
Plex-Media-Server:
|
|
container_name: "Plex-Media-Server"
|
|
restart: always
|
|
devices:
|
|
- "/dev/dri:/dev/dri"
|
|
environment:
|
|
- "PLEX_UID=99"
|
|
- "PLEX_GID=100"
|
|
- "VERSION=latest"
|
|
- "TZ=Europe/Berlin"
|
|
- "HOST_OS=Unraid"
|
|
- "HOST_HOSTNAME=Atlas"
|
|
- "HOST_CONTAINERNAME=Plex-Media-Server"
|
|
- "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
|
- "TERM=xterm"
|
|
- "LANG=C.UTF-8"
|
|
- "LC_ALL=C.UTF-8"
|
|
- "CHANGE_CONFIG_DIR_OWNERSHIP=true"
|
|
- "HOME=/config"
|
|
hostname: "249fece2f30f"
|
|
image: "plexinc/pms-docker:1.43.4.10903-e5521bd8c"
|
|
labels:
|
|
net.unraid.docker.icon: "https://raw.githubusercontent.com/plexinc/pms-docker/master/img/plex-server.png"
|
|
net.unraid.docker.webui: "http://[IP]:[PORT:32400]/web"
|
|
org.opencontainers.image.created: "2025-07-03T09:54:50.566Z"
|
|
org.opencontainers.image.description: "\"The Plex Media Server\""
|
|
org.opencontainers.image.licenses: "NOASSERTION"
|
|
org.opencontainers.image.ref.name: "ubuntu"
|
|
org.opencontainers.image.revision: "c15cb5d9bc43b1a46cd323bf2017d1f151d677d1"
|
|
org.opencontainers.image.source: "https://github.com/plexinc/pms-docker"
|
|
org.opencontainers.image.title: "Plex Media Server"
|
|
org.opencontainers.image.url: "https://github.com/plexinc/plex-media-server"
|
|
org.opencontainers.image.vendor: "Plex, GmbH"
|
|
org.opencontainers.image.version: "1.41.9.9961-46083195d"
|
|
traefik.http.routers.plex.rule: "Host(`plex.arnoutvw.nl`)"
|
|
|
|
network_mode: "host"
|
|
ports:
|
|
- "32400:32400/tcp"
|
|
- "33400:33400/tcp"
|
|
volumes:
|
|
- "/mnt/user/Plex:/data"
|
|
- "/mnt/user/appdata/Plex-Media-Server:/config"
|
|
- "/mnt/user/appdata/plex/transcode:/transcode"
|
|
|
|
tautulli:
|
|
container_name: "tautulli"
|
|
restart: always
|
|
environment:
|
|
- "HOST_OS=Unraid"
|
|
- "HOST_HOSTNAME=Atlas"
|
|
- "HOST_CONTAINERNAME=tautulli"
|
|
- "PUID=99"
|
|
- "PGID=100"
|
|
- "TZ=Europe/Berlin"
|
|
- "PATH=/lsiopy/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
|
- "PS1=$$(whoami)@$$(hostname):$$(pwd)\\$$ "
|
|
- "HOME=/root"
|
|
- "TERM=xterm"
|
|
- "S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0"
|
|
- "S6_VERBOSITY=1"
|
|
- "S6_STAGE2_HOOK=/docker-mods"
|
|
- "VIRTUAL_ENV=/lsiopy"
|
|
- "LSIO_FIRST_PARTY=true"
|
|
- "TAUTULLI_DOCKER=True"
|
|
image: "linuxserver/tautulli:2.18.2"
|
|
labels:
|
|
build_version: "Linuxserver.io version:- v2.15.3-ls198 Build-date:- 2025-08-03T17:41:27+00:00"
|
|
maintainer: "nemchik,thelamer"
|
|
net.unraid.docker.icon: "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/tautulli-icon.png"
|
|
net.unraid.docker.webui: "http://[IP]:[PORT:8181]/"
|
|
org.opencontainers.image.authors: "linuxserver.io"
|
|
org.opencontainers.image.created: "2025-08-03T17:41:27+00:00"
|
|
org.opencontainers.image.description: "[Tautulli](http://tautulli.com) is a python based web application\
|
|
\ for monitoring, analytics and notifications for Plex Media Server."
|
|
org.opencontainers.image.documentation: "https://docs.linuxserver.io/images/docker-tautulli"
|
|
org.opencontainers.image.licenses: "GPL-3.0-only"
|
|
org.opencontainers.image.ref.name: "5c50030431206eeea832b849ddda5d08d74592db"
|
|
org.opencontainers.image.revision: "5c50030431206eeea832b849ddda5d08d74592db"
|
|
org.opencontainers.image.source: "https://github.com/linuxserver/docker-tautulli"
|
|
org.opencontainers.image.title: "Tautulli"
|
|
org.opencontainers.image.url: "https://github.com/linuxserver/docker-tautulli/packages"
|
|
org.opencontainers.image.vendor: "linuxserver.io"
|
|
org.opencontainers.image.version: "v2.15.3-ls198"
|
|
traefik.http.routers.tautulli.rule: "Host(`tautulli.arnoutvw.nl`)"
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-file: "1"
|
|
max-size: "50m"
|
|
mac_address: "02:42:ac:11:00:1c"
|
|
network_mode: "bridge"
|
|
ports:
|
|
- "8181:8181/tcp"
|
|
volumes:
|
|
- "/mnt/user/appdata/tautulli:/config"
|
|
working_dir: "/"
|
|
|
|
kometa:
|
|
container_name: "kometa"
|
|
restart: always
|
|
environment:
|
|
- "HOST_CONTAINERNAME=kometa"
|
|
- "KOMETA_RUN=False"
|
|
- "PUID=99"
|
|
- "PGID=100"
|
|
- "UMASK=022"
|
|
- "TZ=Europe/Berlin"
|
|
- "HOST_OS=Unraid"
|
|
- "HOST_HOSTNAME=Atlas"
|
|
- "KOMETA_NO_MISSING=True"
|
|
- "KOMETA_CONFIG=/config/config.yml"
|
|
- "KOMETA_TIME=03:00,09:00,12:00,22:00"
|
|
- "KOMETA_TEST=False"
|
|
- "PATH=/lsiopy/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
|
- "PS1=$$(whoami)@$$(hostname):$$(pwd)\\$$ "
|
|
- "HOME=/config"
|
|
- "TERM=xterm"
|
|
- "S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0"
|
|
- "S6_VERBOSITY=1"
|
|
- "S6_STAGE2_HOOK=/init-hook"
|
|
- "VIRTUAL_ENV=/lsiopy"
|
|
- "LSIO_FIRST_PARTY=true"
|
|
- "PYTHONIOENCODING=utf-8"
|
|
image: "ghcr.io/linuxserver/kometa:2.5.1"
|
|
labels:
|
|
build_version: "Linuxserver.io version:- v2.2.0-ls61 Build-date:- 2025-07-23T05:43:54+00:00"
|
|
maintainer: "thespad"
|
|
net.unraid.docker.icon: "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/kometa-logo.png"
|
|
org.opencontainers.image.authors: "linuxserver.io"
|
|
org.opencontainers.image.created: "2025-07-23T05:43:54+00:00"
|
|
org.opencontainers.image.description: "[Kometa](https://github.com/Kometa-Team/Kometa) is a powerful\
|
|
\ tool designed to give you complete control over your media libraries. With Kometa, you can take\
|
|
\ your customization to the next level, with granular control over metadata, collections, overlays,\
|
|
\ and much more."
|
|
org.opencontainers.image.documentation: "https://docs.linuxserver.io/images/docker-kometa"
|
|
org.opencontainers.image.licenses: "GPL-3.0-only"
|
|
org.opencontainers.image.ref.name: "bfef2a1e7cbc7f859859e2f15b9abec9097d9bc4"
|
|
org.opencontainers.image.revision: "bfef2a1e7cbc7f859859e2f15b9abec9097d9bc4"
|
|
org.opencontainers.image.source: "https://github.com/linuxserver/docker-kometa"
|
|
org.opencontainers.image.title: "Kometa"
|
|
org.opencontainers.image.url: "https://github.com/linuxserver/docker-kometa/packages"
|
|
org.opencontainers.image.vendor: "linuxserver.io"
|
|
org.opencontainers.image.version: "v2.2.0-ls61"
|
|
network_mode: "bridge"
|
|
volumes:
|
|
- "/mnt/cache/appdata/kometa:/config"
|
|
working_dir: "/"
|
|
|
|
Maintainerr:
|
|
container_name: "Maintainerr"
|
|
environment:
|
|
- "TZ=Europe/Amsterdam"
|
|
- "HOST_OS=Unraid"
|
|
- "HOST_HOSTNAME=Atlas"
|
|
- "HOST_CONTAINERNAME=Maintainerr"
|
|
- "API_PORT=3001"
|
|
- "UI_PORT=6246"
|
|
- "UI_HOSTNAME=0.0.0.0"
|
|
- "DATA_DIR=/opt/data"
|
|
- "VERSION_TAG=stable"
|
|
- "BASE_PATH="
|
|
|
|
image: "ghcr.io/maintainerr/maintainerr:3.30.1"
|
|
|
|
labels:
|
|
traefik.enable: "true"
|
|
traefik.http.routers.maintainerr.rule: Host(`maintainerr.arnoutvw.nl`)
|
|
traefik.http.services.maintainerr.loadbalancer.server.port: "6246"
|
|
Description: "Contains the Maintainerr Docker image"
|
|
net.unraid.docker.icon: "https://github.com/jorenn92/Maintainerr/blob/main/ui/public/logo.png?raw=true"
|
|
net.unraid.docker.webui: "http://[IP]:[PORT:6246]"
|
|
org.opencontainers.image.created: "2025-07-12T20:51:27.248Z"
|
|
org.opencontainers.image.description: "Looks and smells like Overseerr, does the opposite. Maintenance\
|
|
\ tool for the Plex ecosystem"
|
|
org.opencontainers.image.licenses: "MIT"
|
|
org.opencontainers.image.revision: "363661dc34b959579fda86aeb17606bff125cbbd"
|
|
org.opencontainers.image.source: "https://github.com/jorenn92/Maintainerr"
|
|
org.opencontainers.image.title: "Maintainerr"
|
|
org.opencontainers.image.url: "https://github.com/jorenn92/Maintainerr"
|
|
org.opencontainers.image.version: "main"
|
|
network_mode: "bridge"
|
|
ports:
|
|
- "6246:6246/tcp"
|
|
user: "99:100"
|
|
|
|
volumes:
|
|
- "/mnt/user/appdata/maintainerr:/opt/data"
|
|
working_dir: "/opt/app"
|
|
|
|
# Maintainerr-Overlay-Helperr:
|
|
# container_name: "Maintainerr-Overlay-Helperr"
|
|
# environment:
|
|
# - "LANGUAGE=en-US"
|
|
# - "CRON_SCHEDULE=0 */1 * * *"
|
|
# - "FONT_SIZE=6.0"
|
|
# - "VERTICAL_OFFSET=3"
|
|
# - "ENABLE_DAY_SUFFIX=false"
|
|
# - "ENABLE_UPPERCASE=false"
|
|
# - "CA_TS_FALLBACK_DIR=/images"
|
|
# - "PLEX_TOKEN=ywjYz8fAh_c4b4DPsy3K"
|
|
# - "HOST_HOSTNAME=Atlas"
|
|
# - "HOST_CONTAINERNAME=Maintainerr-Overlay-Helperr"
|
|
# - "BACK_RADIUS=30"
|
|
# - "vertical-align=top"
|
|
# - "RUN_ON_CREATION=true"
|
|
# - "HOST_OS=Unraid"
|
|
# - "REORDER_COLLECTIONS=Movies leaving soon,TV leaving soon,TV Ep Leaving soon"
|
|
# - "MAINTAINERR_URL=http://192.168.10.144:6246"
|
|
# - "HORIZONTAL_OFFSET=0"
|
|
# - "IMAGE_SAVE_PATH=/images"
|
|
# - "TEMP_IMAGE_PATH=/images/temp"
|
|
# - "FONT_PATH=/fonts/font.ttf"
|
|
# - "BACK_COLOR=#B20710"
|
|
# - "FONT_COLOR=#FFFFFF"
|
|
# - "PADDING=1.2"
|
|
# - "BACK_RADIUS=0"
|
|
# - "DATE_FORMAT=d MMM"
|
|
# - "ORIGINAL_IMAGE_PATH=/images/originals"
|
|
# - "PLEX_URL=http://192.168.10.144:32400"
|
|
# - "PLEX_COLLECTION_ORDER=asc"
|
|
# - "OVERLAY_TEXT=Leaving"
|
|
# - "HORIZONTAL_ALIGN=center"
|
|
# - "TZ=Europe/Berlin"
|
|
# - "USE_DAYS=true" #Enable to displays days until deletion
|
|
# - "TEXT_TODAY=last chance to watch" #Custom message for last time to watch
|
|
# - "TEXT_DAY=gone tomorrow" #Custom message for media leaving tomorrow
|
|
# - "TEXT_DAYS Gone in {0} days" #Custom message days countdown
|
|
#
|
|
# image: "gsariev/maintainerr-overlay-helperr@sha256:60151c7ef2fc7e5d37008feff0134e180efb3d06b3ccaddbc7decb7563c470ae"
|
|
# labels:
|
|
# net.unraid.docker.icon: "https://raw.githubusercontent.com/jorenn92/Maintainerr/refs/heads/main/ui/public/logo.png"
|
|
# org.opencontainers.image.ref.name: "ubuntu"
|
|
# org.opencontainers.image.version: "22.04"
|
|
# network_mode: "bridge"
|
|
# volumes:
|
|
# - "/mnt/user/appdata/maintainerr_overlay_helperr/fonts:/fonts"
|
|
# - "/mnt/user/appdata/maintainerr_overlay_helperr/images:/images"
|
|
|
|
prom-plex-exporter:
|
|
image: ghcr.io/timothystewart6/prometheus-plex-exporter@sha256:90dc0799601c334f2945a3d5b4b552a06352b208a8ce88a428cf90d6c9aa51cd
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.prom-plex-exporter.rule=Host(`prom-plex-exporter.arnoutvw.nl`)
|
|
- traefik.http.services.prom-plex-exporter.loadbalancer.server.port=9000
|
|
- "9403:9000/tcp"
|
|
network_mode: "bridge"
|
|
restart: always
|
|
environment:
|
|
PLEX_SERVER: http://192.168.10.144:32400
|
|
PLEX_TOKEN: ywjYz8fAh_c4b4DPsy3K
|
|
|
|
dashboarr-backend:
|
|
image: ghcr.io/renzobeux/dashboarr-backend:1.8.0
|
|
container_name: dashboarr-backend
|
|
restart: unless-stopped
|
|
network_mode: "bridge"
|
|
ports:
|
|
- "4231:4000"
|
|
volumes:
|
|
- /mnt/user/appdata/dashboarr:/data
|
|
labels:
|
|
traefik.http.routers.dashboarr.rule: "Host(`dashboarr.arnoutvw.nl`)"
|
|
pangolin.proxy-resources.dashboarr.name: dashboarr
|
|
pangolin.proxy-resources.dashboarr.full-domain: dashboarr.arnoutvw.nl
|
|
pangolin.proxy-resources.dashboarr.protocol: http
|
|
pangolin.proxy-resources.dashboarr.ssl: true
|
|
pangolin.proxy-resources.dashboarr.targets[0].method: http
|
|
pangolin.proxy-resources.dashboarr.targets[0].hostname: 192.168.10.144
|
|
pangolin.proxy-resources.dashboarr.targets[0].healthcheck.hostname: 192.168.10.144
|
|
pangolin.proxy-resources.dashboarr.targets[0].healthcheck.port: 4231
|
|
pangolin.proxy-resources.dashboarr.targets[0].healthcheck.enabled: true
|
|
pangolin.proxy-resources.dashboarr.auth.sso-enabled: false
|
|
pangolin.proxy-resources.dashboarr.rules[0].match: region
|
|
pangolin.proxy-resources.dashboarr.rules[0].action: allow
|
|
pangolin.proxy-resources.dashboarr.rules[0].value: EU
|
|
pangolin.proxy-resources.dashboarr.rules[1].match: ip
|
|
pangolin.proxy-resources.dashboarr.rules[1].action: allow
|
|
pangolin.proxy-resources.dashboarr.rules[1].value: 172.21.0.1
|
|
pangolin.proxy-resources.dashboarr.rules[2].match: country
|
|
pangolin.proxy-resources.dashboarr.rules[2].action: deny
|
|
pangolin.proxy-resources.dashboarr.rules[2].value: ALL
|
|
environment:
|
|
- NODE_ENV=production
|
|
- LOG_LEVEL=info
|
|
# Public URL your phone will use to reach the backend.
|
|
# When set the pairing QR encodes both the URL and token so the app
|
|
# can pair in a single scan. When omitted the QR only contains the
|
|
# token and you enter the URL manually in the app.
|
|
- PUBLIC_URL=https://dashboarr.arnoutvw.nl
|
|
# Enable if behind a reverse proxy (Caddy, Nginx, Traefik) so
|
|
# rate limiting uses the real client IP from X-Forwarded-For.
|
|
- TRUST_PROXY=true
|
|
# Poll Expo for push delivery receipts (rarely needed).
|
|
# - PUSH_RECEIPTS=true
|
|
# Consecutive failed health checks (30s each) before "service offline"
|
|
# notification. Default 3 (~1.5 min). Set to 10 for ~5 min tolerance.
|
|
# - OFFLINE_THRESHOLD=10
|
|
# Route service polls via remoteUrl instead of localUrl. The app's own
|
|
# useRemote flag is always ignored server-side. Default false (backend
|
|
# on LAN). Flip to true only if the backend lives off-LAN.
|
|
# - BACKEND_USE_REMOTE=false
|
|
|
|
|