2 Konfiguration
Ralf Warmuth edited this page 2026-07-17 01:06:21 +02:00

Konfiguration

Alle produktiven Einstellungen liegen in /opt/ntfy-downloader/.env. Nach einer Änderung müssen die betroffenen Container neu erstellt werden:

docker compose -f compose.image.yaml up -d --force-recreate

ntfy und Downloads

Variable Standard Bedeutung
NTFY_BASE_URL erforderlich Basis-URL des ntfy-Servers ohne abschließenden Slash
NTFY_TOPIC erforderlich Topic für Eingang und Statusmeldungen
NTFY_USERNAME erforderlich Basic-Auth-Benutzer des Topics
NTFY_PASSWORD erforderlich Basic-Auth-Passwort des Topics
DOWNLOAD_DIR ./downloads Host-Verzeichnis, das nach /downloads gemountet wird
JOB_DATABASE ./state/jobs.sqlite3 Pfad ohne Docker; Compose setzt intern /state/jobs.sqlite3
DOWNLOAD_TIMEOUT 3600 Maximale Laufzeit eines Downloads in Sekunden
NOTIFY_ON_START true Meldung beim Start eines Downloads senden
LOG_LEVEL INFO DEBUG, INFO, WARNING oder ERROR

Das Topic ist gleichzeitig Eingangs- und Rückmeldekanal. Eigene Meldungen des Downloaders werden anhand ihres Titels ignoriert, damit keine Schleife entsteht.

yt-dlp

Variable Standard Bedeutung
YTDLP_FORMAT leer Benutzerdefinierter yt-dlp-Format-String; leer nutzt den yt-dlp-Default
YTDLP_OUTPUT_TEMPLATE %(title).120B [%(id)s].%(ext)s Relatives Ausgabeformat im Downloadverzeichnis
YTDLP_IMPERSONATE chrome Browser-TLS-Fingerprint; leer deaktiviert Impersonation

Das Standardtemplate begrenzt den Titel auf 120 Bytes und fügt die Quell-ID hinzu. Dadurch bleiben Dateinamen handhabbar und Downloads besser zuordenbar.

Web-UI

Variable Standard Bedeutung
WEBUI_USERNAME erforderlich Benutzername der Galerie
WEBUI_PASSWORD erforderlich Passwort und zugleich Schlüssel für signierte Links
WEBUI_PORT 2310 Auf dem Host veröffentlichter TCP-Port
WEBUI_PUBLIC_URL leer Von Clients erreichbare Basis-URL für ntfy-Links
WEBUI_DEFAULT_TAG leer Tag, den die Startseite ohne expliziten Filter zeigt
THUMB_MAX_AGE_DAYS 30 Alter für automatische Thumbnail-Bereinigung; 0 deaktiviert sie

WEBUI_PUBLIC_URL darf keinen abschließenden Slash enthalten. Für Teilen und ntfy-Benachrichtigungen muss die URL vom Zielgerät erreichbar sein, zum Beispiel:

WEBUI_PUBLIC_URL=https://videos.example.com

Clips und Exporte

Variable Standard Bedeutung
CLIPS_SUBDIR clips Zielordner für Videoausschnitte
CLIP_MAX_DURATION 600 Maximale Clipdauer in Sekunden
CLIP_TIMEOUT 120 Maximale ffmpeg-Laufzeit für Clips
GIFS_SUBDIR gifs Zielordner für GIFs
GIF_TIMEOUT 600 Maximale ffmpeg-Laufzeit für GIF-Erstellung
WHATSAPP_SUBDIR whatsapp Zielordner für WhatsApp-MP4s
WHATSAPP_TIMEOUT 120 Maximale ffmpeg-Laufzeit für WhatsApp-MP4s
WHATSAPP_SHARE_TTL 604800 Lebensdauer signierter Links, standardmäßig sieben Tage

GIF- und WhatsApp-Exporte sind unabhängig von den Variablen auf zehn Sekunden begrenzt.

Container-Ressourcen

Variable Standard Bedeutung
NTFY_DOWNLOADER_IMAGE_TAG latest Produktiv den vollständigen Commit-SHA verwenden
DOWNLOADER_UID 1000 Numerische Benutzer-ID beider Container
DOWNLOADER_GID 1000 Numerische Gruppen-ID beider Container
DOWNLOADER_MEMORY_LIMIT 2g Speicherlimit des Listeners
DOWNLOADER_CPU_LIMIT 2.0 CPU-Limit des Listeners
WEBUI_MEMORY_LIMIT 512m Speicherlimit der Web-UI inklusive ffmpeg
WEBUI_CPU_LIMIT 1.0 CPU-Limit der Web-UI inklusive ffmpeg

Die ffmpeg-Exporte laufen im Web-UI-Container. Zu enge CPU- oder Speicherlimits verlangsamen Exporte oder können zu Abbrüchen führen.

Beispiel

NTFY_BASE_URL=https://ntfy.example.com
NTFY_TOPIC=downloads
NTFY_USERNAME=downloader
NTFY_PASSWORD=<starkes-passwort>
DOWNLOAD_DIR=/mnt/media/downloads

WEBUI_USERNAME=galerie
WEBUI_PASSWORD=<anderes-starkes-passwort>
WEBUI_PORT=2310
WEBUI_PUBLIC_URL=https://videos.example.com
WEBUI_DEFAULT_TAG=Startseite

NTFY_DOWNLOADER_IMAGE_TAG=<vollstaendiger-commit-sha>
DOWNLOADER_UID=1000
DOWNLOADER_GID=1000

Keine echten Zugangsdaten in Wiki, Repository, Shell-History oder Supportausgaben kopieren.