GNU/Linux >> LINUX-Kenntnisse >  >> Debian

So installieren Sie Jellyfin Media Server auf Debian 10 Buster

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

  1. Verwenden Sie einen Torrent-Client wie Deluge.
  2. Erfahren Sie, wie Sie aus dem Usenet herunterladen.

Vorteile des Usenet

  1. Es bietet Ihnen mehr Privatsphäre, da andere nicht sehen können, was Sie herunterladen.
  2. Superschnelle Downloadgeschwindigkeit.
  3. 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.


Debian
  1. So installieren Sie Debian 10 (Buster)

  2. So installieren Sie Docker auf Debian 10 Buster

  3. So installieren Sie Plex Media Server unter Debian 9

  4. So installieren Sie MySQL Server auf Debian 10 Buster

  5. So installieren Sie R unter Debian 10 Buster

So installieren Sie Plex Media Server auf Debian 9 Stretch

So installieren Sie Plex Media Server auf Debian 10 Buster

So installieren Sie Jellyfin Media Server unter Debian 11

So installieren Sie Plex Media Server unter Debian 11

So installieren Sie einen Debian 10 (Buster) Minimalserver

So installieren Sie Plex Media Server unter Debian 10