UGREEN NAS: Plex mit Docker einrichten, Rechte und Netzwerk richtig setzen
Teil 79 der UGREEN-Serie: Plex Media Server 1.43 im Docker-Container, mit eigenem Konto, Medien nur lesend, Claim-Code und Netzwerk-Einstellungen für den Bridge-Modus.
Geprüft am 04.11.2026 · für UGOS Pro 1.21.0.0190, Plex Media Server 1.43.5
Mit KI erstellt – redaktionelle Prüfung ausstehend
WerbelinksMit * 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

Plex verwandelt Ihre Film- und Videosammlung auf der UGREEN NAS in eine Mediathek mit Vorschaubildern, die Sie auf Fernseher, Handy und im Browser abspielen. Diese Anleitung zeigt die Einrichtung mit Docker Schritt für Schritt: mit eigenem Konto für den Container, Medien nur lesend, Anmeldung per Claim-Code und den Netzwerk-Einstellungen, ohne die Plex Ihr Heimnetz für einen Fernzugriff hält.
Getestet auf einer UGREEN DXP4800 Pro mit UGOS Pro 1.21.0.0190 und Docker 29.6.2, mit Plex Media Server 1.43.5 im Image lscr.io/linuxserver/plex und Plex Web 4.162.1.
Voraussetzungen
- Eine UGREEN NAS mit der App Docker und fester IP-Adresse, siehe Teil 63 und feste IP einrichten
- SSH-Zugang, siehe Teil 52
- Ein Konto für Container wie dockeruser mit Leserecht auf Ihre Medienfreigabe, siehe Teil 65
- Ein Konto bei plex.tv, laut Plex reicht ein kostenloses
- Etwa 45 Minuten
Bridge-Modus oder Host-Netzwerk?
Die Herausgeber des Images linuxserver.io empfehlen für Plex laut Dokumentation das Host-Netzwerk. Der Container nutzt dann direkt die Netzwerkschnittstelle der NAS, Plex sieht die echten Adressen im Heimnetz, und die Suche nach Geräten per GDM und DLNA funktioniert ohne weitere Ports. Dafür gehört der Port 32400 dann fest dem Container, und Sie sehen in der Compose-Datei nicht, welche Ports offen sind.
Diese Anleitung nutzt den Bridge-Modus mit einem einzigen freigegebenen Port. Der Container hängt in einem eigenen Docker-Netz, und nur Port 32400 ist von außen erreichbar. Auf unserer Test-NAS lief bereits eine Plex im Host-Netzwerk auf Port 32400. Deshalb sehen Sie in den Bildern Port 32450, Sie verwenden 32400. Der Bridge-Modus braucht den Claim-Code aus Schritt 4 und zwei Netzwerk-Einstellungen, die Schritt 7 zeigt.
Schritt 1: Projektordner und Datenordner anlegen
Plex speichert Datenbank, Vorschaubilder und Einstellungen im Ordner config, die Zwischendateien beim Umwandeln von Videos im Ordner transcode. Legen Sie beide im Projektordner auf dem SSD-Volume an und stellen Sie sie auf Linux-Rechte um, wie in Teil 65 erklärt. Passen Sie volume2 und die ID 1001 von dockeruser an Ihre NAS an:
sudo -i
mkdir -p /volume2/docker/plex/config /volume2/docker/plex/transcode
cd /volume2/docker/plex
ugacltool del_all config
ugacltool del_all transcode
chown -R 1001:100 config transcode
chmod 750 config transcode
ugacltool getace config
It's Linux mode
Ohne diesen Schritt erben neue Ordner unter docker die Rechte-Einträge von UGOS, die nur der Gruppe admin Zugriff geben. Bei unserem Test lief Plex mit den IDs von dockeruser dann in eine Schleife aus Absturz und Neustart. Das Protokoll des Containers zeigte immer wieder:
boost::filesystem::create_directories: Permission denied [system:13]:
"/config/Library/Application Support/Plex Media Server/Cache"
Nach dem Umstellen auf Linux-Rechte startete Plex ohne Fehler. Legen Sie noch die Datei für den Claim-Code aus Schritt 4 an, zunächst leer, und verlassen Sie die root-Sitzung mit exit:
printf 'PLEX_CLAIM=\n' > plex.env
chmod 600 plex.env
exit
Verifizieren: ugacltool getace meldet für config und transcode „It's Linux mode“, und ls -ln zeigt 1001 und 100 als Besitzer und Gruppe.
Schritt 2: Die Medienfreigabe prüfen
Plex braucht auf Ihre Filme nur Leserecht. Geben Sie dockeruser in der App Dateien für die Medienfreigabe, bei uns Videothek, das Recht Nur-Lesen, wie in Teil 65 gezeigt. Prüfen Sie es per SSH:
sudo -u dockeruser ls /volume1/Videothek
Der Befehl muss Ihre Ordner und Filme auflisten. Endet er mit „Permission denied“, fehlt der Eintrag für dockeruser. In unserem Test lief Plex zuerst mit den IDs des Administratorkontos, das seine Rechte in UGOS nur über die Gruppe admin bekommt. Plex legte die Mediathek an, sie blieb aber leer, und im Serverprotokoll stand:
ERROR - Failed to create iterator to "/medien/Videos": Permission denied
Mit den IDs von dockeruser und dessen Leserecht fand derselbe Scan beide Testvideos.
Verifizieren: sudo -u dockeruser ls listet die Medienfreigabe ohne Fehler.
Schritt 3: Die Compose-Datei schreiben
cd /volume2/docker/plex
sudo nano compose.yaml
services:
plex:
image: lscr.io/linuxserver/plex:1.43.5
container_name: plex
hostname: UGREEN-Plex
env_file: plex.env
environment:
- PUID=1001
- PGID=100
- TZ=Europe/Berlin
- VERSION=docker
ports:
- 192.168.1.10:32400:32400/tcp
devices:
- /dev/dri:/dev/dri
volumes:
- ./config:/config
- ./transcode:/transcode
- /volume1/Videothek:/medien:ro
restart: unless-stopped
Die wichtigsten Punkte:
- image mit Versionsnummer: So bestimmen Sie selbst, wann Plex aktualisiert wird, siehe Teil 69.
- VERSION=docker: Der Container lädt beim Start keine neuere Plex-Version nach. Die Version steckt im Image, so wie es zur Versionsnummer passt. Beim Neustart meldete der Container bei uns „Docker is used for versioning skip update check“.
- PUID und PGID: die IDs von dockeruser. Plex läuft mit dessen Rechten, nicht als root.
- hostname: Diesen Namen schlägt Plex später als Servernamen vor.
- ports: Nur Port 32400 an der Adresse der NAS, ersetzen Sie 192.168.1.10 durch Ihre Adresse.
- devices: gibt dem Container die Grafikeinheit für Hardware-Transcoding. Das Image von linuxserver.io nimmt das Konto beim Start selbst in die Gruppe von renderD128 auf, bei uns meldete das Protokoll „adding /dev/dri/renderD128 to group“. Details stehen in Teil 81.
- /medien:ro: hängt die Videothek nur lesend unter dem kurzen Pfad /medien ein, ein zweiter Schutz zusätzlich zu den Rechten in UGOS.
Die Variable ADVERTISE_IP aus anderen Anleitungen gehört zum offiziellen Image plexinc/pms-docker. Im Image von linuxserver.io blieb sie in unserem Test ohne Wirkung, die Adresse tragen Sie in Schritt 7 in Plex ein.
Verifizieren: sudo docker compose config im Projektordner gibt die Datei ohne Fehlermeldung aus.
Schritt 4: Den Server mit dem Claim-Code verknüpfen
Im Bridge-Modus kommt Ihr Browser aus Sicht von Plex nicht aus dem eigenen Netz, denn der Container hat eine interne Docker-Adresse. Einen noch nicht verknüpften Server können Sie deshalb laut Dokumentation von linuxserver.io nicht einfach im Browser übernehmen. Der dokumentierte Weg ist ein Claim-Code. Laden Sie zuerst das Image, damit der Code beim Start noch gilt:
cd /volume2/docker/plex
sudo docker compose pull
Öffnen Sie dann https://plex.tv/claim, angemeldet mit Ihrem Plex-Konto. Die Seite zeigt einen Code, der mit claim- beginnt und laut plex.tv nur etwa vier Minuten gilt. Erscheint unter dem Text kein Code, laden Sie die Seite neu oder öffnen Sie sie in einem anderen Browser. Das war bei uns einmal nötig. Arbeiten Sie danach zügig:
sudo nano plex.env
sudo docker compose up -d
Tragen Sie den Code in nano direkt hinter PLEX_CLAIM= ein, speichern Sie mit Strg+O und der Eingabetaste und schließen Sie mit Strg+X. Der Code gehört nicht in die Compose-Datei, sondern nur in plex.env. Prüfen Sie nach etwa einer Minute, ob die Verknüpfung geklappt hat, ohne den gespeicherten Schlüssel anzuzeigen:
sudo grep -c PlexOnlineToken "config/Library/Application Support/Plex Media Server/Preferences.xml"
1
Ist der Code abgelaufen, steht dort 0. Holen Sie dann einen neuen Code, tragen Sie ihn in plex.env ein und erstellen Sie den Container mit sudo docker compose up -d --force-recreate neu. Ist der Server verknüpft, leeren Sie die Zeile in plex.env wieder auf PLEX_CLAIM=. Das wirkt beim nächsten Neuerstellen des Containers. Bei uns blieb der Server danach verknüpft, das Protokoll meldete „Server already claimed“.
Verifizieren: Die Prüfung mit grep gibt 1 aus, und sudo docker logs plex zeigt „Starting Plex Media Server“ ohne Permission denied.
Schritt 5: Den Einrichtungsassistenten durchlaufen
Öffnen Sie http://ADRESSE-DER-NAS:32400/web. Plex leitet Sie einmal zur Anmeldung auf app.plex.tv weiter und fragt, ob Plex Web auf Ihr Konto zugreifen darf. Nach der Bestätigung startet der Assistent mit einer kurzen Erklärung und danach dem Servernamen:

Entfernen Sie den Haken bei Erlaube mir Zugriff auf meine Medien von außerhalb meines Heimnetzwerkes. Sonst versucht Plex laut Hinweis, Ihr Netzwerk automatisch für den Zugriff von außen einzurichten, laut Plex über eine automatische Portfreigabe am Router. Für unterwegs ist ein VPN ins Heimnetz die sicherere Wahl.
Verifizieren: Der Assistent wechselt zum Schritt Mediathek.
Schritt 6: Eine Mediathek anlegen
Klicken Sie auf Mediathek Hinzufügen und wählen Sie den Typ:

Für Spielfilme nehmen Sie Filme. Plex holt dann Titelbilder und Beschreibungen aus dem Internet, wenn die Dateien nach dem Muster Titel (Jahr) benannt sind. Für eigene Aufnahmen ohne Eintrag in einer Filmdatenbank passt Andere Videos, das haben wir für unsere zwei Testvideos genutzt. Geben Sie einen Namen ein und klicken Sie auf Weiter. Unter Nach Medienordnern Durchsuchen wählen Sie den Pfad im Container, nicht den auf der NAS. In unserem Testaufbau lag darin ein Unterordner Videos, Sie wählen /medien oder Ihren Unterordner, etwa /medien/Filme:

Im Container heißt Ihre Videothek /medien, so wie in der Compose-Datei festgelegt. Ordner wie config und transcode tauchen in der Auswahl ebenfalls auf, sie gehören nicht in eine Mediathek. Nach Mediathek Hinzufügen steht die Mediathek in der Liste:

Klicken Sie auf Weiter und Fertig. Plex durchsucht den Ordner im Hintergrund. Bei unseren zwei Testdateien dauerte das wenige Sekunden.

Plex Web zeigt links alle Server, die mit Ihrem Konto verknüpft sind. Unter jeder Mediathek steht der Name des Servers, hier UGREEN-Plex. Bleibt eine Mediathek leer, öffnen Sie das Menü mit den drei Punkten neben ihrem Namen und wählen Mediathek-Dateien einlesen. Hilft das nicht, liegt es meist an den Rechten aus Schritt 2.
Verifizieren: Die Mediathek zeigt Ihre Videos, und sudo grep -i "permission denied" "/volume2/docker/plex/config/Library/Application Support/Plex Media Server/Logs/Plex Media Server.log" gibt nichts aus.
Schritt 7: Heimnetz und Adresse eintragen
Dieser Schritt ist im Bridge-Modus wichtig und wird oft vergessen. Plex hält laut Hinweis in den Einstellungen ohne eigene Angabe nur das Subnetz für lokal, in dem die Adresse des Servers liegt. Im Bridge-Modus ist das das interne Docker-Netz. Bei unserem Test lief die erste Wiedergabe im Browser deshalb als Fernzugriff, die Sitzung meldete location="wan". Für Fernzugriffe gelten in Plex eigene Grenzen für die Bandbreite.
Öffnen Sie über das Werkzeug-Symbol oben rechts die Einstellungen, wählen Sie links unter Ihrem Server Netzwerk und klicken Sie auf Erweiterte Optionen anzeigen:

Tragen Sie bei LAN Netzwerke Ihr Heimnetz ein, zum Beispiel 192.168.1.0/24, mehrere Netze durch Komma ohne Leerzeichen getrennt. Danach lief dieselbe Wiedergabe bei uns als location="lan".
Tragen Sie außerdem bei Eigene URLs für den Zugriff auf diesen Server die Adresse der NAS mit Port ein, also http://192.168.1.10:32400, und speichern Sie. Vorher kannte plex.tv in unserem Test nur die interne Adresse des Containers mit Port 32400. Ein Fernseher oder Handy im Heimnetz kann diese Adresse nicht erreichen. Nach dem Speichern veröffentlichte Plex zusätzlich eine verschlüsselte Adresse auf plex.direct mit der IP der NAS und dem freigegebenen Port. Diese Adresse antwortete vom Mac mit gültigem Zertifikat. Die Apps nutzen diese Liste laut Plex, um den Server zu finden. Im Bild steht Port 32450 aus unserem Testaufbau, Sie tragen 32400 ein. Blockiert Ihr Router Adressen auf plex.direct mit einem Schutz gegen DNS-Rebinding, braucht er laut Plex eine Ausnahme für plex.direct.
Ob alles stimmt, zeigt das Dashboard unter Status, während ein Video läuft:

Im Diagramm Bandbreite sehen Sie den Unterschied aus unserem Test: Die ersten Wiedergaben erscheinen blau als Entfernt, die nach dem Eintragen orange als Lokal. Direct Stream bedeutet, dass Plex das Video ohne Umwandlung an den Browser schickt.
Verifizieren: Das Dashboard zeigt bei einer Wiedergabe im Heimnetz Local und die Adresse des Geräts.
Schritt 8: Das Verzeichnis für den Transcoder setzen
Kann ein Gerät ein Video nicht direkt abspielen, wandelt Plex es während der Wiedergabe um und schreibt dabei laufend Zwischendateien. Diese sollen im Ordner transcode auf der SSD landen und nicht in der Datenbank unter config. Öffnen Sie in den Einstellungen Transcoder, klicken Sie auf Erweiterte Optionen anzeigen und tragen Sie bei Temporäres Verzeichnis für Transcoder den Pfad im Container ein:

Bei unserem Test war das Feld leer, wir haben /transcode eingetragen und gespeichert. Danach haben wir eine Umwandlung auf 640 mal 360 Bildpunkte erzwungen. Die Teilstücke des Videos lagen wie gewünscht auf der NAS unter transcode/Transcode/Sessions, bei uns rund 9 MB. Plex räumt den Ordner nach der Wiedergabe selbst auf. Ob die Grafikeinheit die Umwandlung übernimmt, hängt laut Plex von einem Plex Pass ab. Wie Sie das prüfen, zeigt Teil 81.
Verifizieren: Stellen Sie im Player die Qualität herunter, etwa auf 720p, wie in Teil 81 gezeigt. Während der Umwandlung zeigt sudo ls /volume2/docker/plex/transcode/Transcode/Sessions einen Ordner der laufenden Sitzung.
Sichern und aktualisieren
Alles, was Plex über Ihre Sammlung weiß, liegt im Ordner config: Datenbank, Vorschaubilder, gesehene Folgen und die Verknüpfung mit Ihrem Konto. In unserem Test belegte er mit zwei Videos schon 238 MB, bei großen Sammlungen werden daraus schnell mehrere Gigabyte. Sichern Sie den Ordner bei gestopptem Container, wie in Teil 61 beschrieben. Den Ordner transcode brauchen Sie nicht zu sichern. Für ein Update ändern Sie die Versionsnummer in der Compose-Datei und starten neu:
sudo docker compose pull
sudo docker compose up -d
Das Image war bei uns 411 MB groß, im Leerlauf belegte Plex rund 90 MiB Arbeitsspeicher.
Typische Fehler
- Container startet immer wieder neu: Im Protokoll steht create_directories: Permission denied. Die Datenordner tragen noch die Rechte von UGOS. Schritt 1 wiederholen.
- Mediathek bleibt leer: Im Serverprotokoll steht Failed to create iterator, Permission denied. dockeruser fehlt das Leserecht auf der Medienfreigabe.
- Server erscheint nicht: Der Claim-Code war abgelaufen. Neuen Code holen und den Container neu erstellen.
- Meldung, dass der Server keine unsicheren Verbindungen erlaubt: Bei uns erschien sie, während der Container wegen fehlender Rechte immer wieder neu startete. Erst das Protokoll prüfen.
- Wiedergabe im Heimnetz zählt als Entfernt: LAN Netzwerke fehlt, siehe Schritt 7.
- Fernseher findet den Server nicht: Laut Plex fehlt meist die eigene URL mit Adresse der NAS, siehe Schritt 7.
Häufige Fragen
Brauche ich einen Plex Pass?
Für Server, Mediatheken und die Wiedergabe im Heimnetz laut Plex nicht. Funktionen wie Hardware-Transcoding setzen laut Plex dagegen einen Plex Pass voraus. Welche Funktionen genau dazugehören, steht auf der Seite von Plex.
Kann ich Plex auch ohne Konto bei plex.tv nutzen?
Nein, nicht für die Einrichtung in dieser Anleitung. Server und Apps melden sich über plex.tv an, auch wenn die Videos im Heimnetz direkt von der NAS kommen. Wer ganz ohne Konto beim Hersteller auskommen will, findet mit Jellyfin eine Alternative, die laut Dokumentation ohne Anmeldung bei einem Dienst läuft. Sie folgt in Teil 80.
Wie komme ich von unterwegs an meine Filme?
Am sichersten über ein VPN ins Heimnetz, dann brauchen Sie keine Portfreigabe am Router. Hat das VPN einen eigenen Adressbereich, tragen Sie diesen zusätzlich bei LAN Netzwerke ein, etwa 192.168.1.0/24,10.6.0.0/24. Sonst zählt Plex die Wiedergabe über das VPN als Fernzugriff. Lassen Sie den Fernzugriff von Plex mit offenem Port ausgeschaltet.
Fazit
Plex läuft auf der UGREEN NAS zuverlässig im Container, wenn die Rechte stimmen: ein eigenes Konto mit Leserecht auf die Medien und Datenordner mit Linux-Rechten. Der Claim-Code verknüpft den Server mit Ihrem Konto. Im Bridge-Modus gehören das Heimnetz und die Adresse der NAS in die Netzwerk-Einstellungen, sonst behandelt Plex Ihre Geräte wie Fremde. Mit dem Transcoder-Verzeichnis auf der SSD ist der Server fertig für den Alltag.


