Dieses Tutorial zeigt Ihnen, wie Sie den Jellyfin-Medienserver auf einem Debian 10-Server/Desktop installieren. Jellyfin ist eine kostenlose Open-Source-Anwendung, mit der Sie Ihre Filme, Fernsehsendungen, Musik und Fotos in einer schönen Oberfläche organisieren und diese Mediendateien auf Ihrem PC, Tablet, Telefon, Fernseher, Roku usw. im Netzwerk oder darüber streamen können das Internet. Jellyfin kann unter Linux, MacOS und Windows installiert werden.
Jellyfin-Merkmale
Jellyfin ist ein Fork des Emby-Medienservers. Es enthält viele der gleichen Funktionen wie Plex und Emby.
- Im Gegensatz zu Plex oder Emby ist Jellyfin 100 % kostenlos und Open Source. Keine Werbung. Keine Wiedergabebeschränkung für mobile Apps. (Obwohl die iOS-App keine Videos im Hintergrund abspielen kann.)
- Sehen Sie sich Live-TV an und stellen Sie automatische Aufzeichnungen ein, um Ihre Bibliothek zu erweitern.
- Bildmaterial und Metadaten automatisch von TheTVDB, TheMovieDB, The OpenMovie Database und Rotten Tomatoes abrufen.
- Unterstützt DLNA.
- Optionale Plugins können installiert werden, um zusätzliche Funktionen bereitzustellen.
- Unterstützt die Hardwarebeschleunigung der Videokodierung/-dekodierung mit FFMpeg.
- Und mehr.
Installieren Sie Jellyfin Media Server auf Debian 10
Jellyfin ist nicht im Standard-Debian-Repository enthalten, hat aber ein eigenes Repository. Führen Sie den folgenden Befehl aus, um das Jellyfin-Repository zu Ihrem Debian 10-System hinzuzufügen.
echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/debian buster main" | sudo tee /etc/apt/sources.list.d/jellyfin.list
Führen Sie als Nächstes den folgenden Befehl aus, um den Jeffyfin-GPG-Schlüssel in das Debian-System zu importieren, damit APT die Paketintegrität während der Installation überprüfen kann.
wget -O - https://repo.jellyfin.org/jellyfin_team.gpg.key | sudo apt-key add -
Und da dieses Repository eine HTTPS-Verbindung verwendet, müssen wir auch apt-transport-https
installieren und ca-certificates
Paket.
sudo apt install apt-transport-https ca-certificates
Aktualisieren Sie schließlich den Paketindex auf Ihrem Debian-System und installieren Sie Jellyfin.
sudo apt update sudo apt install jellyfin
Dieser Befehl installiert auch 3 andere Pakete als Abhängigkeiten:
jellyfin-ffmpeg
:für die Videotranskodierung.jellyfin-server
:der Back-End-Server.jellyfin-web
:die Front-End-Weboberfläche.
Jetzt ist der Jellyfin-Medienserver installiert, wir können seinen Status überprüfen mit:
systemctl status jellyfin
Wie Sie sehen können, läuft es auf meinem Debian 10-System. (Drücken Sie q
Taste, um die Kontrolle über das Terminal zurückzugewinnen.)
Wenn der Jellyfin-Medienserver nicht läuft, können Sie ihn starten mit:
sudo systemctl start jellyfin
Erste Einrichtung des Jellyfin-Medienservers
Die webbasierte Verwaltungsschnittstelle ist unter Port 8096 verfügbar. Sie können über die folgende URL auf die Jellyfin-Webschnittstelle zugreifen.
http://127.0.0.1:8096/web
Wenn Sie Jellyfin auf einem Remote-Debian-Server installiert haben, müssen Sie einen Reverse-Proxy mit Nginx oder Apache einrichten, um auf die Web-Benutzeroberfläche zuzugreifen, was später in diesem Tutorial erklärt wird.
Der erste Schritt besteht darin, Ihre bevorzugte Sprache auszuwählen.
Erstellen Sie auf dem nächsten Bildschirm ein Benutzerkonto.
Jetzt können Sie Bibliotheken hinzufügen. Klicken Sie auf Add Media Library
Schaltfläche.
Wählen Sie einen Inhaltstyp aus (Filme, Musik, Fernsehsendungen usw.) und Anzeigename.
Klicken Sie dann auf das Plus (+) Schaltfläche, um einen Ordner mit den Inhalten auszuwählen.
Beachten Sie, dass die jellyfin
Der Benutzer muss Lese- und Ausführungsberechtigungen für Ihre Medienverzeichnisse haben. Beispielsweise ist meine externe 2T-Festplatte unter /media/linuxbabe/
gemountet , die root gehört. Benutzer nicht in der Gruppe root
kann nicht darauf zugreifen, also führe ich den folgenden Befehl aus, um dem Benutzer jellyfin
zu geben Lese- und Ausführungsberechtigung. (Ich empfehle nicht, den Besitz mit chown
zu ändern oder chgrp
Befehl. Mit dem setfacl
Befehl genügt.)
sudo setfacl -m u:jellyfin:rx /media/linuxbabe/
Möglicherweise müssen Sie auch Berechtigungen für einzelne Medienverzeichnisse wie unten zuweisen.
sudo setfacl -m u:jellyfin:rx /media/linuxbabe/directory-name
Es kann verlockend sein, das rekursive Flag (-R
), was jellyfin
ergibt Lese- und Ausführungsberechtigung für jede Datei und jedes Unterverzeichnis auf dem Laufwerk.
sudo setfacl -R -m u:jellyfin:rx /media/linuxbabe/
Wenn Ihre externe Festplatte nur zum Speichern von Mediendateien verwendet wird, können Sie dies tun, aber wenn Sie vertrauliche Dateien auf der externen Festplatte haben, tun Sie es nicht.
Nachdem Sie Ihre Medienordner hinzugefügt haben, können Sie die Bibliothekseinstellungen konfigurieren. Wählen Sie Ihre Sprache, Ihr Land usw.
Klicken Sie auf Ok
und Next
Taste. Sie können später jederzeit weitere Bibliotheken hinzufügen. Im nächsten Schritt können Sie auswählen, ob der Fernzugriff aktiviert werden soll. Ich empfehle nicht, die native Fernzugriffsmethode zu aktivieren, da sie keine HTTPS-Verschlüsselung bietet, also deaktivieren Sie beide Kontrollkästchen. Wenn Sie Fernzugriff benötigen, lesen Sie bitte weiter unten in diesem Artikel, wie Sie einen Reverse-Proxy einrichten.
Klicken Sie auf Next
und Finish
Taste. Melden Sie sich abschließend bei Ihrem Jellyfin-Konto an.
Wiederholen Sie die Ersteinrichtung
Wenn Sie bei der Ersteinrichtung einen Fehler gemacht haben, können Sie von vorne beginnen. Bearbeiten Sie zuerst die Jellyfin-Konfigurationsdatei.
sudo nano /etc/jellyfin/system.xml
Ändern
<IsStartupWizardCompleted>true</IsStartupWizardCompleted>
zu
<IsStartupWizardCompleted>false</IsStartupWizardCompleted>
Speichern und schließen Sie die Datei. Starten Sie dann Jellyfin neu.
sudo systemctl restart jellyfin
Besuchen Sie nun localhost:8096/web
und Sie sehen erneut den Einrichtungsassistenten.
Wo man Filme und Fernsehsendungen herunterladen kann
- Verwenden Sie einen Torrent-Client wie Deluge.
- Erfahren Sie, wie Sie aus dem Usenet herunterladen.
Vorteile des Usenet
- Es bietet Ihnen mehr Privatsphäre, da andere nicht sehen können, was Sie herunterladen.
- Superschnelle Downloadgeschwindigkeit.
- Dateien werden normalerweise viel länger aufbewahrt als Torrent-Dateien. Beispielsweise speichert Newsdemon Dateien für 4430 Tage (mehr als 12 Jahre), sodass Sie alte Inhalte sehr schnell herunterladen können.
Reverse-Proxy einrichten
Da es auf 127.0.0.1:8096
lauscht , die Jellyfin-Webschnittstelle ist nur für Verbindungen von demselben Computer verfügbar. Um von einem entfernten Computer aus auf die Jellyfin-Weboberfläche zugreifen zu können, können wir mit Nginx oder Apache einen Reverse-Proxy für Jellyfin einrichten.
Nginx
Nginx ist ein sehr beliebter Webserver und Reverse-Proxy. Wenn Sie lieber Nginx verwenden, führen Sie den folgenden Befehl aus, um es zu installieren.
sudo apt install nginx
Erstellen Sie dann eine Serverblockdatei für Jellyfin.
sudo nano /etc/nginx/conf.d/jellyfin.conf
Fügen Sie dieser Datei den folgenden Inhalt hinzu. Ersetzen Sie jellyfin.example.com
mit eigenem Domainnamen. Sie sollten auch einen DNS-A-Eintrag für diese Subdomain hinzufügen. Wenn Sie keinen echten Domainnamen haben, empfehle ich, zu NameCheap zu gehen, um einen zu kaufen. Der Preis ist niedrig und sie bieten Whois-Datenschutz lebenslang kostenlos.
server { listen 80; listen [::]:80; server_name jellyfin.example.com; access_log /var/log/nginx/jellyfin.access; error_log /var/log/nginx/jellyfin.error; set $jellyfin 127.0.0.1; location / { proxy_pass http://127.0.0.1:8096; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Protocol $scheme; proxy_set_header X-Forwarded-Host $http_host; # Disable buffering when the nginx proxy gets very resource heavy upon streaming proxy_buffering off; } # location block for /web - This is purely for aesthetics so /web/#!/ works instead of having to go to /web/index.html/#!/ location ~ ^/web/$ { # Proxy main Jellyfin traffic proxy_pass http://$jellyfin:8096/web/index.html/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Protocol $scheme; proxy_set_header X-Forwarded-Host $http_host; } location /socket { # Proxy Jellyfin Websockets traffic proxy_pass http://$127.0.0.1:8096; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Protocol $scheme; proxy_set_header X-Forwarded-Host $http_host; } # Security / XSS Mitigation Headers add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options "nosniff"; }
Speichern und schließen Sie diese Datei. Testen Sie dann die Nginx-Konfiguration.
sudo nginx -t
Wenn der Test erfolgreich ist, laden Sie Nginx neu, damit die Änderung wirksam wird.
sudo systemctl reload nginx
Jetzt können Sie über jellyfin.example.com
auf den Jellyfin-Medienserver zugreifen .
Apache
Wenn Sie Apache gegenüber Nginx bevorzugen, installieren Sie den Apache-Webserver mit dem folgenden Befehl.
sudo apt install apache2
Um Apache als Reverse-Proxy zu verwenden, müssen wir den proxy
aktivieren Module und das Header-Modul.
sudo a2enmod proxy proxy_http headers proxy_wstunnel
Erstellen Sie dann eine virtuelle Hostdatei für Jellyfin.
sudo nano /etc/apache2/sites-available/jellyfin.conf
Fügen Sie die folgenden Konfigurationen in die Datei ein. Ersetzen Sie jellyfin.example.com
mit Ihrem tatsächlichen Domainnamen. Vergessen Sie nicht, einen DNS-A-Eintrag für diese Subdomain zu erstellen. Wenn Sie keinen echten Domainnamen haben, empfehle ich, zu NameCheap zu gehen, um einen zu kaufen. Der Preis ist niedrig und sie bieten Whois-Datenschutz lebenslang kostenlos.
<VirtualHost *:80> ServerName jellyfin.example.com ErrorDocument 404 /404.html #HTTP proxy ProxyPass / http://localhost:8096/ ProxyPassReverse / http://localhost:8096/ #Websocket proxy SSLProxyEngine on <Location /:/websockets/notifications> ProxyPass wss://localhost:8096/:/websockets/notifications ProxyPassReverse wss://localhost:8096/:/websockets/notifications </Location> Header always unset X-Frame-Options </VirtualHost>
Speichern und schließen Sie die Datei. Aktivieren Sie dann diesen virtuellen Host.
sudo a2ensite jellyfin.conf
Starten Sie Apache neu
sudo systemctl restart apache2
Jetzt können Sie über den Domainnamen jellyfin.example.com
auf den Jellyfin-Medienserver zugreifen .
HTTPS aktivieren
Um den HTTP-Verkehr zu verschlüsseln, wenn Sie den Jellyfin-Server von außerhalb besuchen, können wir HTTPS aktivieren, indem wir ein kostenloses TLS-Zertifikat installieren, das von Let’s Encrypt ausgestellt wurde. Führen Sie den folgenden Befehl aus, um den Let’s Encrypt-Client (certbot) unter Debian 10 zu installieren.
sudo apt install certbot
Wenn Sie Nginx verwenden, müssen Sie auch das Certbot Nginx-Plugin installieren.
sudo apt install python3-certbot-nginx
Führen Sie als Nächstes den folgenden Befehl aus, um das TLS-Zertifikat zu erhalten und zu installieren.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d jellyfin.example.com
Wenn Sie Apache verwenden, müssen Sie das Certbot-Apache-Plugin installieren.
sudo apt install python3-certbot-apache
Führen Sie als Nächstes den folgenden Befehl aus, um das TLS-Zertifikat zu erhalten und zu installieren.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d jellyfin.example.com
Wo:
--nginx
:Verwenden Sie das nginx-Plugin.--apache
:Verwenden Sie das Apache-Plugin.--agree-tos
:Nutzungsbedingungen akzeptieren.--redirect
:HTTPS durch 301-Umleitung erzwingen.--hsts
:Fügen Sie jeder HTTP-Antwort den Strict-Transport-Security-Header hinzu. Erzwingen, dass der Browser immer TLS für die Domäne verwendet. Schützt vor SSL/TLS-Stripping.--staple-ocsp
:Aktiviert OCSP-Heften. Eine gültige OCSP-Antwort wird an das Zertifikat geheftet, das der Server während TLS anbietet.
Das Zertifikat sollte nun abgerufen und automatisch installiert werden.
Und Sie können über HTTPS auf die Jellyfin-Webschnittstelle zugreifen:https://jellyfin.example.com
.
Wie man Jellyfin auf Debian 10 aktualisiert
Wenn eine neue Version des Jellyfin-Medienservers herauskommt, können Sie sie aktualisieren, indem Sie die folgenden Befehle ausführen.
sudo apt update sudo apt upgrade
Starten Sie dann Jellyfin neu.
sudo systemctl restart jellyfin
Fehlerbehebung
Wenn auf Ihrem Debian-Server WireGuard VPN ausgeführt wird, sehen Sie möglicherweise den folgenden Fehler im Jellyfin-Protokoll (sudo journalctl -eu jellyfin
).
[ERR] Error sending socket message from 10.0.0.102 to 239.255.255.250:1900 System.Net.Sockets.SocketException (0xFFFFFFFF): Bad value for ai_flags
Dieser Fehler bedeutet, dass die Nachricht nicht von Ihrer WireGuard-Schnittstelle an die Multicast-Adresse 239.255.255.250 von SSDP (Simple Service Discovery Protocol) gesendet werden kann. Dies liegt daran, dass Ihre WireGuard-Schnittstelle die IP-Adresse nicht erreichen darf.
Um dieses Problem zu lösen, bearbeiten Sie Ihre WireGuard-Schnittstellenkonfigurationsdatei.
sudo nano /etc/wireguard/your-interface.conf
Suchen Sie die AllowedIPs
Parameter. Meins ist wie unten.
AllowedIPs = 10.0.0.0/8
Wie Sie sehen können, darf der VPN-Client nur eine Verbindung zum 10.0.0.0/8-Netzwerk herstellen. Fügen Sie nun den 239.255.255.250
hinzu Adresse.
AllowedIPs = 10.0.0.0/8, 239.255.255.250
Speichern und schließen Sie die Datei. Starten Sie WireGuard neu.
sudo systemctl restart [email protected]
Starten Sie Jellyfin neu.
sudo systemctl restart jellyfin
Überprüfen Sie das Jellyfin-Protokoll (sudo journalctl -eu jellyfin
) wieder. Der obige Fehler sollte weg sein.