Docker Portainer auf Synology NAS DS718+

Heute installieren wir Portainer, ein grafisches Tool zum verwalten von docker Containern. Voraussetzung ist eine aktuelle Version der Synology NAS und die Installation von „Container Manager“.

Was ist Portainer eigentlich?

Portainer ist eine Open-Source-Plattform für das Management von Containern in Docker- und Kubernetes-Umgebungen. Es bietet eine benutzerfreundliche webbasierte Benutzeroberfläche, die es Entwicklern und Administratoren ermöglicht, Container-Cluster einfach zu überwachen, zu verwalten und zu skalieren, ohne komplexe Befehle auf der Befehlszeile verwenden zu müssen.

Mit Portainer können Benutzer Container erstellen, starten, stoppen, überwachen und aktualisieren, sowie Ressourcenverbrauch und Leistung messen. Darüber hinaus bietet es Funktionen wie das Management von Benutzerzugriffen und Rollen, die Verwaltung von Netzwerken und Volumes sowie das Bereitstellen von Anwendungen aus dem Portainer App Store.

Portainer erleichtert das Container-Management für Entwickler und Administratoren und ermöglicht, die Infrastruktur effizient zu verwalten und zu skalieren, ohne tiefgreifende Kenntnisse in der Container-Orchestrierung haben zu müssen.

Fangen wir an

Beginnen wir zuerst auf der NAS und legen einen Ordner „portainer“ im Ordner docker an. Ist dieser angelegt wechseln wir zum Aufgabenplaner in der Systemsteuerung. Wir erstellen eine „Geplante Aufgabe –> Benutzerdefiniertes Script“:
Aufgabe: „install portainer“
Benutzer: „root“
Den haken bei aktiviert, entfernen.
Beim Reiter oben wählen wir „Am folgenden Datum ausführen“ und wählen den aktuellen Zeitpunkt und darunter „Nicht wiederholen“
Beim Reiter „Aufgabeneinstellungen“ können wir uns eine Mail schicken lassen von der Ausführung.
Im Feld des Befehls fügen wir folgendes ein:

docker run -d –name=portainer \
-p 8000:8000 \
-p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /volume1/docker/portainer:/data \
–restart=always \
portainer/portainer-ce

Dann müssen wir dies einmal bestätigen und ein weiteres mal mit unserem Passwort. Danach sind wir wieder im Aufgabenplaner und können unsere eben erstellte Aufgabe markieren und „Ausführen“. Nach wenigen Augenblicken sollte portainer unter http://IP_DER_NAS:9000 erreichbar sein. Bei der erstmaligen Anmeldung müssen wir nun ein Nutzer und Kennwort vergeben, dies ist unser Admin Account für portainer.

Für Anregungen und Wünsche, schaut gerne auf Freenetworx vorbei

Image by Alexander Fox | PlaNet Fox from Pixabay

Streama Medienserver als Container

Es gibt mittlerweile einige große Media-Server zum selbst hosten auf dem Markt. Plex, Emby und Jellyfin gehören wohl zu den am meisten verbreiteten. Seit einigen Jahren, eher unscheinbar, gibt es noch Streama https://docs.streama-project.com/

Für mich kann Streama eine wirklich gute Alternative zu Plex und Emby sein. Es ist schlank, einfach und macht einfach was soll. Medieninhalte streamen. Mein Wunsch war, das ganze in einem Docker Container bereit zustellen. Da die Anleitung hierfür etwas veraltet ist und nicht direkt zu meiner Synology DS718+ passt, musste ich es anpassen um es anlegen zu können. Hier teile ich mal meine Vorgehensweise, ihr benötigt drei Dateien, welche ihr teilweise hier bekommt oder bei github Streamaserver laden könnt. Vorausgesetzt wird eine Synology mit laufendem Docker + docker-compose und ein klein wenig Erfahrung mit Docker.

  1. Ordner auf der Synology mit „File Station“ anlegen. In meinem Setup habe ich unter dem Ordner „docker“ den Ordner „streama“ mit folgenden Unterordnern erstellt: „compose“, „media“ und „app_data“
  2. Symlinks auf der Synology anlegen:

 ln -s /volume1/EUER_FILM_VERZEICHNIS /volume1/docker/streama/media

ln -s /volume1/EUER_SERIEN_VERZEICHNIS /volume1/docker/streama/media

Nun benötigt Ihr noch von Github die aktuelle streama.jar Datei und das Dockerfile, beide Dateien legt ihr in dem von Euch erstellten „compose“ Ordner. In diesem „compose“ Ordner muss noch die docker-compose.yaml Datei erstellt werden.

Nun, verbindet Ihr Euch via SSH auf Eure NAS und navigiert zur „docker-compose.yaml“, diese müsste ihr starten mit:

docker-compose up -d

Jetzt sollten die benötigten Dateien geladen werden und nach einer Weile sollte streama unter NAS:8080 streama erreichbar sein.

Image by yousafbhutta from Pixabay

Reverse Proxy und Synology NAS DS718+

Mehrere Dienste, z.B. Plex oder Ombi, laufen jeweils in einem Docker-Container auf der Synology DS718+. Diese sind somit innerhalb des Netzwerks gut anzusprechen. Die Plex war vorher schon via Portfreigabe am Router freigegeben, sodass sie von außen erreichbar ist. Natürlich könnte man nun einfach Portfreigaben erstellen und so auch einen externen Zugriff ermöglichen. Sieht aber nicht so toll aus. Schöner wäre eine eigene Sub-Domain die auf den einzelnen Dienst zeigt. Szenario sollte also so aussehen:
Sub-Domain –> Docker-Container ohne Änderung der Adressleiste im Browser.

Mein Vorgehen:
Bei der Fritz.Box, oder anderen Routern, müssen die Ports 80 und 443 auf die NAS geroutet werden (Port 443 nur, wenn ihr auch via https verbinden wollt)
Domain bei inwx.de registriert, da hat man die Möglichkeit einen DynDNS Service kostenlos zu nutzen. Auf der Synology wurde die Sub-Domain unter Systemsteuerung-> externer Zugriff ->DDNS hinzugefügt (Anleitung bei INWX.de)
Habe noch einen CatchAll CNAME Eintrag hinzugefügt, der dann auf die DynDNS Sub-Domain routet. So leitet Ihr alle Sub-Domains auf die NAS.

Nun geht’s zum Reverse Proxy innerhalb der Synology. Unter Systemsteuerung findet Ihr das Anmeldeportal, bei Erweitert ist dann der Reverse Proxy. Die Einrichtung ist recht einfach. Bei Quelle gebt ihr die externe Sub-Domain an unter der Ihr euren Dienst erreichbar machen wollt. Port ist dann 80 (http! und 443 bei https!). Ziel ist die NAS IP Adresse und der Port des Dienstes innerhalb des Netzwerkes.
Das war es dann schon!

Bild von Gerd Altmann auf Pixabay

JellyFin auf dem Raspberry Pi mit einer Synology NAS

Heute installieren wir einen JellyFin Server auf dem Raspberry Pi und geben die Möglichkeit Daten von der Synology NAS zu lesen (Filme, Serien, was auch immer).
Aber was ist eigentlich JellyFin? JellyFin ist ein emby Fork. Emby ist eine Alternative zum Plex Media-Server. Während bei Plex und emby eine Anmeldung notwendig ist, kann dies bei JellyFin lokal bleiben. JellyFin ist also auch ein Media-Server, der es ermöglicht Multimedia-Dateien zu streamen, nicht nur im Netzwerk, auch unterwegs kann man darauf zugreifen. Eine Einrichtung ist relativ einfach, lediglich die Netzwerkfreigabe hatte ein klein wenig Einarbeitung erfordert.
Beginnen wir mit dem Raspberry Pi:

sudo apt update
sudo apt upgrade

Um alles auf den neusten Stand zu bringen.

sudo apt install apt-transport-https
Damit wir auf https zugreifen können, was für das JellyFin Package notwendig ist.

curl https://repo.jellyfin.org/debian/jellyfin_team.gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/jellyfin-archive-keyring.gpg >/dev/null

Hiermit fügen wir den GPG-Schlüssel zu.

sudo apt update
Um auch die JellyFin Dateien zu finden.

sudo apt install jellyfin
Um JellyFin schließlich zu installieren.

http://[IPADDRESSE]:8096
Jetzt könnt Ihr auf Euren JellyFin Server zugreifen. Genauer wird das dann hier beschrieben: https://jellyfin.org/docs/general/quick-start.html

Der etwas kniffligere Teil ist das mounten der Netzwerkfreigaben auf dem Raspberry Pi. Hierfür verbinden wir uns wieder mit dem Pi und gehen in die fstab Datei:
sudo nano /etc/fstab
Hier fügen wir folgendes ein:
//192.168.X.X/nas /media/nas cifs
username=XXXXXX,password=XXXXXX,rw,soft

Den Ordner /media/nas müsst Ihr noch erstellen.
Mit sudo mount -a könnt Ihr die Ordner mounten und sie sollten dann auch in Jellyfin sichtbar sein, bzw. aus wählbar.
Bei Fragen dürft Ihr gerne auf Freenetworx nachfragen.

By Jellyfin contributors – <a rel=“nofollow“ class=“external free“ href=“https://github.com/jellyfin/jellyfin-ux/blob/master/branding/SVG/banner-light.svg“>https://github.com/jellyfin/jellyfin-ux/blob/master/branding/SVG/banner-light.svg</a>, CC BY-SA 4.0, Link