UGREEN NAS: JDownloader 2 mit Docker einrichten
Teil 86 der UGREEN-Serie: JDownloader 2 als Docker-Projekt mit eigenem Konto einrichten, Links sammeln und laden, Dateien prüfen und die Weboberfläche mit HTTPS und Passwort schützen.
Werbung Mit * markierte Links sind Werbelinks: Bei einem Kauf erhalten wir eine Provision, der Preis bleibt gleich. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Mehr dazu

JDownloader 2 lädt Dateien von Webseiten und Filehostern, sammelt Links aus Texten und arbeitet Warteschlangen ab. Auf der UGREEN NAS läuft er als Docker-Container und lädt weiter, auch wenn Ihr Rechner aus ist. Die Oberfläche öffnen Sie im Browser. Diese Anleitung richtet JDownloader mit der Docker-App von UGOS Pro ein: mit eigenem Konto für die Dateien, deutscher Oberfläche, einem ersten Download samt Prüfung und einem Passwort vor der Weboberfläche.
Voraussetzungen
- Die App Docker ist installiert, siehe Teil 63, und Sie kennen das Anlegen eines Projekts aus Teil 64.
- Ein eigenes Konto für Container wie dockeruser, siehe Teil 65. Die IDs zeigt per SSH der Befehl
id dockeruserbei uid und gid. Auf unserer NAS hat das Konto die 1001, die Gruppe users die 100. - Ein freigegebener Ordner für Downloads, siehe Teil 25. dockeruser braucht dort Lesen/Schreiben.
- Ein SSH-Zugang für Ordner und Prüfsumme, siehe Teil 52.
Schritt 1: Ordner vorbereiten
JDownloader speichert Programmdateien, Einstellungen und Download-Listen im Ordner config. Legen Sie ihn im Projektordner auf dem SSD-Volume an und stellen Sie ihn auf Linux-Rechte für dockeruser um, wie in Teil 65 erklärt. Passen Sie volume2 und die ID 1001 an Ihre NAS an:
sudo mkdir -p /volume2/docker/jdownloader/config
sudo chown 1001:100 /volume2/docker/jdownloader/config
sudo chmod 750 /volume2/docker/jdownloader/configls -ln /volume2/docker/jdownloader zeigt bei config 1001 und 100 als Besitzer und Gruppe.
Für die Downloads nehmen wir in diesem Beispiel die Freigabe Download auf volume1. Geben Sie dockeruser auf diesem Ordner das Recht Lesen/Schreiben, wie in Teil 65 beschrieben. JDownloader sieht nur, was Sie ihm in der Compose-Datei geben, hier also nur config und Download.
Schritt 2: Projekt in der Docker-App anlegen
Öffnen Sie in der App Docker den Bereich Projekt und klicken Sie auf Erstellen. Geben Sie als Namen jdownloader ein, so wie der Ordner aus Schritt 1, und wählen Sie diesen Ordner als Speicherpfad. Bei uns stand der passende Ordner nach dem Klick in das Feld schon drin, weil er so heißt wie das Projekt. In das Feld Compose-Konfiguration kommt diese Datei:
services:
jdownloader:
image: jlesage/jdownloader-2:v26.09.1
container_name: jdownloader
environment:
- TZ=Europe/Berlin
- USER_ID=1001
- GROUP_ID=100
- UMASK=0002
- LANG=de_DE.UTF-8
- DISPLAY_WIDTH=1280
- DISPLAY_HEIGHT=768
- JDOWNLOADER_MAX_MEM=1G
ports:
- "192.168.1.10:5800:5800"
volumes:
- ./config:/config
- /volume1/Download:/output
restart: unless-stopped
Die Zeilen im Einzelnen:
- image mit Versionsnummer: So bestimmen Sie selbst, wann der Container aktualisiert wird, siehe Teil 69. Die Versionen stehen auf Docker Hub beim Image jlesage/jdownloader-2.
- USER_ID und GROUP_ID: die IDs von dockeruser und der Gruppe users. Dieses Image nennt die Variablen so und nicht PUID und PGID, wie es UGOS neben dem Editor vorschlägt.
- UMASK=0002: neue Dateien sind für Besitzer und Gruppe schreibbar, für alle anderen nur lesbar.
- LANG=de_DE.UTF-8: Damit startete die Oberfläche bei uns gleich auf Deutsch.
- DISPLAY_WIDTH und DISPLAY_HEIGHT: die Größe des Fensters, das Sie im Browser sehen.
- JDOWNLOADER_MAX_MEM: die Obergrenze für den Arbeitsspeicher von Java. Mit 1G meldete JDownloader ein Maximum von 910,5 MiB.
- ports: nur die Weboberfläche auf Port 5800, und nur an der Adresse der NAS. Die NAS braucht dafür eine feste IP-Adresse, siehe Teil 9. Den VNC-Port 5900 und Port 3129 veröffentlichen Sie nicht, solange Sie sie nicht brauchen.
- /output: Unter diesem Pfad sieht JDownloader Ihren Download-Ordner. Er ist auch das Standardziel.
Bis Schritt 8 ist die Oberfläche ohne Passwort im Heimnetz erreichbar. Richten Sie den Schutz ein, bevor Sie JDownloader dauerhaft nutzen. Lassen Sie den Haken bei Nach der Erstellung sofort ausführen gesetzt und klicken Sie auf Bereitstellen. Das Bereitstellungsprotokoll meldet das geladene Image, ein neues Netzwerk und den Container. Danach steht das Projekt mit In Betrieb in der Liste:

Im Projekt unter Container zeigt die Docker-App Image jlesage/jdownloader-2 und die Versionsnummer v26.09.1.
Schritt 3: Oberfläche öffnen
Öffnen Sie im Browser http://192.168.1.10:5800 mit der Adresse Ihrer NAS. Sie sehen das JDownloader-Fenster direkt im Browser. Beim ersten Start lädt JDownloader seine aktuellen Programmdateien von den Servern des Herstellers nach. In unserem Test meldete er danach ein Erstellungsdatum vom 4. November 2026, obwohl das Image vom 22. September stammt. Die Aktualisierungen landen im Ordner config. Nach dem Neu bereitstellen in Schritt 8 meldete JDownloader dasselbe Erstellungsdatum, ohne erneut zu laden.

Im Menü Hilfe unter Über JDownloader steht bei Environment der Eintrag DOCKER.
Schritt 4: Links hinzufügen
Klicken Sie unten links auf Neue Links hinzufügen. Beim ersten Mal erklärt ein Hinweis den Ablauf, schließen Sie ihn mit Ok. Fügen Sie in das obere Feld einen oder mehrere Links ein, getrennt durch Leerzeichen. Als Ziel ist /output vorbelegt. Für den Test haben wir das Installationsabbild von Debian und die Prüfsummendatei SHA256SUMS eingetragen.

Nach Fortsetzen prüft JDownloader die Links und legt sie im Reiter Linksammler ab, noch ohne zu laden. Jede Datei landet in einem Paket. Ab Werk legt JDownloader für jedes Paket einen eigenen Unterordner an, das Abbild kam also nach /output/debian-13.7.0-amd64-netinst.

Die Prüfsummendatei fehlte im Linksammler. Manche direkten Links, wie hier die Textdatei SHA256SUMS, übernimmt JDownloader nicht als Download. Setzen Sie in so einem Fall directhttp:// vor die Adresse, also directhttp://https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/SHA256SUMS. So kam die Datei als eigenes Paket an:

Im Linksammler steht bei jeder Datei unter Verfügbarkeit ein grüner Haken mit online.
Schritt 5: Download starten und prüfen
Klicken Sie im Linksammler unten rechts auf Alle Downloads starten. Die Pakete wechseln in den Reiter Download. In unserem Netz lief das Debian-Abbild mit gut 30 MiB/s und war nach weniger als einer Minute fertig.

Prüfen Sie wichtige Dateien mit der Prüfsumme des Anbieters. Per SSH auf der NAS wechseln Sie in den Paketordner und lassen sha256sum mit der geladenen Liste rechnen. Weil die Liste in ihrem eigenen Paketordner liegt, zeigt der Pfad eine Ebene höher:
cd /volume1/Download/debian-13.7.0-amd64-netinst
sha256sum -c --ignore-missing ../SHA256SUMS/SHA256SUMSDie Ausgabe endet mit debian-13.7.0-amd64-netinst.iso: OK. Die Option --ignore-missing überspringt die übrigen Abbilder aus der Liste, die Sie nicht geladen haben.
Mit ls -ln sehen Sie, wem die Dateien gehören. Bei uns waren es 1001 und 100, also dockeruser und die Gruppe users. Das ist der Vorteil gegenüber der App Downloads von UGREEN aus Teil 85, deren Dateien dem Systembenutzer root gehörten. Die Rechte auf dem Ordner Download vererbt UGOS weiter auf die neuen Dateien, die Benutzer der Freigabe kommen also wie gewohnt heran.
Im Reiter Download steht bei beiden Paketen Fertiggestellt und 100 %.
Schritt 6: Die wichtigsten Einstellungen
Das Menü Einstellungen enthält oben die Schnellwerte. Ab Werk lädt JDownloader höchstens 3 Dateien gleichzeitig, mit 1 Verbindung je Datei. Ein Geschwindigkeitslimit von 50 KiB/s ist vorbelegt, aber nicht eingeschaltet. Wenn die Downloads Ihren Anschluss nicht ausbremsen sollen, tragen Sie zuerst einen passenden Wert ein, etwa die Hälfte Ihrer Leitung, und setzen dann den Haken. Mit dem vorbelegten Wert wären die Downloads sehr langsam.

Unter Einstellungen, Allgemein stehen das Downloadverzeichnis und das Verhalten bei Konflikten. Wenn eine Datei schon vorhanden ist, fragt JDownloader ab Werk bei jeder Datei nach. Downloads startet er beim Programmstart nur dann selbst, wenn sie beim letzten Beenden liefen. Ab Werk an ist auch der automatische Hashcheck: JDownloader prüft geladene Dateien, wenn eine Prüfsumme bekannt ist, etwa aus einer SFV-Datei.

Die Unterordner je Paket kommen vom Paketverwalter. Dort ist die vordefinierte Regel Unterordner nach Paketnamen erstellen aktiv. Nehmen Sie den Haken heraus, landen neue Pakete direkt in /output.

Unter Einstellungen, Allgemein steht als Downloadverzeichnis /output.
Schritt 7: My.JDownloader nur bei Bedarf
Unter Einstellungen, My.JDownloader verbinden Sie den Container mit einem Konto beim Dienst My.JDownloader des Herstellers. Darüber steuern Sie JDownloader per App oder Browser-Erweiterung, auch von unterwegs. Ab Werk ist nichts verbunden. Im Heimnetz reicht die Oberfläche im Browser. Wer den Dienst nutzen will, legt das Konto unter my.jdownloader.org an und trägt E-Mail und Passwort hier ein. Für eine direkte Verbindung im Heimnetz nutzen Apps und Erweiterung laut Dokumentation des Images Port 3129 des Containers. Den veröffentlichen Sie dann zusätzlich mit derselben Nummer auf beiden Seiten, also "192.168.1.10:3129:3129".

Ohne Konto steht unter Einstellungen, My.JDownloader der Status Nicht verbunden.
Schritt 8: Weboberfläche mit Passwort schützen
Ohne weitere Einstellungen kann jeder in Ihrem Heimnetz die Oberfläche auf Port 5800 öffnen und Downloads starten, ohne Anmeldung. Das Image bringt eine Anmeldeseite mit. Sie verlangt HTTPS, das der Container mit einem selbst erstellten Zertifikat bereitstellt. Legen Sie Benutzername und Passwort per SSH in einer Datei .env im Projektordner ab, die nur root lesen darf:
sudo nano /volume2/docker/jdownloader/.env
sudo chmod 600 /volume2/docker/jdownloader/.envIn die Datei gehören zwei Zeilen mit Ihren eigenen Werten. Verwenden Sie im Passwort kein Dollarzeichen, Docker Compose würde es als Variable lesen:
JD_WEB_USER=ihr-benutzername
JD_WEB_PASSWORD=ein-langes-eigenes-passwortÖffnen Sie dann in der Docker-App das Projekt, den Reiter Compose-Konfiguration, und ergänzen Sie unter environment vier Zeilen:
- SECURE_CONNECTION=1
- WEB_AUTHENTICATION=1
- WEB_AUTHENTICATION_USERNAME=${JD_WEB_USER}
- WEB_AUTHENTICATION_PASSWORD=${JD_WEB_PASSWORD}
Klicken Sie auf Neu bereitstellen. Der Dialog meldet, dass ein erneutes Bereitstellen nicht mehr benötigte Container und Images entfernt. Das betrifft die alte Fassung dieses Projekts. Die Option Das neueste Image abrufen brauchen Sie dafür nicht. Bestätigen Sie mit Bereitstellen. Der Container wird in wenigen Sekunden neu erstellt. Ab jetzt leitet http://192.168.1.10:5800 auf https:// um. Der Browser warnt beim ersten Aufruf vor dem Zertifikat, weil es der Container selbst ausgestellt hat. Nach der Bestätigung erscheint die Anmeldeseite:

Die Werte aus .env stehen nach dem Start im Klartext in den Umgebungsvariablen des Containers, docker inspect zeigt sie an. Wer Docker auf der NAS bedienen darf, kann das Passwort also lesen. Nehmen Sie deshalb kein Passwort, das Sie anderswo verwenden. Laut Dokumentation des Images geht es auch ohne Klartext: Lassen Sie die beiden Zeilen USERNAME und PASSWORD weg und legen Sie den Benutzer per SSH mit sudo docker exec -ti jdownloader webauth-user add ihr-benutzername an. Das Passwort landet dann verschlüsselt in der Datei webauth-htpasswd im Ordner config. Laut Dokumentation des Images gilt eine Anmeldung 24 Stunden, nach einem Neustart des Containers melden Sie sich neu an. Für VNC gilt die Anmeldeseite nicht, ein weiterer Grund, Port 5900 nicht zu veröffentlichen.
curl -k -I https://192.168.1.10:5800/ antwortet ohne Anmeldung mit 302 und der Weiterleitung auf /login/.
Auch mit Passwort gehört Port 5800 nicht ins Internet. Für den Zugriff von unterwegs nutzen Sie ein VPN wie WireGuard aus Teil 48.
Sichern und aktualisieren
Alles, was JDownloader weiß, liegt im Ordner config: Einstellungen, Konten, die Download- und die Linkliste. Sichern Sie ihn bei gestopptem Container, wie in Teil 61 beschrieben, zusammen mit der Compose-Datei und der .env. Die Programmdateien von JDownloader aktualisieren sich beim Start selbst. Für ein neues Image ändern Sie die Versionsnummer in der Compose-Konfiguration und stellen das Projekt neu bereit.

Typische Fehler
- JDownloader kann nicht in /output schreiben
Dann fehlt dockeruser das Recht Lesen/Schreiben auf der Freigabe. Prüfen Sie die Berechtigungen wie in Teil 65.
- Ein Link taucht im Linksammler nicht auf
Fügen Sie die Adresse mit dem Vorsatz
directhttp://erneut ein, wie bei SHA256SUMS in Schritt 4.- Port 5800 ist schon belegt
Ändern Sie nur die Zahl hinter der IP-Adresse, etwa
"192.168.1.10:5801:5800", und rufen Sie dann Port 5801 auf.- Der Container startet nicht mehr
Hat die NAS eine neue IP-Adresse bekommen, passt die Adresse unter ports nicht mehr. Tragen Sie die aktuelle ein oder geben Sie der NAS eine feste Adresse.
- Dateien liegen in Unterordnern
Das ist die Regel Unterordner nach Paketnamen erstellen im Paketverwalter.
- Der Browser warnt vor dem Zertifikat
Das ist bei SECURE_CONNECTION=1 normal, das Zertifikat stellt der Container selbst aus.
Häufige Fragen
Ist JDownloader legal?
Das Programm selbst ja. Entscheidend ist, was Sie laden. Laden Sie nur Inhalte, die Sie laden dürfen, etwa freie Software wie das Debian-Abbild aus dieser Anleitung.
JDownloader oder die App Downloads?
Die App Downloads aus Teil 85 ist schneller eingerichtet und kann BitTorrent. JDownloader erkennt Links auf vielen Webseiten und Filehostern, sammelt sie in Paketen und legt die Dateien mit den Rechten von dockeruser ab. Für einzelne HTTP-Downloads reicht die App, für viele Links von verschiedenen Seiten ist JDownloader das bessere Werkzeug.
Wie viel Arbeitsspeicher braucht JDownloader?
Die Docker-App zeigte kurz nach dem Start rund 620 MB, später lag der Verbrauch bei etwa 440 MiB. Mit JDOWNLOADER_MAX_MEM begrenzen Sie den Speicher für Java.
Brauche ich ein Konto bei My.JDownloader?
Nein. Im Heimnetz bedienen Sie JDownloader über den Browser. Das Konto brauchen Sie nur für die Apps und die Browser-Erweiterung.
Kann ich JDownloader über Tor oder ein VPN laden lassen?
Ja, mit einem vorgeschalteten Container. Wie das mit Docker geht, zeigt die Anleitung JDownloader über Tor mit Docker.
Fazit
Mit der Docker-App steht JDownloader in wenigen Minuten auf der UGREEN NAS. Ein eigenes Konto sorgt für saubere Rechte an den Dateien, die Versionsnummer im Image für planbare Updates. Schalten Sie HTTPS und die Anmeldung ein, bevor Sie JDownloader dauerhaft nutzen, und prüfen Sie wichtige Dateien mit der Prüfsumme des Anbieters.


