Jellyfin mit Docker und Docker Compose installieren

Jellyfin ist eine freie und quelloffene Medienserver-Software, die es Ihnen ermöglicht, Ihre Medienbibliothek zu organisieren und von überall aus zu streamen. Docker erleichtert die Installation und Verwaltung von Jellyfin, da es in einem Container läuft und somit isoliert von anderen Anwendungen auf Ihrem System ist. In diesem Blogbeitrag werde ich Ihnen Schritt für Schritt zeigen, wie Sie Jellyfin mit Docker Compose installieren können. Wir setzen dabei voraus, dass Docker bereits auf Ihrem System installiert ist.

Schritt 1: Docker Compose installieren

Falls Docker Compose noch nicht auf Ihrem System installiert ist, können Sie es mit den folgenden Befehlen installieren:

sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep -Po '"tag_name": "\K.*\d')" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Überprüfen Sie die Installation mit:

docker-compose --version

Schritt 2: Erstellen Sie ein Verzeichnis für Jellyfin

Erstellen Sie ein neues Verzeichnis, in dem alle Jellyfin-Daten und die Docker Compose-Datei gespeichert werden:

mkdir jellyfin-docker
cd jellyfin-docker

Schritt 3: Docker Compose-Datei erstellen

Erstellen Sie eine docker-compose.yml Datei im gerade erstellten Verzeichnis:

nano docker-compose.yml

Fügen Sie den folgenden Inhalt in die docker-compose.yml Datei ein:


version: "3.8"

services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
network_mode: host
environment:
- PUID=1000 # Anpassen an Ihren Benutzer
- PGID=1000 # Anpassen an Ihre Benutzergruppe
- TZ=Europe/Berlin # Anpassen an Ihre Zeitzone
volumes:
- ./config:/config
- ./cache:/cache
- ./media:/media
restart: unless-stopped

Erläuterung der Docker Compose-Konfiguration

  • version: Gibt die Version des Docker Compose-Dateiformats an.
  • services: Definiert die Container, die gestartet werden sollen.
  • jellyfin: Der Name des Jellyfin-Dienstes.
    • image: Das offizielle Jellyfin-Docker-Image.
    • container_name: Der Name des Containers.
    • network_mode: Setzt den Container in den Host-Netzwerkmodus, was die Netzwerkleistung verbessert.
    • environment: Definiert Umgebungsvariablen wie Benutzer-ID (PUID), Gruppen-ID (PGID) und Zeitzone (TZ).
    • volumes: Bindet Verzeichnisse auf dem Host in den Container. ./config für Konfigurationsdateien, ./cache für Cache-Dateien und ./media für Ihre Medienbibliothek.
    • restart: Legt fest, dass der Container neu gestartet wird, falls er unerwartet beendet wird.

Schritt 4: Docker Compose starten

Starten Sie Jellyfin mit Docker Compose:

docker-compose up -d

Der -d Parameter sorgt dafür, dass die Container im Hintergrund ausgeführt werden.

Schritt 5: Jellyfin einrichten

Nachdem die Container gestartet sind, können Sie Jellyfin in Ihrem Browser aufrufen. Navigieren Sie zu:

http://<Ihre_IP-Adresse>:8096

Sie sollten die Jellyfin-Web-Oberfläche sehen, wo Sie die Erstkonfiguration durchführen können. Hier können Sie Benutzer anlegen, Ihre Medienbibliotheken einbinden und weitere Einstellungen vornehmen.

 

Bildquelle: https://jellyfin.org/docs/general/contributing/branding/

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

Synology docker – Kein Terminal

Auf meiner Synology habe ich eine Nextcloud Instanz eingerichtet, welche soweit auch ganz gut läuft. Problematisch wurde es, als ich eine zusätzliche „Trusted Domain“ hinzufügen wollte. Im Normalfall, kann man unter der Synology via Terminal in der docker-Umgebung auf den Container zugreifen. Hier aber verabschiedet sich der Container mit der Meldung:

[npm_prefork:notice] [pid 1] AH00170: caught SIGWINCH, shutting down gracefully

Das ist natürlich nicht so toll, denn auch nach einem Neustart geht da nichts. Wir müssen schließlich die config Datei ändern, aber so geht’s also nicht. Also musste ich folgendermaßen vorgehen:
Auf die NAS via SSH verbinden, dann erstmal die Container anzeigen lassen mit:

sudo docker ps

entsprechenden Container auswählen:

sudo docker exec -it nextcloud1 /bin/bash

Und schon ist man innerhalb des Containers und kann die notwendigen Dateien bearbeiten.

 
Bild von ananitit auf Pixabay