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).
326 lines
8.6 KiB
YAML
326 lines
8.6 KiB
YAML
version: "3.6"
|
|
services:
|
|
CloudCommander:
|
|
container_name: "CloudCommander"
|
|
entrypoint:
|
|
- "/usr/src/cloudcmd/bin/cloudcmd.js"
|
|
environment:
|
|
- "TZ=Europe/Berlin"
|
|
- "cloudcmd_terminal=true"
|
|
- "cloudcmd_terminal_path=gritty"
|
|
- "cloudcmd_open=false"
|
|
image: "coderaiser/cloudcmd:19.21.1"
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.cloudcommander.rule=Host(`cloudcommander.arnoutvw.nl`)
|
|
- traefik.http.services.cloudcommander.loadbalancer.server.port=8000
|
|
ipc: "private"
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-file: "1"
|
|
max-size: "50m"
|
|
network_mode: "bridge"
|
|
ports:
|
|
- "8765:8000/tcp"
|
|
restart: "unless-stopped"
|
|
user: "99:100"
|
|
volumes:
|
|
- "/mnt/user/appdata/cloudcmd:/root"
|
|
- "/mnt:/UNRAID"
|
|
working_dir: "/"
|
|
|
|
|
|
FileFlows:
|
|
container_name: "FileFlows"
|
|
devices:
|
|
- "/dev/dri:/dev/dri"
|
|
entrypoint:
|
|
- "/app/docker-entrypoint.sh"
|
|
environment:
|
|
- "PUID=99"
|
|
- "PGID=100"
|
|
- "TZ=Europe/Berlin"
|
|
- "NVIDIA_VISIBLE_DEVICES=all"
|
|
- "NVIDIA_DRIVER_CAPABILITIES=compute,video,utility"
|
|
- "CA_TS_FALLBACK_DIR=/app/Data"
|
|
- "DOTNET_CLI_TELEMETRY_OPTOUT=true"
|
|
image: "revenz/fileflows:26.09"
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.fileflows.rule=Host(`fileflows.arnoutvw.nl`)
|
|
- traefik.http.services.fileflows.loadbalancer.server.port=5000
|
|
ipc: "private"
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-file: "1"
|
|
max-size: "50m"
|
|
network_mode: "bridge"
|
|
ports:
|
|
- "8581:5000/tcp"
|
|
restart: "unless-stopped"
|
|
volumes:
|
|
- "/mnt/cache/temp/fileflows:/temp"
|
|
- "/mnt/user/appdata/fileflows/data:/app/Data"
|
|
- "/mnt/user/appdata/fileflows/logs:/app/Logs"
|
|
- "/mnt/user:/media"
|
|
working_dir: "/app"
|
|
|
|
|
|
QDirStat:
|
|
container_name: "QDirStat"
|
|
environment:
|
|
- "USER_ID=99"
|
|
- "GROUP_ID=100"
|
|
- "UMASK=000"
|
|
- "X11VNC_EXTRA_OPTS="
|
|
- "TZ=Europe/Berlin"
|
|
- "APP_NICENESS="
|
|
- "DISPLAY_WIDTH=1920"
|
|
- "DISPLAY_HEIGHT=1080"
|
|
- "SECURE_CONNECTION=0"
|
|
- "SECURE_CONNECTION_VNC_METHOD=SSL"
|
|
- "SECURE_CONNECTION_CERTS_CHECK_INTERVAL=60"
|
|
- "WEB_LOCALHOST_ONLY=0"
|
|
- "VNC_LOCALHOST_ONLY=0"
|
|
- "WEB_LISTENING_PORT=5800"
|
|
- "VNC_LISTENING_PORT=5900"
|
|
- "VNC_PASSWORD="
|
|
- "ENABLE_CJK_FONT=0"
|
|
- "WEB_AUDIO=0"
|
|
- "WEB_AUTHENTICATION=0"
|
|
- "SUP_GROUP_IDS="
|
|
- "KEEP_APP_RUNNING=0"
|
|
image: "jlesage/qdirstat:v26.09.1"
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.qdirstat.rule=Host(`qdirstat.arnoutvw.nl`)
|
|
- traefik.http.services.qdirstat.loadbalancer.server.port=5800
|
|
ipc: "private"
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-file: "1"
|
|
max-size: "50m"
|
|
network_mode: "bridge"
|
|
ports:
|
|
- "7815:5800/tcp"
|
|
- "7915:5900/tcp"
|
|
restart: "unless-stopped"
|
|
volumes:
|
|
- "/mnt/user/appdata/QDirStat:/config"
|
|
- "/mnt/user:/storage"
|
|
- "/mnt:/unraid"
|
|
working_dir: "/tmp"
|
|
|
|
|
|
StirlingPDF:
|
|
container_name: "StirlingPDF"
|
|
entrypoint:
|
|
- "tini"
|
|
- "--"
|
|
- "/scripts/init.sh"
|
|
environment:
|
|
- "DOCKER_ENABLE_SECURITY=false"
|
|
- "SYSTEM_ROOT_URI_PATH=/"
|
|
- "SYSTEM_GOOGLEVISIBILITY=false"
|
|
- "SYSTEM_DEFAULT_LOCALE=nl_NL"
|
|
- "METRICS_ENABLED=true"
|
|
- "SYSTEM_CONNECTIONTIMEOUTMINUTES=3000000"
|
|
- "CA_TS_FALLBACK_DIR=/usr/share/tesseract-ocr/5/tessdata"
|
|
- "TESS_BASE_PATH=/usr/share/tesseract-ocr/5/tessdata"
|
|
- "TZ=Europe/Berlin"
|
|
- "PUID=1000"
|
|
- "PGID=1000"
|
|
- "UMASK=022"
|
|
- "STIRLING_TEMPFILES_DIRECTORY=/tmp/stirling-pdf"
|
|
- "TMPDIR=/tmp/stirling-pdf"
|
|
- "TEMP=/tmp/stirling-pdf"
|
|
- "TMP=/tmp/stirling-pdf"
|
|
image: "frooodle/s-pdf:3.0.2"
|
|
ipc: "private"
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-file: "1"
|
|
max-size: "50m"
|
|
network_mode: "bridge"
|
|
ports:
|
|
- "8876:8080/tcp"
|
|
restart: "unless-stopped"
|
|
volumes:
|
|
- "/mnt/cache/appdata/Stirling-PDF/OCR:/usr/share/tesseract-ocr/5/tessdata"
|
|
- "/mnt/cache/appdata/Stirling-PDF/configs:/configs"
|
|
- "/mnt/cache/appdata/Stirling-PDF/customFiles:/customFiles"
|
|
working_dir: "/app"
|
|
|
|
|
|
binhex-krusader:
|
|
container_name: "binhex-krusader"
|
|
command:
|
|
- "/bin/bash"
|
|
- "/usr/bin/init.sh"
|
|
entrypoint:
|
|
- "/usr/bin/dumb-init"
|
|
- "--"
|
|
environment:
|
|
- "PGID=100"
|
|
- "HTTPS_CERT_PATH="
|
|
- "HEALTHCHECK_COMMAND="
|
|
- "ENABLE_STARTUP_SCRIPTS=no"
|
|
- "HEALTHCHECK_ACTION="
|
|
- "UMASK=000"
|
|
- "TZ=Europe/Berlin"
|
|
- "VNC_PASSWORD="
|
|
- "WEBPAGE_TITLE=Krusader"
|
|
- "WEBUI_PORT=6080"
|
|
- "PUID=99"
|
|
- "TEMP_FOLDER=/config/home/.config/krusader/tmp"
|
|
- "HOME=/home/nobody"
|
|
- "TERM=xterm"
|
|
- "LANG=en_GB.UTF-8"
|
|
image: "ghcr.io/binhex/arch-krusader:2.9.0-2-01"
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.binhex-krusader.rule=Host(`binhex-krusader.arnoutvw.nl`)
|
|
- traefik.http.services.binhex-krusader.loadbalancer.server.port=6080
|
|
ipc: "private"
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-file: "1"
|
|
max-size: "50m"
|
|
network_mode: "bridge"
|
|
ports:
|
|
- "5900:5900/tcp"
|
|
- "6080:6080/tcp"
|
|
privileged: true
|
|
restart: "always"
|
|
security_opt:
|
|
- "label=disable"
|
|
volumes:
|
|
- "/mnt/cache/appdata/binhex-krusader:/config"
|
|
- "/mnt/user:/media"
|
|
working_dir: "/"
|
|
|
|
|
|
dockersocket:
|
|
container_name: "dockersocket"
|
|
entrypoint:
|
|
- "docker-entrypoint.sh"
|
|
command:
|
|
- "haproxy"
|
|
- "-f"
|
|
- "/tmp/haproxy.cfg"
|
|
environment:
|
|
- "POST=0"
|
|
- "TZ=Europe/Berlin"
|
|
- "CONTAINERS=1"
|
|
- "ALLOW_RESTARTS=0"
|
|
- "ALLOW_STOP=0"
|
|
- "ALLOW_START=0"
|
|
- "AUTH=0"
|
|
- "EVENTS=1"
|
|
- "EXEC=0"
|
|
- "INFO=0"
|
|
- "LOG_LEVEL=info"
|
|
- "PING=1"
|
|
- "SECRETS=0"
|
|
- "SOCKET_PATH=/var/run/docker.sock"
|
|
- "VERSION=1"
|
|
image: "ghcr.io/tecnativa/docker-socket-proxy:v0.5.0"
|
|
ipc: "private"
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-file: "1"
|
|
max-size: "50m"
|
|
network_mode: "bridge"
|
|
restart: "unless-stopped"
|
|
user: "root"
|
|
volumes:
|
|
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
|
working_dir: "/var/lib/haproxy"
|
|
|
|
|
|
duplicati:
|
|
container_name: "duplicati"
|
|
entrypoint:
|
|
- "/init"
|
|
environment:
|
|
- "PUID=99"
|
|
- "PGID=100"
|
|
- "TZ=Europe/Berlin"
|
|
- "TMPDIR=/run/duplicati-temp"
|
|
- "DUPLICATI__REQUIRE_DB_ENCRYPTION_KEY=true"
|
|
- "DUPLICATI__SERVER_DATAFOLDER=/config"
|
|
- "DUPLICATI__WEBSERVICE_PORT=8200"
|
|
- "DUPLICATI__WEBSERVICE_INTERFACE=any"
|
|
- "DUPLICATI__WEBSERVICE_ALLOWED_HOSTNAMES=*"
|
|
image: "linuxserver/duplicati:v2.4.0.0_stable_2026-09-03-ls310"
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.duplicati.rule=Host(`duplicati.arnoutvw.nl`)
|
|
- traefik.http.services.duplicati.loadbalancer.server.port=8200
|
|
ipc: "private"
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-file: "1"
|
|
max-size: "50m"
|
|
network_mode: "bridge"
|
|
ports:
|
|
- "8200:8200/tcp"
|
|
restart: "unless-stopped"
|
|
volumes:
|
|
- "/mnt/cache/duplicatitmp:/tmp"
|
|
- "/mnt/user/Backups:/backups"
|
|
- "/mnt/user/Backups:/source"
|
|
- "/mnt/user/appdata/duplicati:/config"
|
|
- "/mnt/user:/unraid"
|
|
working_dir: "/"
|
|
|
|
|
|
chrome:
|
|
container_name: "chrome"
|
|
entrypoint:
|
|
- "/init"
|
|
environment:
|
|
- "PUID=99"
|
|
- "PGID=100"
|
|
- "UMASK=022"
|
|
- "TZ=Europe/Berlin"
|
|
- "CHROME_CLI=https://www.linuxserver.io/"
|
|
- "TITLE=Chrome"
|
|
- "START_DOCKER=true"
|
|
- "DISPLAY=:1"
|
|
- "PULSE_RUNTIME_PATH=/defaults"
|
|
- "SELKIES_ENCODER=x264enc,jpeg"
|
|
- "SELKIES_ENABLE_BASIC_AUTH=false"
|
|
- "SELKIES_ALLOWED_ORIGINS=*"
|
|
- "SELKIES_VIDEO_STREAMING_MODE=false"
|
|
- "NO_GAMEPAD=true"
|
|
- "PIXELFLUX_WAYLAND=true"
|
|
- "DISABLE_DRI3=false"
|
|
- "DISABLE_ZINK=false"
|
|
image: "lscr.io/linuxserver/chrome:154.0.8037.97-1-ls127"
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.http.routers.chrome.rule=Host(`chrome.arnoutvw.nl`)
|
|
- traefik.http.services.chrome.loadbalancer.server.port=3000
|
|
ipc: "private"
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-file: "1"
|
|
max-size: "50m"
|
|
network_mode: "bridge"
|
|
ports:
|
|
- "3033:3000/tcp"
|
|
- "3034:3001/tcp"
|
|
restart: "unless-stopped"
|
|
volumes:
|
|
- "/mnt/cache/appdata/chrome:/config"
|
|
working_dir: "/"
|