Posts by bluejets

    Schade, bei mir klappt das nicht. Nach Starten des Containers muss noch irgendwas gemacht werden?

    Code
    DONE  Build complete. The dist directory is ready to be deployed. 
    INFO  Check out deployment instructions at https://cli.vuejs.org/guide/deployment.html

    Keine Ahnung was das bedeutet

    Dashy besteht Frontend besteht aus Vue. Die Meldung interpretiere ich so, dass das Frontend erfolgreich erstellt wurde. Du solltest also Dasy aufrufen können. Hast du die Config Datei im user-data Verzeichnis hinterlegt?

    Ich habe eine template Datei hochgeladen, die mit einer minimalen Konfiguration eigentlich immer laufen sollte.

    bluejets
    December 2, 2025 at 7:26 PM

    Hey, du willst dir ein schickes Start-Dashboard auf deinem UGREEN NAS bauen? Perfekt, dafür ist Dashy wie gemacht. In diesem kleinen How-To richten wir Dashy per Docker Compose ein, hängen eine eigene conf.yml dran und pimpen das Ganze mit ein paar netten Extras.

    1. Ordner auf dem NAS vorbereiten

    Bevor irgendwas läuft, braucht Dashy ein Zuhause auf deinem NAS. Keine Raketenwissenschaft, wir legen einfach einen Ordner an und packen da alles rein.

    • Auf deinem UGREEN NAS gibt es in der Regel schon den Ordner `/volume1/docker/`.
    • Darunter legst du einen neuen Ordner an, z.B. `/volume1/docker/dashy/`.
    • In diesem Ordner landen später `docker-compose.yml` und `conf.yml`.

    Die Dateien kannst du entweder per Dateimanager im NAS, per SMB-Freigabe oder über SSH anlegen, was dir am besten passt.

    2. Docker-Compose für Dashy bauen

    Jetzt bekommt Dashy seinen „Startknopf": Lade die Datei dashy.yml aus der Filebase herunter und passe diese an deine Gegebenheiten an. Kopiere sie anschließend in deinen docker-Ordner den du zuvor anlegen musst, z.B. /volume1/docker/dashy/.

    Hier gehts zum Download:

    Kurz aufgedröselt, was hier abgeht:

    • `lissy93/dashy:latest` holt dir direkt das offizielle Dashy-Image [web:8][web:27].
    • Über `8083:8080` erreichst du Dashy später im Browser unter `http://dein-nas:8083` [web:8].
    • Der Volume-Eintrag bindet deine `conf.yml` vom NAS in den Container ein, Dashy liest also wirklich deine Datei [web:5][web:12].
    • Mit `restart: unless-stopped` kommt der Container nach einem NAS-Neustart von allein wieder hoch [web:8].

    3. Erste conf.yml: schnell was sehen

    Ohne Config startet Dashy zwar, aber richtig Spaß macht es erst mit eigener Oberfläche. Also direkt im selben Ordner `/volume1/docker/dashy/` eine `conf.yml` anlegen:

    Damit hast du direkt ein Theme, deutschen Text und die ersten Kacheln, die auf dein NAS und deinen Router zeigen [web:5][web:6].

    4. Stack auf dem UGREEN NAS starten

    Wenn `docker-compose.yml` und `conf.yml` stehen, wird's Zeit für den ersten Start:

    • Im Web-Interface deines UGREEN NAS die Docker-Ansicht öffnen [web:23][web:26].
    • Einen neuen Stack / ein neues Projekt anlegen und den Ordner `/volume1/docker/dashy/` auswählen.
    • Den Stack starten (intern passiert `docker compose up -d`) [web:8].

    Gib Dashy ein paar Sekunden und ruf dann im Browser auf: `http://deine-nas-ip:8083`

    5. Dashy aufhübschen

    Jetzt, wo alles läuft, kannst du das Ding nach deinem Geschmack tunen:

    YAML
    appConfig:
    title: "Homelab Dashboard"
    theme: "nord-frost"
    language: "de"
    startingView: "default"
    statusCheck: true
    enableGuestAccess: true
    • Mit `theme` spielst du dich durch die verschiedenen Styles [web:5].
    • `statusCheck: true` zeigt Status-Punkte bei deinen Diensten [web:5].
    • `startingView` bestimmt die Startansicht (`default`, `minimal`, `workspace`) [web:33].

    6. Wenn es klemmt: schnelle Checks

    • Mountpfad korrekt? Muss `/app/user-data/conf.yml` im Container landen [web:5][web:12].
    • Dateiname wirklich `conf.yml` (ohne `.txt`)?
    • YAML-Einrückungen sauber (nur Spaces, keine Tabs)? [web:5]
    • Nach Änderungen Container neu starten.
    • Browser Hard-Reload machen (Strg+F5).

    7. Fertig!

    Damit steht dein Dashboard, jetzt noch deine Homelab-Dienste (Jellyfin, Paperless, etc.) dranhängen und loslegen!

    Quellen


    bluejets
    Vielleicht könnte man noch mit ins Tutorial aufnehmen, dass man die VPN Verbindung auch überprüfen kann, in dem man bei Portainer in die Container geht, dort über die "Quick Action" 'exec console' mit dem Befehl "curl ifconfig.me" einen Container überprüfen kann, der nicht über Gluetun läuft und einen der über Gluetun laufen sollte. Wenn man zwei verschiedene ip-Adressen erhält dann weiß ja man ziemlich sicher, dass es funktioniert - oder sehe ich das falsch?

    Das steht bereits im TUT :)

    Code
    - Nach dem Setup testen ob beide Container auf einen Curl (wget -qO- http://ipecho.net/plain) die selbe IP zurückgeben. Bei Nutzung eines VPN Providers, sollte diese sich von der eigenen IP unterscheiden, wenn man die URL im Browser abfragt.

    Danke dir bluejets , werde mir das die Tage mal ansehen :)

    Hier gibt ein ein tutorial, vielleicht hilft es ja auch bei qbitorrent.

    Jutsch80
    November 14, 2025 at 7:13 PM


    Hier ist eine Vorlage für ein compose file mit, nach meiner Ansicht, den wichtigsten Einstellungen:


    Ich stecke hier gerade fest und kämpfe (vermutlich) mit einem Konfig-Denkfehler (PS: musste auf WireGuard umschwenken, weil Glutetun hide.me nur als WireGuard Custom akzeptiert)

    Mein Problem: Verbindung steht, aber ich komme über den Port nicht auf WebUI von JD.


    Meine yaml:

    PS: den "bridge mode" bei Gluetun habe ich bewusst gesetzt, damit er mir kein zusätzliches Subnet aufmacht und das vorhandene nutzt.

    Das Hauptproblem ist folgendes:

    Wenn du bei JDownloader
    network_mode: service:gluetun
    benutzt, dann hängt JDownloader komplett am Netzwerk von Gluetun.

    Heißt:

    • JDownloader hat keine eigenen Ports
    • JDownloader benutzt die IP von Gluetun
    • und – ganz wichtig – die Firewall von Gluetun entscheidet, was rein darf

    Wenn Gluetun sagt „Nö, lass ich nicht rein“,
    dann kannst du drücken wie du willst – der Port bleibt dicht.
    Und genau das ist bei dir passiert.

    ALSO:
    Alle Ports, die du für JDownloader brauchst → müssen bei Gluetun freigegeben werden.
    Und Gluetun muss zusätzlich sagen: „Okay, ich lasse den Verkehr rein“.
    Das passiert über:

    Code
    FIREWALL_INBOUND_SUBNETS=0.0.0.0/0

    Ohne das → kommst du NIE auf die Weboberfläche.

    Dazu hast du noch ein kleines Problem in der Konfiguration:

    DNS=10.252.0.1 → das ist falsch.
    Richtig heißt es bei Gluetun:
    DNS_ADDRESS=10.252.0.1


    Hier eine korrgierte Version:


    Vielleicht hilft es ja :)

    johnmclane
    Klar hier ein paar ergänzungen zu deinen Fragen:

    • Das Wichtigste vorneweg: JDownloader läuft bei der ganzen Nummer immer im Netzwerk von Gluetun (`network_mode: service:gluetun`). Das ist Absicht, damit alles schön über den VPN geht. Also nicht wundern, wenn man den Container „einzeln“ nicht mehr direkt erreicht.
    • TUN-Device & NET_ADMIN:
      Damit der VPN überhaupt ins Rollen kommt, braucht Gluetun das kleine virtuelle Netzwerkgerät namens `tun`.
      – In der `docker-compose.yml` sorgt das hier dafür:
       
      Code
      cap_add:
          - NET_ADMIN
        devices:
          - /dev/net/tun:/dev/net/tun


      Ob das auf deinem NAS vorhanden ist, kannst du easy mit einem Befehl prüfen:

      Code
      ls -l /dev/net/tun


      Wenn da eine Zeile mit irgendwas wie `crw------- ... /dev/net/tun` zurückkommt → alles gut 👍.
      Wenn da nix kommt, dann unterstützt dein NAS das evtl. nicht oder es ist deaktiviert. Auf den Ugreen-Kisten klappt’s aber normalerweise.
      Wenn das fehlt, startet Gluetun zwar, aber der Container wirft sofort „No TUN device available“ – dann weißt du sofort, woran’s liegt.

    • DNS-Auflösung in Gluetun:
      Kleiner Stolperstein: Gluetun ist ziemlich strikt, was DNS angeht. Heißt, manchmal können Container darin keine Hostnamen wie `meinserver.local` auflösen, sondern nur direkte IPs.
      → Wenn JDownloader also im Log „unknown host“ schreit, liegt’s ziemlich sicher daran.
      Fixen kannst du das z. B. so:
      – Einfach feste IP-Adressen eintragen, wenn’s geht.
      – Oder in der Compose extra Hosts mitschmuggeln:
       
      Code
      extra_hosts:
          - "meinserver.local:192.168.178.50"


      Damit lügst du Gluetun quasi eine kleine „Hosts-Datei“ rein. Funktioniert super, wenn man nur 1–2 Geräte braucht.
      Wer es schicker haben will, kann in Gluetun auch die DNS-Server setzen (`DOT_PROVIDERS=cloudflare` oder so). Für den Heimgebrauch reicht das extra_hosts-Ding aber locker.

    • Die Option `FIREWALL=on` ist Gold wert: dann geht wirklich alles nur über den VPN. Wenn die VPN-Verbindung mal weg ist, blockt Gluetun den Traffic → keine bösen Überraschungen.
    • Port-Forwarding: nicht zwingend nötig für JDownloader, aber falls euer VPN-Anbieter es anbietet, könnt ihr’s einschalten. Praktisch für manche Remote-Features.



    Danke für die Ergänzung der Gluetun Anleitungen der VPN Provider. Hatte ich vergessen zu erwähnen.

    JDownloader2 mit Gluetun (VPN) auf dem Ugreen NAS im Docker laufen lassen

    Hallo zusammen,
    ich habe in den letzten Tagen ein bisschen gebastelt und möchte euch zeigen, wie man den JDownloader in Kombination mit Gluetun (VPN) sauber im Docker zum Laufen bekommt – speziell auf einem Ugreen NAS.
    Es gibt ein paar Stolperfallen, deswegen habe ich die wichtigsten Punkte gleich mit aufgeschrieben.

    Warum Gluetun?


    Gluetun ist ein VPN-Client für Docker. Damit lässt sich der gesamte Traffic von Containern (in unserem Fall JDownloader) durch einen VPN leiten.
    Vorteile:
    – Anonymere Downloads
    – Geo-Blocking umgehen
    – Kill-Switch: Wenn der VPN weg ist, geht auch kein Traffic mehr nach draußen

    Voraussetzungen

    • Docker & Portainer laufen bereits auf dem NAS.
    • Ihr habt ein Verzeichnis für JDownloader, z. B. `/volume1/docker/jdownloader`.
    • Ein VPN-Account, der von Gluetun unterstützt wird (OpenVPN oder WireGuard).
    • Das NAS muss `NET_ADMIN` und Zugriff auf `/dev/net/tun` erlauben (ist wichtig für den VPN).

    docker-compose.yml
    Hier mein funktionierendes Beispiel. Ich habe es bei mir in Portainer als Stack angelegt:

    bluejets
    October 1, 2025 at 4:25 PM

    Besonderheiten / Stolperfallen

    • Das Wichtigste: JDownloader hängt komplett im Netzwerk von Gluetun (`network_mode: service:gluetun`). Ohne das funktioniert’s nicht.
    • Die Ports müssen beim Gluetun-Container freigegeben werden, sonst kommt ihr nicht mehr auf die WebUI.
    • Mit `FIREWALL=on` sorgt ihr dafür, dass der Traffic auch wirklich nur über den VPN geht. Sehr praktisch, falls die Verbindung mal abbricht.
    • DNS-Auflösung innerhalb von Gluetun ist ein bisschen eingeschränkt – am besten feste IPs oder `extra_hosts` verwenden, falls es klemmt.
    • Wenn der VPN-Anbieter Port-Forwarding erlaubt, könnt ihr das in Gluetun aktivieren. Für JDownloader ist das meistens nicht zwingend, aber z. B. für Remote-Features praktisch.

    Troubleshooting
    Ein paar Sachen, über die ich gestolpert bin:

    Quote


    – Wenn die JDownloader-WebUI nicht lädt: Prüfen, ob ihr den Port bei Gluetun freigegeben habt.
    – „No TUN device available“: Dann fehlt `devices: /dev/net/tun` oder `cap_add: NET_ADMIN`.
    – Wenn nix mehr rausgeht, evtl. Firewall-Subnetze anpassen (`FIREWALL_OUTBOUND_SUBNETS`).
    – Manche VPN-Anbieter erfordern spezielle Configs – schaut in die Gluetun-Doku, da gibt’s viele Beispiele. Ich nutze ein Wireguard VPN, die Einrichtung war unkompliziert
    - Nach dem Setup testen ob beide Container auf einen Curl (wget -qO- http://ipecho.net/plain) die selbe IP zurückgeben. Bei Nutzung eines VPN Providers, sollte diese sich von der eigenen IP unterscheiden, wenn man die URL im Browser abfragt.

    Quellen & weiterführende Links

    Fazit
    Mit diesem Setup läuft JDownloader bei mir stabil und komplett über den VPN. Das Ugreen NAS packt die Container ohne Probleme, man muss nur auf die Besonderheiten beim Netzwerk und den Ports achten.
    Ich hoffe, die kleine Anleitung hilft euch beim Einrichten! 🙂

    Ich habe es jetzt hinbekommen, dass der eine Container gluetun für die nutzung der Internetverbindung nutzt.



    Die wichtigsten Punkte für mich waren:
    Gluetun:

    Code
    networks:
         - gluenet

    und beim 2. Container:
    Den WebUI Port nur bei Gluetun angeben und hier weglassen.

    Code
    depends_on:
         - gluetun 
    network_mode: "service:gluetun"
         
    networks:
     gluenet:
       driver: bridge

    Mit dem Compose File konnte ich beide container starten und dann über das Terminal abfragen:

    Code
    wget -qO- http://ipecho.net/plain

    Bei beiden Containern sollte die selbe IP zurückgegeben werden. Bei Nutzung eines VPN Providers, sollte diese sich von der eigenen IP unterscheiden, wenn man die URL im Browser abfragt.

    Ich hoffe ich konnte so jemandem weiterhelfen.

    Ich bin mir nicht sicher ob das für ein TUT reicht. Es kann sonst gerne als solches verwendet werden :)

    Moin, ich stecke da auch ein bisschen Fest. Gluetun scheint zu laufen aber wenn ich einen anderen Docker mit dem über gluetun gerouteten Port starten möchte bekomme ich immer die Fehlermeldung:

    Code
    depends on undefined service "gluetun": invalid compose project

    Vielleicht findet sich hier ja eine Lösung für das Problem.
    Vielen Dank