So installierst du Jellyfin Media Server unter Ubuntu 22.04
Jellyfin ist eine kostenlose, quelloffene Medienserver-Software, die es Nutzern ermöglicht, persönliche Medienbibliotheken zu hosten und zu verwalten, Inhalte über verschiedene Geräte zu streamen und anderen zugänglich zu machen. Er ist eine Alternative zu proprietären Medienservern und bietet umfassende Anpassungsmöglichkeiten und Kontrolle über die Privatsphäre. Es ist eine Alternative zu proprietären Medien-Dateiservern wie Emby und Plex.
In dieser Anleitung zeigen wir dir, wie du den Jellyfin-Medienserver auf Ubuntu 22.04 installierst. Du wirst Jellyfin mit Apache als Reverse Proxy installieren und Jellyfin mit SSL/TLS-Zertifikaten von Letsencrypt sichern.
Voraussetzungen
Bevor du beginnst, stelle sicher, dass du Folgendes hast:
- Einen Ubuntu 22.04 Server.
- Einen Nicht-Root-Benutzer mit sudo-Rechten.
- Einen Domainnamen, der auf eine Server-IP-Adresse zeigt.
Hinzufügen des Jellyfin-Repositorys
Um zu beginnen, führe den folgenden Befehl aus, um Abhängigkeiten wie software-properties-common, apt-transport-https, ca-certificates, gnupg und curl auf deinem Ubuntu-System zu installieren.
sudo apt install software-properties-common apt-transport-https ca-certificates gnupg curl -y
Führe dann den folgenden Befehl aus, um das Repository „universe“ auf deinem Ubuntu-Rechner zu aktivieren.
sudo add-apt-repository universe
Führe nun den folgenden Befehl aus, um ein neues Verzeichnis /etc/apt/keyrings zu erstellen und den GPG-Schlüssel für das Jellyfin-Repository in dieses Verzeichnis herunterzuladen.
sudo mkdir -p /etc/apt/keyrings curl -fsSL https://repo.jellyfin.org/jellyfin_team.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/jellyfin.gpg
Als Nächstes führst du den folgenden Befehl aus, um das Jellyfin-Repository zu deinem Ubuntu-Rechner hinzuzufügen.
cat <<EOF | sudo tee /etc/apt/sources.list.d/jellyfin.sources Types: deb URIs: https://repo.jellyfin.org/$( awk -F'=' '/^ID=/{ print $NF }' /etc/os-release ) Suites: $( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release ) Components: main Architectures: $( dpkg --print-architecture ) Signed-By: /etc/apt/keyrings/jellyfin.gpg EOF
Zuletzt aktualisierst du den Paketindex auf deinem Ubuntu-System mit dem folgenden Befehl. Dadurch werden neue Paketinformationen abgerufen, auch aus dem Jellyfin-Repository.
sudo apt update
Installation von Jellyfin Server
Nachdem du das Jellyfin-Repository hinzugefügt hast, kannst du nun mit der Installation von Jellyfin auf deinem Ubuntu-Server beginnen.
Führe den folgenden apt-Befehl aus, um das Jellyfin-Paket zu installieren. Wenn du dazu aufgefordert wirst, bestätige mit Y und fahre fort.
sudo apt install jellyfin
Sobald die Installation abgeschlossen ist, führe den folgenden Befehl aus, um den Jellyfin-Dienst zu überprüfen und sicherzustellen, dass der Dienst läuft und aktiviert ist.
sudo systemctl is-enabled jellyfin sudo systemctl status jellyfin
In der folgenden Ausgabe kannst du sehen, dass Jellyfin läuft und aktiviert ist.
Du kannst die Ports für Jellyfin auch mit dem ss-Befehl unten überprüfen.
ss -tulpn | grep jellyfin
Du kannst verschiedene Ports sehen: 8096/tcp für HTTP-Verkehr, 8920/tcp für HTTPS-Verkehr, 1900/udp und 7359/udp für den Dienst auto-discovery.
SSL/TLS-Zertifikate generieren
In dieser Anleitung hast du die Jeallyfin-Installation mit SSL/TLS-Zertifikaten und Apache-Reverse-Proxy gesichert. Jetzt wirst du SSL/TLS-Zertifikate mit Certbot und letsencrypt generieren.
PS: Du kannst auch ein selbstsigniertes Zertifikat verwenden, wenn du dich in einer lokalen Umgebung befindest. Aber für den externen Einsatz musst du sicherstellen, dass dein Domainname vorbereitet ist und auf deine Ubuntu-IP-Adresse zeigt.
Führe den folgenden Befehl aus, um Certbot auf deinem Ubuntu-System zu installieren. Gib Y ein und drücke ENTER, um fortzufahren.
sudo apt install certbot
Führe nun den folgenden Befehl aus, um ein neues Verzeichnis /var/www/html zu erstellen.
mkdir -p /var/www/html
Zuletzt führst du den folgenden Certbot-Befehl aus, um SSL/TLS-Zertifikate für deinen Jellyfin-Domainnamen zu generieren. Achte darauf, dass du die E-Mail-Adresse und den Domainnamen mit deinen Daten änderst.
sudo certbot certonly --agree-tos --email user@email.com --no-eff-email --webroot -w /var/www/html -d media.hwdomain.io
Nachdem der Vorgang abgeschlossen ist, sind deine SSL/TLS-Zertifikate im Verzeichnis /etc/letsencrypt/live/domain.com verfügbar.
Apache als Reverse Proxy konfigurieren
In diesem Abschnitt wirst du den Apache Webserver als Reverse Proxy für Jellyfin installieren und konfigurieren. Los geht’s.
Führe zunächst den folgenden Befehl aus, um den Apache-Webserver auf deinem System zu installieren.
sudo apt install apache2 -y
Sobald die Installation abgeschlossen ist, führe den Befehl a2enmod aus, um die erforderlichen Apache-Module zu aktivieren.
sudo a2enmod proxy proxy_http ssl proxy_wstunnel remoteip http2 headers
Führe nun den folgenden Befehl im nano-Editor aus, um eine neue Apache Virtual Host-Datei /etc/apache2/sites-available/jellyfin.conf zu erstellen.
sudo nano /etc/apache2/sites-available/jellyfin.conf
Füge die folgende Konfiguration ein, um einen Reverse Proxy für Jeallyfin einzurichten. Achte darauf, dass du den Domainnamen und den Pfad der SSL-Zertifikate mit deinen Angaben änderst.
<VirtualHost *:80> ServerName media.hwdomain.io # Comment to prevent HTTP to HTTPS redirect Redirect permanent / https://media.hwdomain.io/ ErrorLog /var/log/apache2/media.hwdomain.io-error.log CustomLog /var/log/apache2/media.hwdomain.io-access.log combined </VirtualHost> # If you are not using an SSL certificate, replace the 'redirect' # line above with all lines below starting with 'Proxy' <IfModule mod_ssl.c> <VirtualHost *:443> ServerName media.hwdomain.io # 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/" "!" # Tell Jellyfin to forward that requests came from TLS connections RequestHeader set X-Forwarded-Proto "https" RequestHeader set X-Forwarded-Port "443" ProxyPass "/socket" "ws://192.168.5.30:8096/socket" ProxyPassReverse "/socket" "ws://192.168.5.30:8096/socket" ProxyPass "/" "http://192.168.5.30:8096/" ProxyPassReverse "/" "http://192.168.5.30:8096/" SSLEngine on SSLCertificateFile /etc/letsencrypt/live/media.hwdomain.io/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/media.hwdomain.io/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/media.hwdomain.io-error.log CustomLog /var/log/apache2/media.hwdomain.io-access.log combined </VirtualHost> </IfModule>
Speichere und schließe die Datei, wenn du fertig bist.
Als Nächstes führst du den folgenden Befehl aus, um die virtuelle Hostdatei jellyfin.conf zu aktivieren. Überprüfe dann deine Apache-Konfiguration, um sicherzustellen, dass du die richtige Syntax hast.
sudo a2ensite jellyfin.conf sudo apachectl configtest
Wenn alles in Ordnung ist, solltest du eine Ausgabe wie„Syntax OK“ sehen.
Führe nun den Befehl systemctl aus, um den Apache-Dienst neu zu starten und deine Änderungen zu übernehmen.
sudo systemctl restart apache2
Nach dem Neustart überprüfst du den Apache-Dienst, um sicherzustellen, dass der Dienst läuft und aktiviert ist.
sudo systemctl is-enabled apache2 sudo systemctl status apache2
Wenn alles klappt, solltest du sehen, dass Apache auf deinem Ubuntu-Rechner aktiviert ist und läuft.
UFW konfigurieren
Nachdem du Jellyfin installiert hast, kannst du nun UFW konfigurieren, um deine Installation zu sichern.
Führe zunächst den folgenden Befehl aus, um die Ports für SSH, HTTP und HTTPS zu öffnen.
sudo ufw allow OpenSSH sudo ufw allow 'Apache Full'
Öffne nun die Ports 1900/udp und 7359/udp für die automatische Erkennung mit folgendem Befehl.
sudo ufw allow 1900/udp sudo ufw allow 7359/udp
Als Nächstes führst du den folgenden Befehl aus, um UFW zu starten und zu aktivieren. Gib zur Bestätigung Y ein.
sudo ufw enable
Überprüfe abschließend die Liste der Ports und Dienste auf UFW mit dem folgenden Befehl.
sudo ufw status
Du wirst sehen, dass die Profile OpenSSH und „Apache Full“ aktiviert sind und dass die Ports 1900/udp und 7359/udp ebenfalls zu UFW hinzugefügt wurden.
Installation von Jellyfin Media Server
Zu diesem Zeitpunkt sind alle Abhängigkeiten konfiguriert. Du kannst nun über deinen Webbrowser auf deine Jellyfin-Installation zugreifen.
Rufe den Domainnamen deines Jellyfin-Servers (z.B. https://media.hwdomain.io/) mit deinem Webbrowser auf. Du wirst die Willkommensnachricht von Jellyfin sehen.
Klicke auf Weiter, um fortzufahren.
Erstelle nun deinen ersten Benutzer auf Jellyfin und klicke dann auf Weiter.
Nun wirst du aufgefordert, eine Medienbibliothek für Jellyfin einzurichten. Klicke auf Weiter, um dies zu überspringen. Du kannst sie später einrichten, wenn die Konfiguration abgeschlossen ist.
Wähle deine bevorzugte Metadaten-Sprache und klicke erneut auf Weiter.
Im Abschnitt Fernzugriff aktivierst du die Kontrollkästchen Fernverbindung zulassen und Automatische Portzuordnung. Klicke dann zur Bestätigung auf Weiter.
Klicke abschließend auf Fertig stellen, um die Installation von Jellyfin abzuschließen.
Du wirst nun zur Jellyfin-Anmeldeseite weitergeleitet. Gib deinen Benutzernamen und dein Passwort ein und klicke dann auf Anmelden.
Jetzt siehst du das Jellyfin-Dashboard wie folgt:
Wenn du auf das Menü Administration klickst, siehst du detaillierte Informationen über deinen Jellyfin-Server. In diesem Beispiel kannst du sehen, dass Jellyfin xxx auf dem Ubuntu-System installiert ist.
Fazit
Herzlichen Glückwunsch! Du hast nun erfolgreich den Jellyfin Media Server auf dem Ubuntu 22.04 Server installiert. Außerdem hast du Jellyfin mit Apache als Reverse Proxy und SSl/TLS von Letsencrypt abgesichert. Von nun an kannst du Mediendateien zu deiner Bibliothek hinzufügen und deine Sammlung auf Jellyfin speichern.