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

So installieren Sie Jellyfin Media Server auf Debian 11 Bullseye

Qualle ist eine kostenlose Open-Source-Multimedia-Anwendung zum Organisieren, Verwalten und Freigeben digitaler Mediendateien an vernetzte Geräte in einem internen Netzwerk, auf die auf Wunsch aus der Ferne zugegriffen werden kann. Es ist eine plattformübergreifende Alternative zu anderen bedeutenden Spielern wie Plex und Emby. Sie können von einer Reihe von Geräten wie Mobilgeräten, Tablets, Fernsehern und PCs oder beliebten Mediengeräten wie Roku oder Nvidia Shield darauf zugreifen. Jellyfin stellt auch Medien für DLNA- und Chromecast-fähige Geräte bereit und kann Metadaten abrufen, genau wie Plex und Emby, um Ihre Medien in einem reichhaltigen Multimedia-Erlebnis in Kategorien zu organisieren.

Wenn Sie es testen möchten, hat Jellyfin einen Demo-Server erstellt um sich anzumelden und es selbst zu überprüfen.

Im folgenden Tutorial erfahren Sie, wie Sie Jellyfin unter Debian 11 Bullseye installieren und wie Sie Ihre Medienlaufwerke so einstellen, dass sie korrekten Lese- und Schreibzugriff haben. plus, Wenn Sie eine Apache- oder Nginx-Reverse-Proxy-Option remote streamen möchten, wie Sie sie mit dem kostenlosen SSL-Zertifikat von Let’s Encrypt für beide Webanwendungen sichern können.

Debian aktualisieren

Bevor Sie beginnen, sicherzustellen, dass die Installation reibungslos verläuft, aktualisieren Sie zunächst Ihr System wie folgt.

sudo apt update && sudo apt upgrade -y

Erforderliche Pakete installieren

Bevor Sie mit dem Tutorial fortfahren, müssen Sie sicherstellen, dass die folgenden Pakete installiert sind:

sudo apt install apt-transport-https ca-certificates gnupg2 curl git -y

Wenn Sie sich nicht sicher sind, führen Sie einfach den Befehl aus; es wird dir nicht schaden.

Jellyfin-Medienserver installieren

Jellyfin wird nicht mit dem Standard-Repository von Debian geliefert, daher müssen Sie den Jellyfin-GPG-Schlüssel und das Repository importieren.

GPG-Schlüssel importieren

Zuerst müssen Sie den GPG-Schlüssel importieren, um die Authentizität des Pakets zu überprüfen; ohne sie schlägt die Installation fehl:

sudo wget -O- https://repo.jellyfin.org/jellyfin_team.gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/jellyfin.gpg

Repository importieren

Der nächste Schritt besteht darin, das Repository zu importieren. Sie können die stabile (empfohlen) oder die instabile (Beta-/Entwicklungs-) Version importieren. Soweit ich weiß, kann die instabile Version gut funktionieren, aber ich würde dies nur Benutzern empfehlen, die sich sicherer fühlen Terminal und Behebung von Problemen, wenn sie auftreten und Zeit haben.

IMPORTIEREN SIE NUR EIN REPOSITORY GLEICHZEITIG.

JellyFin-Stall importieren (empfohlen):

echo "deb [arch=$( dpkg --print-architecture ) signed-by=/usr/share/keyrings/jellyfin.gpg] https://repo.jellyfin.org/debian bullseye main" | sudo tee /etc/apt/sources.list.d/jellyfin.list

Importiere JellyFin unstable:

echo "deb [arch=$( dpkg --print-architecture ) signed-by=/usr/share/keyrings/jellyfin.gpg] https://repo.jellyfin.org/debian bullseye main unstable" | sudo tee /etc/apt/sources.list.d/jellyfin.list

Aktualisieren Sie als Nächstes Ihre Repository-Liste, um die neuen Ergänzungen wie folgt zu erkennen:

sudo apt update

Installieren Sie Jellyfin

Nachdem Sie das apt-Repository sortiert haben, können Sie nun mit dem folgenden Befehl mit der Installation des Medienservers fortfahren:

sudo apt install jellyfin -y

Nach der Installation wird der Jellyfin-Dienst automatisch gestartet. Bestätigen Sie dies, verwenden Sie den folgenden systemctl-Befehl .

systemctl status jellyfin

Beispielausgabe:

Wenn Ihr Medienserver aus irgendeinem Grund nicht gestartet wurde, verwenden Sie die folgenden Befehle:

Dienst starten:

sudo systemctl start jellyfin

Beim Systemstart aktivieren:

sudo systemctl enable jellyfin

Ersteinrichtung des Jellyfin-Medienservers

Um auf die Jellyfin-Web-Benutzeroberfläche zuzugreifen, müssen Sie Ihren Internetbrowser öffnen und eingeben 127.0.0.1 auf dem Jellyfin-Standardport 8096.

Beispiel unten:

http://127.0.0.1:8096

Sie werden auf den Begrüßungsbildschirm für die Ersteinrichtung des Servers stoßen.

Wählen Sie Ihre bevorzugte Anzeigesprache aus und klicken Sie auf die Weiter -> Schaltfläche um fortzufahren.

Als nächstes werden Sie darauf stoßen, einen Benutzernamen und ein Passwort zu erstellen.

Erstellen Sie einen Benutzernamen und ein Passwort; Wie im obigen Bild angegeben, können weitere Benutzer eingegeben werden, sobald die Ersteinrichtung abgeschlossen ist. Klicken Sie anschließend auf die Weiter -> Schaltfläche um fortzufahren.

Jetzt können Sie Ihre Medienbibliotheken einrichten.

Klicken Sie auf das große + (Pluszeichen) oder Medienbibliothek hinzufügen Taste. Von hier aus können Sie Ihren Medienordner hinzufügen, die Einrichtung ist sehr einfach, und Benutzer von Plex würden besonders eine sehr große Ähnlichkeit empfinden. Klicken Sie anschließend auf Weiter -> Schaltfläche, um fortzufahren.

Der nächste Bildschirm ist der Bildschirm Metadatensprache:

Wählen Sie Ihre Sprache , klicken Sie dann auf die Weiter -> Schaltfläche .

Wenn Sie den Server verwenden oder besser gesagt von außen und/oder hinter einem Proxy zugreifen, stellen Sie sicher, dass Remoteverbindungen zu diesem Server zulassen wie die Standardeinstellung. Wenn Sie nur auf ein lokales Netzwerk zugreifen, deaktivieren Sie dies.

Jetzt sehen Sie den Bildschirm, der besagt, dass Sie die Installation abgeschlossen haben.

Einfacher Schritt, klicken Sie auf die Fertigstellen-Schaltfläche zu beenden.

Sie werden zum Anmeldebildschirm weitergeleitet, um sich mit dem Benutzerkonto und Passwort anzumelden, das Sie bei der Ersteinrichtung erstellt haben.

Jetzt befinden Sie sich in Ihrem Dashboard.

Wenn Sie während der Installation Medien einrichten, werden diese automatisch angezeigt.

Erste Einrichtung zurücksetzen

Wenn Sie während der Ersteinrichtung einen Fehler gemacht haben, können Sie mit den folgenden Schritten zurückkehren:

Öffnen Sie die Datei system.xml:

sudo nano /etc/jellyfin/system.xml

Ändern Sie Folgendes in Zeile 4:

<IsStartupWizardCompleted>true</IsStartupWizardCompleted>

Dazu:

<IsStartupWizardCompleted>false</IsStartupWizardCompleted>

Starten Sie den Jellyfin-Server neu:

sudo systemctl restart jellyfin

Rufen Sie nach dem Zurücksetzen der Ersteinrichtung die HTTP://127.0 .0.1:8096 und starten Sie den Vorgang erneut.

Berechtigungen für Medienlaufwerke einrichten

Jellyfin benötigt eine Lese- und Ausführungsberechtigung für Ihre Medienverzeichnisse. Sie können chown verwenden oder chgrp Befehle; Sie werden jedoch lernen, den setfacl-Befehl zu verwenden für das Tutorium. Dies wird behandelt, da es später möglicherweise sicherer ist und Sie den Zugriff im Vergleich zur Standardmethode von chown und chgrp auf einer sehr detaillierten Ebene steuern können.

Führen Sie zur Installation den folgenden Befehl aus:

sudo apt install acl -y

Debian sollte dies standardmäßig installiert haben, aber führen Sie den Befehl zur Sicherheit aus, wenn Sie sich nicht sicher sind.

Jetzt haben Sie einige Optionen mit dem setfalc-Befehl , aber realistischerweise werden Sie nicht jedem Film und jeder Fernsehsendung Berechtigungen erteilen; Stattdessen ist es einfacher, das rekursive Flag (-R) zu verwenden. die Jellyfin Zugriff auf alles bietet, was sich im Verzeichnis und in den Unterverzeichnissen befindet.

sudo setfacl -R -m u:jellyfin:rx /media/mymediadrive

Wenn Sie einzelnen Medienverzeichnissen oder Dateien Berechtigungen zuweisen müssen, verwenden Sie Folgendes:

sudo setfacl -m u:jellyfin:rx /media/mymediadrive/example-name-of-file-or-directory

Apache als Reverse-Proxy einrichten

Sie können einen Reverse-Proxy einrichten, um von einem Remote-Computer oder -Netzwerk auf Jellyfin zuzugreifen. In diesem Beispiel richtet das Tutorial einen Apache-Proxy-Server ein. Wenn Sie Nginx verwenden möchten, überspringen Sie diesen Teil und gehen Sie zum Setup von Nginx als Reverse Proxy.

Installieren Sie zuerst Apache:

sudo apt install apache2 -y

Standardmäßig sollte Apache aktiviert sein, wenn es nicht aktiviert ist. verwenden:

sudo systemctl start apache2

Verwenden Sie den folgenden Befehl, damit Apache beim Booten gestartet werden kann:

sudo systemctl enable apache2

Beispielausgabe bei Erfolg:

Synchronizing state of apache2.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable apache2

Überprüfen Sie den Status von Apache:

systemctl status apache2

Beispielausgabe:

Um Apache als Reverse-Proxy zu verwenden, müssen Sie das Modul mit dem folgenden Befehl aktivieren:

sudo a2enmod proxy proxy_http headers proxy_wstunnel

Erstellen Sie als Nächstes einen virtuellen Host für Ihre Subdomain:

sudo nano /etc/apache2/sites-available/jellyfin.conf

Sie benötigen einen aktiven Domainnamen, der für nur 1 bis 2 Dollar erworben werden kann, wenn Sie noch keinen haben. NameCheap hat die besten günstigen Domains und wenn Sie eine .com bevorzugen, verwenden Sie Cloudflare.

Nachdem Sie Ihre Subdomain erstellt haben, fügen Sie Folgendes zur Serverblockdatei hinzu:

<VirtualHost *:80>
    ServerName jellyfin.example.com

    # Comment to prevent HTTP to HTTPS redirect
    Redirect permanent / https://DOMAIN_NAME

    ErrorLog /var/log/apache2/DOMAIN_NAME-error.log
    CustomLog /var/log/apache2/DOMAIN_NAME-access.log combined
</VirtualHost>

# If you are not using a SSL certificate, replace the 'redirect'
# line above with all lines below starting with 'Proxy'
<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName DOMAIN_NAME
    # This folder exists just for certbot(You may have to create it, chown and chmod it to give apache permission to read it)
    DocumentRoot /var/www/html/jellyfin/public_html

    ProxyPreserveHost On

    # Letsencrypt's certbot will place a file in this folder when updating/verifying certs
    # This line will tell apache to not to use the proxy for this folder.
    ProxyPass "/.well-known/" "!"

    ProxyPass "/socket" "ws://SERVER_IP_ADDRESS:8096/socket"
    ProxyPassReverse "/socket" "ws://SERVER_IP_ADDRESS:8096/socket"

    ProxyPass "/" "http://SERVER_IP_ADDRESS:8096/"
    ProxyPassReverse "/" "http://SERVER_IP_ADDRESS:8096/"

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/DOMAIN_NAME/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/DOMAIN_NAME/privkey.pem
    Protocols h2 http/1.1

    # Enable only strong encryption ciphers and prefer versions with Forward Secrecy
    SSLCipherSuite HIGH:RC4-SHA:AES128-SHA:!aNULL:!MD5
    SSLHonorCipherOrder on

    # Disable insecure SSL and TLS versions
    SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

    ErrorLog /var/log/apache2/DOMAIN_NAME-error.log
    CustomLog /var/log/apache2/DOMAIN_NAME-access.log combined
</VirtualHost>
</IfModule>

Speichern Sie die Datei (CTRL+O) , Beenden Sie dann (CTRL+X) .

Führen Sie nun einen Probelauf durch, um sicherzustellen, dass die Apache-Konfiguration oder Ihr virtueller Host keine Fehler enthält:

sudo apache2ctl configtest

Wenn alles richtig funktioniert, sollte die Beispielausgabe so aussehen:

Syntax OK

Aktivieren Sie den virtuellen Host auf Apache wie folgt:

sudo a2ensite jellyfin.conf

Starten Sie dann Apache neu:

sudo systemctl restart apache2

Richten Sie Nginx als Reverse-Proxy ein

Sie können einen Reverse-Proxy einrichten, um von einem Remote-Computer oder -Netzwerk auf Jellyfin zuzugreifen. In diesem Beispiel richtet das Tutorial einen Nginx-Proxyserver ein.

Installieren Sie zuerst Nginx:

sudo apt install nginx -y

Standardmäßig sollte Nginx aktiviert sein, wenn es nicht aktiviert ist. verwenden:

sudo systemctl start nginx

Verwenden Sie den folgenden Befehl, um zu ermöglichen, dass Nginx beim Booten gestartet wird:

sudo systemctl enable nginx

Beispielausgabe bei Erfolg:

Synchronizing state of nginx.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable nginx

Überprüfen Sie den Status von Nginx:

systemctl status nginx

Beispielausgabe:

Wenn Sie den neuesten Nginx-Build installieren möchten, lesen Sie unser Tutorial zum Installieren des neuesten Nginx Mainline oder Stable o n Debian 11.

Erstellen Sie nun wie folgt einen neuen Serverblock:

sudo nano /etc/nginx/conf.d/jellyfin.conf

Sie benötigen einen aktiven Domainnamen, der für nur 1 bis 2 Dollar erworben werden kann, wenn Sie noch keinen haben. NameCheap hat die besten günstigen Domains und wenn Sie eine .com bevorzugen, verwenden Sie Cloudflare.

Nachdem Sie Ihre Subdomain erstellt haben, fügen Sie Folgendes zur Serverblockdatei hinzu:

server {
      listen 80;
      server_name jellyfin.example.com;

      access_log /var/log/nginx/jellyfin.access;
      error_log /var/log/nginx/jellyfin.error;

    set $jellyfin jellyfin;
    resolver 127.0.0.1 valid=30;

    # 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";

    location = / {
        return 302 https://$host/web/;
    }

    location / {
        # Proxy main Jellyfin traffic
        proxy_pass http://$jellyfin: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://$jellyfin:8096/socket;
        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;
    }
}

Speichern Sie die Datei (CTRL+O) , Beenden Sie dann (CTRL+X) .

Machen Sie jetzt einen Probelauf, um sicherzustellen, dass keine Fehler in der Nginx-Konfiguration oder Ihrem Serverblock vorhanden sind:

sudo nginx -t

Wenn alles richtig funktioniert, sollte die Beispielausgabe so aussehen:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Laden Sie Nginx neu, damit die Änderung wirksam wird:

sudo systemctl reload nginx

Wenn Sie Ihre Domain und DNS-Einträge so eingerichtet haben, dass sie auf Ihre Server-IP verweisen, können Sie jetzt unter jellyfin.example.com auf Ihren Jellyfin-Medienserver zugreifen .

Sichern Sie Nginx oder Apache mit Let’s Encrypt SSL Free Certificate

Idealerweise möchten Sie Ihren Apache oder Nginx auf HTTPS mit einem SSL-Zertifikat ausführen. Der beste Weg, dies zu tun, ist die Verwendung von Let’s Encrypt, einer kostenlosen, automatisierten und offenen Zertifizierungsstelle, die von der gemeinnützigen Internet Security Research Group (ISRG) betrieben wird.

Installieren Sie zuerst das certbot-Paket, das dem von Ihnen installierten Reverse-Proxy entspricht.

Apache:

sudo apt install python3-certbot-apache -y

Nginx:

sudo apt install python3-certbot-nginx -y

Führen Sie nach der Installation den folgenden Befehl aus, um die Erstellung Ihres Zertifikats zu starten:

Apache:

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d jellyfin.example.com

Nginx:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d jellyfin.example.com

Dieses ideale Setup umfasst erzwungene HTTPS-301-Umleitungen, einen Strict-Transport-Security-Header und OCSP-Stapling. Passen Sie einfach E-Mail und Domainnamen an Ihre Anforderungen an.

Jetzt lautet Ihre URL https://jellyfin.example.com statt HTTP://jellyfin.example.com .

So aktualisieren/aktualisieren Sie den Jellyfin Media Server

Jellyfin kann gemäß dem standardmäßigen apt update command aktualisiert werden dass Sie die meiste Zeit damit verbringen würden, Pakete auf Ihrem System zu aktualisieren.

Verwenden Sie den folgenden Befehl, um nach Updates zu suchen, und dies wird automatisch auch alles andere erkennen.

sudo apt update

Wenn einer verfügbar ist, verwenden Sie den Upgrade-Befehl:

sudo apt upgrade

Entfernen (Deinstallieren) von Jellyfin Media Server

Für Benutzer, die die Software nicht mehr benötigen, können Sie Jellyfin von Ihrem Debian-System entfernen.

Entfernen Sie zuerst die Software mit dem folgenden Befehl.

sudo autoremove install jellyfin --purge -y

Entfernen Sie als Nächstes das hinzugefügte Repository, wenn Sie nicht vorhaben, Jellyfin erneut zu verwenden.

sudo rm /etc/apt/sources.list.d/jellyfin.list

Und das ist alles; Sie haben Jellyfin erfolgreich von Ihrem System gelöscht.


Debian
  1. So installieren Sie Plex Media Server unter Debian 9

  2. So installieren Sie Jellyfin Media Server unter Debian 10

  3. So installieren Sie Docker in Debian 11 (Bullseye)

  4. So installieren Sie Jellyfin Media Server auf Debian 10 Buster

  5. So installieren Sie TeamViewer unter Debian 11 Bullseye

So installieren Sie Discourse auf dem Debian 11 Bullseye-Server

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 Jellyfin Media Server auf Ubuntu 20.04

So installieren Sie Plex Media Server unter Debian 10