So installierst du Jellyfin Media Server unter Debian 12

Jellyfin ist eine kostenlose Software zum Aufbau eines Medienservers. Mit ihr kannst du deine Mediendateien von mehreren Geräten oder Clients sammeln, verwalten und streamen. Jellyfin ist eine kostenlose und selbst gehostete Anwendung, die auf deinem Server installiert werden kann. So kannst du deinen eigenen Medienserver in deiner lokalen Umgebung, z. B. zu Hause, einrichten und dann mehreren Clients und Geräten den Zugriff auf alle deine Mediendateien ermöglichen.

Jellyfin ist eine Alternative zu proprietären Medienservern wie Emby und Plex. Er ermöglicht es dir, Mediendateien von jedem Gerät und von überall aus zu verwalten.

Diese Anleitung zeigt dir, wie du den Jellyfin-Medienserver auf Debian 12 installierst. Du installierst Jellyfin über ein vorgefertigtes Binärpaket und sicherst es mit UFW (Uncomplicated Firewall), SSL/TLS-Zertifikaten von Letsencrypt und dem Apache2 Reverse Proxy.

Voraussetzungen

Um mit dem Prozess zu beginnen, musst du sicherstellen, dass du die folgenden Voraussetzungen erfüllst:

  • Einen Debian 12-Server mit 2 oder 4 GB Arbeitsspeicher.
  • Einen Nicht-Root-Benutzer mit Administrator-Rechten.
  • Einen Domainnamen, der auf die IP-Adresse des Servers zeigt.

Hinzufügen des Jellyfin-Repositorys

Der Jellyfin-Medienserver kann auf verschiedene Arten installiert werden: manuell oder über ein vorgefertigtes Paket, das für die meisten Linux-Distributionen verfügbar ist. In diesem ersten Schritt wirst du das Jellyfin-Repository zu deinem Debian-Server hinzufügen.

Führe zunächst den folgenden apt-Befehl aus, um die Abhängigkeiten auf deinem Debian-Rechner zu installieren.

sudo apt install apt-transport-https ca-certificates gnupg curl -y

Abhängigkeiten installieren

Sobald die Abhängigkeiten installiert sind, führe den folgenden Befehl aus, um den GPG-Schlüssel des Jellyfin-Repositorys hinzuzufügen, der unter /etc/apt/keyrings/jellyfin.gpg gespeichert wird.

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

Führe nun den folgenden Befehl aus, um das jellyfin-Repository zu deinem Debian-Server hinzuzufügen. Nach der Ausführung des Befehls wird die Repository-Datei /etc/apt/sources.list.d/jellyfin.sources erstellt.

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

Repository hinzufügen

Aktualisiere zum Schluss deinen Debian-Paketindex mit dem Befehl apt update.

sudo apt update

Du solltest sehen, dass das Jellyfin-Repository zur Liste der System-Repositories hinzugefügt wurde.

Repo aktualisieren

Installation und Verwaltung von Jellyfin

Wenn du das Jellyfin-Repository hinzugefügt hast, kannst du den Jellyfin-Medienserver installieren. Führe diese Schritte aus, um Jellyfin zu installieren und zu lernen, wie du den Jellyfin-Dienst über systemctl verwaltest.

Führe den Befehl apt install aus, um den jellyfin-Medienserver zu installieren. Gib zur Bestätigung y ein und drücke ENTER, um fortzufahren.

sudo apt install jellyfin

jellyfin installieren

Vergewissere dich nach der Installation, dass der Jellyfin-Dienst läuft und mit dem unten stehenden Befehl aktiviert ist.

sudo systemctl is-enabled jellyfin
sudo systemctl status jellyfin

Wenn er läuft, solltest du die Ausgabe active (läuft) sehen. Wenn er aktiviert ist, solltest du die Ausgabe enabled (aktiviert) erhalten. Das bedeutet, dass Jellyfin beim Systemstart automatisch gestartet wird.

Geleeflosse überprüfen

Standardmäßig wird Jellyfin auf localhost mit Port 8096 ausgeführt. Führe den folgenden ss-Befehl aus, um die Ports auf deinem Debian-System zu überprüfen.

ss -tulpn

Du kannst davon ausgehen, dass der Port 8096 vom Jellyfin-Medienserver verwendet wird.

Überprüfung des Jellyfin Ports

Zum Schluss führst du den folgenden systemctl-Befehl aus, um den Jellyfin-Dienst zu starten, zu stoppen oder neu zu starten.

sudo systemctl start jellyfin
sudo systemctl stop jellyfin
sudo systemctl restart jellyfin

Sicherheitseinstellungen mit UFW

Im folgenden Abschnitt wirst du deinen Jellyfin-Medienserver mit UFW absichern. Du installierst UFW und öffnest dann HTTP- und HTTPS-Protokolle für den Client-Zugriff. Du musst HTTP- und HTTPS-Protokolle öffnen, weil du Apache2 als Reverse Proxy verwenden wirst.

Zuerst installierst du UFW mit dem Befehl apt install (siehe unten).

sudo apt install ufw -y

ufw installieren

Sobald UFW installiert ist, führe den Befehl ufw aus, um den OpenSSH-Dienst hinzuzufügen, und starte und aktiviere UFW.

sudo ufw allow OpenSSH
sudo ufw enable

Gib y ein, wenn du dazu aufgefordert wirst und UFW sollte laufen und aktiviert sein.

Führe nun den folgenden Befehl aus, um das Profil WWW Full hinzuzufügen und den UFW-Status zu überprüfen. Das Profil WWW Full öffnet sowohl HTTP- als auch HTTPS-Protokolle auf deinem Debian-System.

sudo ufw allow "WWW Full"
sudo ufw status

Die Ausgabe sollte zeigen, dass UFW aktiv ist und die Profile OpenSSH und WWW Full aktiviert sind.

ufw-Einrichtung

Installieren und Konfigurieren von Apache2 als Reverse Proxy

In dieser Anleitung wirst du den Jellyfin-Medienserver innerhalb von Apache2 als Reverse-Proxy betreiben. Außerdem sicherst du deine Installation mit SSL/TLS-Zertifikaten, die du mit Certbot und Letsencrypt generierst.

Erledige nun die folgenden Aufgaben: Installiere Apache2 und Certbot, generiere SSL/TLS-Zertifikate und erstelle die Konfiguration des virtuellen Apache2-Hosts für den Jellyfin-Medienserver.

Installation von Apache2 und Certbot

Führe zunächst den folgenden Befehl aus, um den Apache2 Webserver und Certbot zu installieren. Gib zur Bestätigung y ein und drücke ENTER.

sudo apt install apache2 certbot

apache2 certbot installieren

Nach Abschluss der Installation sollte der Apache2-Dienst standardmäßig laufen und aktiviert sein. Überprüfe dies mit dem folgenden systemctl-Befehl.

sudo systemctl is-enabled apache2
sudo systemctl status apache2

Die Ausgabe enabled zeigt an, dass der apache2-Dienst beim Booten automatisch gestartet wird. Und die Ausgabe active (running) zeigt an, dass der Dienst läuft.

apache2 prüfen

Erzeugen von SSL/TLS-Zertifikaten mit Certbot

Bevor du SSL/TLS-Zertifikate erstellst, aktiviere einige Apache2-Module mit dem Befehl a2enmod und starte den Apache2-Dienst neu.

sudo a2enmod proxy proxy_http ssl proxy_wstunnel remoteip http2 headers
sudo systemctl restart apache2

Führe nun den folgenden Befehl aus, um ein neues Verzeichnis /var/www/html/jellyfin/public_html zu erstellen und ändere den Eigentümer auf den Benutzer www-data und die Gruppe. Dieses Verzeichnis wird als temporäres Web-Root-Verzeichnis für die Erstellung von SSL/TLS-Zertifikaten verwendet.

sudo mkdir -p /var/www/html/jellyfin/public_html
sudo chown -R www-data:www-data /var/www/html/jellyfin/public_html

Als Nächstes führst du den unten stehenden Befehl certbot aus, um neue SSL/TLS-Zertifikate zu erstellen. Achte darauf, dass du die E-Mail-Adresse und den Domänennamen änderst, bevor du den Befehl ausführst.

sudo certbot certonly --agree-tos --email user@email.com --no-eff-email --webroot -w /var/www/html/jellyfin/public_html -d media.hwdomain.io

Nach dem Vorgang sind deine SSL/TLS-Zertifikate im Verzeichnis /etc/letsencrypt/live/domain.com verfügbar. Die Datei fullchain.pem ist der öffentliche Schlüssel und die Datei privkey.pem ist der private Schlüssel.

Apache2 als Reverse Proxy konfigurieren

Erstelle eine neue virtuelle Hostkonfiguration /etc/apache2/sites-available/jellyfin.conf mit dem folgenden nano-Editor-Befehl.

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

Füge die unten stehende Konfiguration ein und achte darauf, dass du den Domainnamen, den Pfad der SSL/TLS-Zertifikate und die IP-Adresse des Servers mit deinen Angaben änderst. Damit richtest du Apache2 als Reverse Proxy für den jellyfin-Medienserver ein, der auf Port 8096 läuft.

<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.10.15:8096/socket"
ProxyPassReverse "/socket" "ws://192.168.10.15:8096/socket"

ProxyPass "/" "http://192.168.10.15:8096/"
ProxyPassReverse "/" "http://192.168.10.15: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 die Datei und beende den Editor, wenn du fertig bist.

Als Nächstes führst du den Befehl a2ensite aus, um den virtuellen Host jellyfin.conf zu aktivieren, und überprüfst dann deine Apache2-Syntax.

sudo a2ensite jellyfin.conf
sudo apachectl configtest

Wenn du eine korrekte Apache2-Syntax hast, solltest du eine Ausgabe Syntax OK erhalten.

apache2 einrichten

Starte nun den Apache2-Dienst mit dem unten stehenden Befehl neu, um die Änderungen zu übernehmen. Deine Jellyfin-Installation sollte nun unter dem Apache2 Reverse Proxy laufen und gesichert sein.

sudo systemctl restart apache2

Rufe mit deinem Webbrowser den Domainnamen deiner Jellyfin-Installation auf, z. B. https://media.hwdomain.io/. Wenn die Konfiguration erfolgreich ist, solltest du den Jellyfin-Installationsassistenten wie folgt erhalten:

welcome page

Jellyfin Media Server Installation

Im folgenden Schritt wirst du die Konfiguration des Jellyfin-Medienservers mit Hilfe des Installationsassistenten abschließen.

Wähle zunächst die Standardsprache für deine Jellyfin-Installation aus und klicke auf Weiter.

Standardsprache

Erstelle nun einen neuen Admin-Benutzer für deine Jellyfin-Installation. Gib deinen Benutzernamen und dein Passwort ein und klicke dann auf Weiter.

Benutzer einrichten

Die Medienbibliotheken kannst du später konfigurieren. Klicke auf Weiter, um fortzufahren.

Bibliotheken

Wähle deine bevorzugte Metadaten-Sprache für deine Bibliotheken und klicke auf Weiter.

Metadatensprache

Aktiviere die Option Fernverbindungen zulassen, um den Fernzugriff auf deinen Jellyfin-Medienserver zu ermöglichen. Außerdem kannst du die Portzuordnung aktivieren, indem du die Option ankreuzt. Klicke dann auf Weiter.

Fernverbindungen zulassen

Wenn deine Konfiguration erfolgreich ist, solltest du die Meldung You’re Done! erhalten. Klicke auf Fertig stellen, um die Installation von jellyfin abzuschließen.

Installation beendet

Jetzt solltest du zur Anmeldeseite von Jellyfin weitergeleitet werden. Gib deinen Admin-Benutzer und dein Passwort für Jellyfin ein und klicke dann auf Anmelden.

Anmeldung bei jellyfin

Wenn alles gut geht, solltest du das Jellyfin-Administrations-Dashboard wie folgt sehen:

user dashboard

Klicke schließlich auf das Dashboard-Menü im Bereich Administration. Du solltest detaillierte Informationen über deine Jellyfin-Medienserver-Installation sehen:

Verwaltungs-Dashboard

Fazit

Zum Abschluss dieser Anleitung hast du die Installation des Jellyfin-Medienservers auf Debian 12 mit Apache2 Reverse Proxy und SSL/TLS von Letsencrypt abgeschlossen. Außerdem hast du deinen Jellyfin-Server mit UFW abgesichert und die Grundkonfiguration des Jellyfin-Medienservers abgeschlossen. Du kannst eine neue Medienbibliothek erstellen und deine Mediendateien auf Jellyfin hochladen.

Das könnte dich auch interessieren …