Jellyfin ist eine leistungsstarke, quelloffene Alternative zu proprietären Medienservern wie Plex oder Emby. Mit Jellyfin kannst du deine persönliche Mediensammlung organisieren und auf verschiedenen Geräten streamen. In diesem Artikel erfährst du, wie du Jellyfin auf Ubuntu 24.04 installierst und konfigurierst. Zusätzlich behandeln wir die Einrichtung eines sicheren HTTPS-Zugriffs über einen Nginx Reverse Proxy mit Let’s Encrypt sowie wichtige Aspekte wie Backups und Updates.
Grundvoraussetzungen
Bevor du mit der Installation beginnst, stelle sicher, dass folgende Voraussetzungen erfüllt sind:
- Ein Ubuntu 24.04 Server
- Root- oder sudo-Zugriff auf das System
- Eine stabile Internetverbindung
- Mindestens 2 GB RAM (4 GB oder mehr empfohlen)
- Ausreichend Festplattenspeicher für deine Mediensammlung
- Eine registrierte Domain für den HTTPS-Zugriff
System aktualisieren
Aktualisiere zunächst dein Ubuntu-System:
sudo apt update
sudo apt upgrade -y
BashJellyfin Installation
Jellyfin-Repository hinzufügen
Füge das offizielle Jellyfin-Repository hinzu:
sudo apt install apt-transport-https gnupg2 -y
wget -O - https://repo.jellyfin.org/jellyfin_team.gpg.key | sudo apt-key add -
echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/ubuntu focal main" | sudo tee /etc/apt/sources.list.d/jellyfin.list
BashDas Hinzufügen des offiziellen Repositories stellt sicher, dass du immer die neueste, stabile Version von Jellyfin installierst und einfach Updates durchführen kannst.
Jellyfin installieren
Aktualisiere die Paketlisten und installiere Jellyfin:
sudo apt update
sudo apt install jellyfin -y
BashJellyfin-Dienst starten und aktivieren
Starte den Jellyfin-Dienst und aktiviere ihn für den automatischen Start beim Systemboot:
sudo systemctl start jellyfin
sudo systemctl enable jellyfin
BashDurch das Aktivieren des Dienstes startet Jellyfin automatisch beim Systemboot, was besonders wichtig ist, wenn du den Server als dauerhaften Medienserver betreiben möchtest.
Firewall konfigurieren
Öffne den Port 8096 in der Firewall für den Zugriff auf die Jellyfin-Weboberfläche:
# HTTP und HTTPS für Nginx freigeben
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Jellyfin-Port nur lokal zugänglich machen
sudo ufw allow from 127.0.0.1 to any port 8096
# Firewall-Regeln neu laden
sudo ufw reload
BashDiese Firewall-Konfiguration erhöht die Sicherheit, indem sie nur die notwendigen Ports öffnet und den direkten Zugriff auf Jellyfin von außen verhindert.
Jellyfin-Weboberfläche aufrufen
Öffne einen Webbrowser und rufe die Jellyfin-Weboberfläche lokal auf:
http://localhost:8096
MarkdownFolge den Anweisungen im Einrichtungsassistenten, um dein Jellyfin-Konto zu erstellen und deine Medienbibliotheken einzurichten.
Nginx als Reverse Proxy
Um Jellyfin sicher über HTTPS zugänglich zu machen, richten wir einen Nginx Reverse Proxy mit Let’s Encrypt-Zertifikaten ein.
Nginx installieren
sudo apt install nginx -y
BashCertbot installieren
sudo apt install certbot python3-certbot-nginx -y
BashTemporäre Nginx-Konfiguration erstellen
sudo nano /etc/nginx/sites-available/jellyfin-temp
BashFüge folgenden Inhalt ein (ersetze „jellyfin.deine-domain.de“ durch deine tatsächliche Domain):
server {
listen 80;
server_name jellyfin.deine-domain.de;
location /.well-known/acme-challenge/ {
root /var/www/letsencrypt;
}
}
NginxAktiviere die temporäre Konfiguration:
sudo ln -s /etc/nginx/sites-available/jellyfin-temp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
BashSSL-Zertifikat mit Let’s Encrypt erstellen:
Hole das SSL-Zertifikat:
sudo mkdir -p /var/www/letsencrypt
sudo certbot certonly --webroot -w /var/www/letsencrypt -d jellyfin.deine-domain.de
BashErsetze „jellyfin.deine-domain.de“ durch deine tatsächliche Domain
Finale Nginx-Konfiguration erstellen
Erstelle die finale Nginx-Konfiguration für Jellyfin mit SSL:
sudo nano /etc/nginx/sites-available/jellyfin
BashFüge folgenden Inhalt ein:
server {
listen 80;
server_name jellyfin.deine-domain.de;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name jellyfin.deine-domain.de;
ssl_certificate /etc/letsencrypt/live/jellyfin.deine-domain.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/jellyfin.deine-domain.de/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=31536000" always;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
location / {
proxy_pass http://localhost: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;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /socket {
proxy_pass http://localhost:8096;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
NginxFinale Konfiguration aktivieren:
Aktiviere die finale Konfiguration und deaktiviere die temporäre:
sudo rm /etc/nginx/sites-enabled/jellyfin-temp
sudo ln -s /etc/nginx/sites-available/jellyfin /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
BashDie Verwendung eines Reverse Proxy mit HTTPS verschlüsselt den Datenverkehr zwischen Client und Server, schützt sensible Informationen und ermöglicht den sicheren Zugriff von außerhalb deines lokalen Netzwerks.
Backup & Restore
Backup erstellen
Erstelle ein Skript für automatische Backups:
sudo nano /usr/local/bin/jellyfin-backup.sh
BashFüge folgenden Inhalt ein:
#!/bin/bash
BACKUP_DIR="/path/to/backup/directory"
JELLYFIN_CONFIG="/var/lib/jellyfin"
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
sudo systemctl stop jellyfin
sudo tar -czf "$BACKUP_DIR/jellyfin_backup_$TIMESTAMP.tar.gz" "$JELLYFIN_CONFIG"
sudo systemctl start jellyfin
BashMache das Skript ausführbar:
sudo chmod +x /usr/local/bin/jellyfin-backup.sh
BashBackup wiederherstellen
Um ein Backup wiederherzustellen:
sudo systemctl stop jellyfin
sudo tar -xzf /path/to/backup/jellyfin_backup_TIMESTAMP.tar.gz -C /
sudo systemctl start jellyfin
BashUpdate & Upgrade
Jellyfin aktualisieren:
sudo apt update
sudo apt install jellyfin
sudo systemctl restart jellyfin
BashTroubleshooting
Jellyfin startet nicht:
sudo journalctl -u jellyfin
BashÜberprüfe die Logs auf spezifische Fehlermeldungen. Häufige Probleme sind:
- Falsche Berechtigungen: Stelle sicher, dass der Jellyfin-Benutzer Zugriff auf die Medienverzeichnisse hat.
- Portkonflikt: Überprüfe, ob Port 8096 bereits von einem anderen Dienst verwendet wird.
Keine Verbindung zur Weboberfläche:
Überprüfe, ob Jellyfin lokal läuft:
curl http://localhost:8096
BashWenn dies funktioniert, aber der externe Zugriff nicht, überprüfe deine Nginx-Konfiguration und Firewall-Einstellungen.
Probleme mit Transkodierung:
ffmpeg -version
BashStelle sicher, dass FFmpeg installiert ist und von Jellyfin gefunden wird. Überprüfe die Jellyfin-Logs auf Fehler bei der Transkodierung.
Leistungsprobleme
top
# oder
htop
BashBeobachte CPU- und RAM-Auslastung. Bei hoher Auslastung erwäge ein Upgrade der Hardware oder passe die Transkodierungseinstellungen an.
Nginx-Konfigurationsprobleme:
sudo nginx -t
BashDieser Befehl prüft die Nginx-Konfiguration auf Syntax-Fehler. Überprüfe bei Fehlern die entsprechenden Konfigurationsdateien.
SSL-Zertifikatsprobleme:
sudo certbot certificates
BashÜberprüfe das Ablaufdatum der Zertifikate. Bei abgelaufenen Zertifikaten führe eine manuelle Erneuerung durch:
sudo certbot renew
BashDatenbank-Korruption:
Bei unerklärlichen Fehlern oder fehlenden Metadaten versuche, die Jellyfin-Datenbank zu reparieren:
sudo systemctl stop jellyfin
sudo sqlite3 /var/lib/jellyfin/data/jellyfin.db "VACUUM;"
sudo systemctl start jellyfin
BashAnpassungsoptionen
Für fortgeschrittene Benutzer bietet Jellyfin verschiedene Anpassungsmöglichkeiten:
- Benutzerdefinierte Metadaten-Scraper:
Jellyfin unterstützt verschiedene Metadaten-Anbieter. In den Bibliothekseinstellungen kannst du die bevorzugten Anbieter auswählen und priorisieren. - Hardware-Beschleunigung:
Aktiviere die Hardware-Beschleunigung in den Transkodierungseinstellungen, um die CPU-Last zu reduzieren. Unterstützte Optionen hängen von deiner Hardware ab. - Plugin-Installation:
Jellyfin bietet eine Vielzahl von Plugins zur Funktionserweiterung. Diese können über die Weboberfläche unter „Dashboard > Plugins“ installiert werden. - Benutzerdefinierte CSS:
Du kannst das Aussehen der Weboberfläche anpassen, indem du benutzerdefiniertes CSS unter „Dashboard > Allgemein > Benutzerdefiniertes CSS“ hinzufügst. - Netzwerk-Streaming-Einstellungen:
Passe die Streaming-Bitrate und Qualität unter „Dashboard > Wiedergabe“ an, um die Leistung für verschiedene Netzwerkbedingungen zu optimieren. - Automatische Untertitel-Downloads:
Konfiguriere Untertitel-Anbieter in den Bibliothekseinstellungen, um automatisch passende Untertitel herunterzuladen.
Diese Anpassungen ermöglichen es dir, Jellyfin optimal auf deine Bedürfnisse und deine Serverumgebung abzustimmen.
Fazit
Die Installation und Konfiguration von Jellyfin auf Ubuntu 24.04 ist ein lohnenswertes Projekt für Medienliebhaber. Mit dieser Anleitung kannst du einen leistungsfähigen, sicheren und anpassbaren Medienserver einrichten. Von der grundlegenden Installation bis hin zur fortgeschrittenen Konfiguration mit HTTPS und Reverse Proxy bietet Jellyfin eine robuste Lösung für deine Streaming-Bedürfnisse.
Die Möglichkeiten zur Anpassung, regelmäßige Updates und eine aktive Community machen Jellyfin zu einer attraktiven Alternative zu proprietären Diensten. Beachte jedoch, dass eine gewisse technische Versiertheit erforderlich ist, um das volle Potenzial auszuschöpfen. Mit etwas Geduld und den richtigen Einstellungen wirst du einen personalisierten Medienserver genießen, der deine digitale Sammlung optimal präsentiert und zugänglich macht.