Jellyfin, eine selbst gehostete Medien-Streaming-Lösung¶
Letzte Aktualisierung: Mai 2022. Für fortgeschrittene BenutzerInnen. Solide technische Kenntnisse erforderlich.
Jellyfin ist eine Medien-Streaming-Lösung, die Ihr selbst auf Eurem Ubuntu-Server hosten könnt. Streamt Filme, Fernsehsendungen und Musik direkt auf Eure Geräte! Jellyfin ist frei, quelloffen, schnell und benutzerfreundlich. Und es unterstützt Mehrbenutzer, Live-TV, Metadaten-Management, Plugins, verschiedene Clients und mehr.
Installation¶
Jellyfin ist vergleichsweise einfach zu installieren. Untenstehend findet Ihr eine ausführliche Anleitung für Eure selbst gehostete Medien-Streaming-Lösung.
Hier geht's zur Schritt-für-Schritt-Anleitung
Meldet Euch auf dem Server an und führt die folgenden Befehle aus, um die Paketquelle hinzuzufügen und Jellyfin zu installieren:
sudo apt install apt-transport-https
sudo apt-get install software-properties-common
sudo add-apt-repository universe
curl -fsSL https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/debian-jellyfin.gpg
sudo echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/ubuntu $( lsb_release -c -s ) main" | sudo tee /etc/apt/sources.list.d/jellyfin.list
sudo apt update
sudo apt install jellyfin
Hier geht's zum 1-minütigen Zusammenfassungsvideo
Übergangslösung für Ubuntu 22.04
Zum Zeitpunkt des Verfassens dieser Zeilen kann Jellyfin nicht wie oben beschrieben aus den Ubuntu 22.04-Paketquellen installiert werden. Das liegt vor allem daran, dass Jellyfin 10.7.7 von libssl1
abhängt, welches nicht mehr von Ubuntu 22.04 unterstützt wird. Als Übergangslösung könnt Ihr allerdings Jellyfin 10.8.0 Beta 3 installieren.
Aktiviert die Universe-Paketquellen:
sudo add-apt-repository universe
sudo apt update
Ladet die Jellyfin .deb
-Pakete herunter:
wget https://repo.jellyfin.org/releases/server/ubuntu/stable-pre/10.8.0-beta3/web/jellyfin-web_10.8.0~beta3_all.deb
wget https://repo.jellyfin.org/releases/server/ubuntu/stable-pre/10.8.0-beta3/server/jellyfin-server_10.8.0~beta3_amd64.deb
wget https://repo.jellyfin.org/releases/server/ubuntu/stable-pre/ffmpeg/jellyfin-ffmpeg5_5.0.1-4-jammy_amd64.deb
Installiert die erforderlichen Abhängigkeiten:
sudo apt install at libsqlite3-0 libfontconfig1 libfreetype6
Installiert die heruntergeladenen .deb
-Pakete:
sudo dpkg -i jellyfin-*.deb
Behebt fehlende Abhängigkeiten:
sudo apt -f install
Startet Jellyfin neu und vergewissert Euch, dass der Status Active
ist:
sudo systemctl restart jellyfin
sudo systemctl status jellyfin
Konfiguration¶
Nach der erfolgreichen Installation von Jellyfin sind einige Einstellungen vorzunehmen: Autostart beim Booten, Benutzerkonten, Spracheinstellungen und so weiter. Untenstehend findet Ihr eine ausführliche Anleitung.
Hier geht's zur Schritt-für-Schritt-Anleitung
Autostart¶
Stellt sicher, dass Jellyfin bei jedem Server-Neustart automatisch ausgeführt wird:
sudo systemctl daemon-reload
sudo systemctl enable jellyfin
Startet den Server neu:
sudo reboot
Vergewissert Euch, dass Jellyin läuft (der Status sollte "Active" sein):
sudo systemctl status jellyfin
Ersteinrichtung¶
Wir werden auf Jellyfins Weboberfläche zugreifen, um die Ersteinrichtung durchzuführen. Dazu muss vorübergehend der Port 8096
in der Firewall geöffnet werden:
sudo ufw allow 8096/tcp
Ruft nun http://192.168.1.100:8096
auf (passt die IP-Adresse entsprechend an) und folgt dem Einrichtungsassistenten:
Anweisungen | Beschreibung |
---|---|
Bevorzugte Anzeigesprache | Wählt Eure bevorzugte Sprache, z.B. Deutsch. |
Benutzername | Gebt einen Benutzernamen für den Jellyfin-Administrator an. Für die Zwecke dieses Tutorials nennen wir den Administratoren jellyfinadmin . Ihr könnt selbstverständlich jeden beliebigen Namen wählen, stellt allerdings sicher, dass Ihr die Befehle entsprechend anpasst. |
Passwort | Wählt ein sicheres, individuelles Passwort für den Jellyfin-Administrator. |
Medienbibliotheken hinzufügen | Ihr könnt Musik, Filme oder Fernsehsendungen zu Jellyfin hinzufügen, während der Ersteinrichtung oder zu einem späteren Zeitpunkt über das Dashboard. Die Medien sollten dabei direkt auf dem Server gespeichert sein, oder auf einem mit dem Server verbundenen Laufwerk, oder aber auf einem im Betriebssystem eingehängten Netzwerkspeichergerät. |
Bevorzugte Metadatensprache auswählen | Wählt Eure bevorzugte Sprache, z.B. Deutsch. |
Fernverbindungen zum Jellyfin-Server zulassen | Nein. |
Sobald die Ersteinrichtung abgeschlossen ist, schließt den Port 8096
:
sudo ufw delete allow 8096/tcp
Hier geht's zum 2-minütigen Zusammenfassungsvideo
Weboberfläche¶
Als nächstes richten wir einen Apache Virtual Host als Reverse Proxy ein, um auf die Jellyfin-Weboberfläche zuzugreifen. Untenstehend eine ausführliche Anleitung.
Hier geht's zur Schritt-für-Schritt-Anleitung
Erstellt eine Apache-Konfigurationsdatei:
sudo vi /etc/apache2/sites-available/mymedia.gofoss.duckdns.org.conf
Fügt den folgenden Inhalt hinzu und passt die Einstellungen an Eure eigene Konfiguration an, z. B. den Domain-Namen (mymedia.gofoss.duckdns.org
), den Pfad zu den SSL-Schlüsseln, die IP-Adressen und so weiter:
<VirtualHost *:80>
ServerName mymedia.gofoss.duckdns.org
ServerAlias www.mymedia.gofoss.duckdns.org
Redirect permanent / https://mymedia.gofoss.duckdns.org/
</VirtualHost>
<VirtualHost *:443>
ServerName mymedia.gofoss.duckdns.org
ServerAlias www.mymedia.gofoss.duckdns.org
ServerSignature Off
SecRuleEngine Off
SSLEngine On
SSLCertificateFile /etc/dehydrated/certs/gofoss.duckdns.org/fullchain.pem
SSLCertificateKeyFile /etc/dehydrated/certs/gofoss.duckdns.org/privkey.pem
DocumentRoot /var/www
<Location />
Order deny,allow
Deny from all
Allow from 127.0.0.1
Allow from 192.168.1.0/24
Allow from 10.8.0.1/24
</Location>
ProxyPreserveHost On
ProxyPass "/socket" "ws://127.0.0.1:8096/socket"
ProxyPassReverse "/socket" "ws://127.0.0.1:8096/socket"
ProxyPass "/" "http://127.0.0.1:8096/"
ProxyPassReverse "/" "http://127.0.0.1:8096/"
ErrorLog ${APACHE_LOG_DIR}/mymedia.gofoss.duckdns.org-error.log
CustomLog ${APACHE_LOG_DIR}/mymedia.gofoss.duckdns.org-access.log combined
</VirtualHost>
Speichert und schließt die Datei (:wq!
).
Beachtet, dass die SSL-Verschlüsselung für Jellyfin mit der Anweisung SSLEngine On
aktiviert und das zuvor erstellte SSL-Zertifikat /etc/dehydrated/certs/gofoss.duckdns.org/fullchain.pem
sowie der private SSL-Schlüssel /etc/dehydrated/certs/gofoss.duckdns.org/privkey.pem
verwendet wurden.
Beachtet ebenfalls, dass ModSecurity in der Apache-Konfigurationsdatei mit der Anweisung SecRuleEngine Off
deaktiviert wurde, da Jellyfin und ModSecurity nicht gut miteinander harmonieren.
Aktiviert als nächstes den Apache Virtual Host und ladet Apache neu:
sudo a2ensite mymedia.gofoss.duckdns.org.conf
sudo systemctl reload apache2
Konfiguriert Pi-Hole, um die lokale Adresse von Jellyfin nutzen zu können. Ruft dazu https://mypihole.gofoss.duckdns.org
auf und meldet Euch über die Pi-Hole-Weboberfläche an (passt die URL entsprechend an). Öffnet den Menüeintrag Locale DNS Records
und fügt die folgende Domain/IP-Kombination hinzu (passt wiederum die URL sowie IP entsprechend an):
DOMAIN: mymedia.gofoss.duckdns.org
IP ADDRESS: 192.168.1.100
Ruft https://mymedia.gofoss.duckdns.org auf und meldet Euch als jellyfinadmin
an (passt den Benutzernamen entsprechend an).
Hier geht's zum 1-minütigen Zusammenfassungsvideo
Clients¶
Jellyfin unterstützt verschiedene Clients für Desktop-, TV- oder mobile Geräte. Wählt Euren bevorzugten Client und folgt den Installationsanweisungen auf Jellyfins Webseite.
BenutzerInnen anlegen¶
Jellyfin unterscheidet zwischen zwei Nutzertypen:
-
Administratoren haben Vollzugriff und können Medien und Nutzer hinzufügen, bearbeiten und entfernen. Darüber hinaus können sie Jellyfin warten und aktualisieren. In unserem Beispiel wurde der Administrator
jellyfinadmin
während des Installationsprozesses angelegt. Weitere Administratoren können hinzugefügt werden. -
BenutzerInnen haben nur begrenzten Zugang zu Jellyfin. Nutzereigenschaften sind individuell konfigurierbar.
Hier geht's zur Schritt-für-Schritt-Anleitung
Anweisungen | Beschreibung |
---|---|
Anmelden | Ruft https://mymedia.gofoss.duckdns.org auf und meldet Euch als Administrator an, z.B. jellyfinadmin (passt den Admin-Namen entsprechend an). |
Einstellungen | Sucht den Eintrag Menü ‣ Übersicht ‣ Benutzer ‣ Benutzer hinzufügen auf. |
BenutzerInnen hinzufügen | Gebt einen Benutzernamen sowie ein sicheres, individuelles Passwort an. Klickt anschließend auf Speichern . Legt zugleich fest, auf welche Bibliotheken die BenutzerInnen zugreifen können. |
Nutzerrechte festlegen | Optional können weitere Einstellungen festgelegt werden, wie z.B.: • Administratoren-Rechte • Live TV Zugriff • Transkodierung • Eingeschränkte Internetgeschwindigkeit • Erlaubnis, Medien zu löschen • Fernsteuerung • Kontosperrung • Zugriff auf Bibliotheken und Geräte • Kindersicherung • Pin-Code |
Hier geht's zum 1-minütigen Zusammenfassungsvideo
Administratoren & BenutzerInnen benötigen einen VPN-Zugang
BenutzerInnen müssen über VPN mit dem Server verbunden sein, um auf Jellyfin zugreifen zu können.
Untertitel¶
Jellyfin unterstützt sowohl eingebettete als auch externe Untertitel. Mit dem Open Subtitle Plugin können Untertitel automatisch heruntergeladen werden. Wie man externe Untertitel zu Jellyfin hinzufügt, wird im Folgenden beschrieben.
Hier geht's zur Schritt-für-Schritt-Anleitung
Instructions | Description |
---|---|
Anmelden | Ruft https://mymedia.gofoss.duckdns.org auf und meldet Euch als Administrator an, z.B. jellyfinadmin (passt den Admin-Namen entsprechend an). |
Plugin installieren | Sucht den Eintrag Menü ‣ Übersicht ‣ Plugins ‣ Katalog ‣ Open Subtitles auf und klickt auf Installieren . |
Neustarten | Sucht den Eintrag Menü ‣ Übersicht auf und klickt auf Neustarten . |
Plugin konfigurieren | Das Open Subtitle Plugin benötigt grundsätzlich kein Konto, um Untertitel herunterladen. Falls dennoch erwünscht, könnt Ihr optional auf https://www.opensubtitles.org ein Konto einrichten. Ruft in diesem Fall anschließend den Eintrag Menü ‣ Übersicht ‣ Plugins ‣ Open Subtitles auf und gebt Eure Open Subtitle-Benutzerdaten an. |
Einstellungen | Sucht den Eintrag Menü ‣ Bibliotheken ‣ Filme oder Serien ‣ Bibliothek verwalten auf und legt weitere Einstellungen im Abschnitt Untertitel Downloads fest:• Herunterzuladende Sprachen • Untertitel Downloader • Download je nach Dateiname oder Ton überspringen • Speicherort für Untertitel |
Untertitel herunterladen | Jellyfin lädt von selbst regelmäßig fehlende Untertitel herunter. Um manuell einen Download zu starten, ruft den Eintrag Menü ‣ Übersicht ‣ Geplante Aufgaben auf und klickt auf Fehlende Untertitel herunterladen . |
Hier geht's zum 3-minütigen Zusammenfassungsvideo
Upgrade¶
Upgrades auf aktuelle Jellyfin-Versionen werden automatisch durch den Paketmanager des Ubuntu-Servers durchgeführt. Um ein manuelles Update vorzunehmen könnt Ihr den untenstehenden Anweisungen folgen.
Hier geht's zur Schritt-für-Schritt-Anleitung
Meldet Euch auf dem Server an und führt den folgenden Befehl aus:
sudo apt update && sudo apt upgrade
Startet anschließend Jellyfin neu und vergewissert Euch, dass alles richtig läuft (der Status sollte "Active" sein):
sudo systemctl restart jellyfin
sudo systemctl status jellyfin
Unterstützung¶
Weitere Einzelheiten findet Ihr in der Jellyfin Dokumentation. Oder bittet die Jellyfin-Gemeinschaft um Hilfe.