Zum Hauptinhalt springen
S-EDV news
← Alle Anleitungen
📘 Anleitung UGREEN NAS 07.11.2026 · 12 min Lesezeit Geprüft 07.11.2026

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

Titelbild: JDownloader mit Docker auf der UGREEN NAS, Teil 86 der Serie UGREEN by S-EDV Anleitung

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 dockeruser bei 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/config

ls -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

Docker-App Projekt erstellen mit Name, Speicherpfad und Compose-Konfiguration für JDownloaderProjekt erstellen, im Bild heißen Testprojekt und Container s-edv-jdownloader statt jdownloader: 1 Name, 2 Speicherpfad im Ordner docker, 3 Compose-Konfiguration. Unten rechts folgt Bereitstellen.

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:

Projektliste der Docker-App mit dem laufenden JDownloader-ProjektProjektliste: 1 das neue Projekt mit In Betrieb und einem laufenden Container.

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.

JDownloader-Oberfläche im Browser mit Reitern und Neue Links hinzufügenJDownloader im Browser: 1 die Reiter Download, Linksammler und Spenden, 2 Neue Links hinzufügen.

Im Menü Hilfe unter Über JDownloader steht bei Environment der Eintrag DOCKER.

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.

Dialog Links analysieren und hinzufügen mit Linkfeld, Zielordner und FortsetzenLinks analysieren und hinzufügen: 1 Feld für die Links, 2 Zielordner /output, 3 Fortsetzen.

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.

Linksammler mit dem Debian-Abbild und Zielordner im UnterordnerLinksammler: 1 Paket mit dem Debian-Abbild, daneben Größe und Verfügbarkeit, 2 Zielordner mit Unterordner nach Paketnamen.

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:

Linksammler mit der Prüfsummendatei als eigenem PaketLinksammler: 1 die Prüfsummendatei als eigenes Paket, 302 B, nach dem Vorsatz directhttp://.

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.

Laufender Download mit Geschwindigkeit und FortschrittDownload läuft: 1 Geschwindigkeit, Restzeit und Fortschritt.

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/SHA256SUMS

Die 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.

Menü Einstellungen mit gleichzeitigen Downloads und GeschwindigkeitslimitMenü Einstellungen: 1 alle Einstellungen, 2 gleichzeitige Downloads, 3 Geschwindigkeitslimit, ab Werk aus.

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.

Allgemeine Einstellungen mit Downloadverzeichnis, Dateikonflikt, Autostart und HashcheckAllgemein: 1 Downloadverzeichnis /output, 2 Wenn die Datei schon vorhanden ist, 3 Downloads automatisch starten, 4 SFV/CRC-Check.

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.

Paketverwalter mit der Regel Unterordner nach Paketnamen erstellenPaketverwalter: 1 Regel Unterordner nach Paketnamen erstellen.

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".

Einstellungen My.JDownloader mit Konto, Gerätename und StatusMy.JDownloader: 1 E-Mail und Passwort, 2 Gerätename, 3 Status Nicht verbunden.

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/.env

In 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}

Compose-Konfiguration mit HTTPS und Anmeldung für die WeboberflächeCompose-Konfiguration im Projekt: 1 HTTPS und Anmeldung, die Zugangsdaten kommen aus der Datei .env.

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:

Anmeldeseite der JDownloader-WeboberflächeAnmeldeseite des Containers: 1 Benutzername und Passwort aus der Datei .env.

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.

Dialog Über JDownloader mit Erstellungsdatum, Arbeitsspeicher und Docker-UmgebungÜber JDownloader: 1 Erstellungsdatum nach der Selbstaktualisierung, 2 Arbeitsspeicher mit dem Maximum aus JDOWNLOADER_MAX_MEM, 3 Umgebung DOCKER.

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

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.

Weiterführende Anleitungen und Quellen

UGREENUGREEN NASJDownloaderDockerUGOS ProDownload-Manager