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.