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/

Jellyfin Docker Container auf Synology DS718+

Jellyfin ist eine Open-Source-Software, die es Benutzern ermöglicht, ihre persönliche Mediensammlung wie Filme, Musik und Fotos zu organisieren, zu streamen und zu teilen. Es funktioniert ähnlich wie andere Media-Server-Plattformen wie Plex oder Emby, bietet aber eine kostenlose Alternative mit einem Fokus auf Datenschutz und Benutzerkontrolle.

Heute wollen wir diese auf der Synology DS718+ als Docker Container installieren und sie via „https://“ von außen erreichbar machen.
Vorausgesetzt wird eine aktuelle Version der Synology und eine eingerichtet Wildcard Domain auf die Synology (Hier empfehle ich https://inwx.de)

Zuerst erstellen wir eine SubDomain unter „Systemsteuerung/Anmeldeportal/Erweitert–> Reverse Proxy“ dann „Erstellen“. Als Reverse-Proxy-Name wählen wir unsere gewünschte Domain aus.
Protokoll: https
Hostname: Gewünschte SubDomain
Port: 443
Ziel
Protokoll: http
Hostname: localhost/IP_EURER_NAS
Port: 8096
Benutzerdefinierte Kopfzeile
Erstellen und WebSocket wählen
Dann speichern

Unter „Systemsteuerung/Sicherheit/Erweitert/“ wählen wir „https-Komprimierung aktivieren“ aus.

Bei File Station erstellen wir einen Ordner im docker Ordner namens „jellyfinht“ in diesem erstellen wir drei Ordner: cache, config und logs

Jetzt loggen wir uns in Portainer ein und erstellen einen neuen Stack, diesen nennen wir „jellyfinht“, hier fügen wir folgendes ein:

 

version: "3.9"
services:
  jellyfin:
    image: jellyfin/jellyfin:latest
    container_name: Jellyfin-HT
    environment:
      TZ: Europe/Berlin
      user: 1026:100
    volumes:
      - /volume1/docker/jellyfinht/config:/config:rw
      - /volume1/docker/jellyfinht/cache:/cache:rw
      - /volume1/docker/jellyfinht/logs:/logs:rw
      - /volume1/Filme:/media:rw
      - /volume1/music:/music:rw
      - /volume1/Serien:/tvshows:rw
    devices:
      - /dev/dri/renderD128:/dev/dri/renderD128
      - /dev/dri/card0:/dev/dri/card0
    restart: on-failure:5
    network_mode: host

Dann das Stack noch deployen und Jellyfin wird installiert. Es sollte nach ein paar minuten unter der IP Eurer NAS und Port 8096 erreichbar sein.

Beachtet die Pfade für Eure Filme und/oder Musik und „user:1026:100“
Unter „Sicherheit/Zertifikat/ könnt ihr noch ein Zertifikat erstellen und es zuordnen.

Viel Spaß!

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

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