Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
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.
Bevor du mit der Installation beginnst, stelle sicher, dass folgende Voraussetzungen erfüllt sind:
Aktualisiere zunächst dein Ubuntu-System:
sudo apt update
sudo apt upgrade -y
BashFü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.
Aktualisiere die Paketlisten und installiere Jellyfin:
sudo apt update
sudo apt install jellyfin -y
BashStarte 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.
Ö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.
Ö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.
Um Jellyfin sicher über HTTPS zugänglich zu machen, richten wir einen Nginx Reverse Proxy mit Let’s Encrypt-Zertifikaten ein.
sudo apt install nginx -y
Bashsudo apt install certbot python3-certbot-nginx -y
Bashsudo 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
BashHole 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
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";
}
}
NginxAktiviere 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.
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
BashUm ein Backup wiederherzustellen:
sudo systemctl stop jellyfin
sudo tar -xzf /path/to/backup/jellyfin_backup_TIMESTAMP.tar.gz -C /
sudo systemctl start jellyfin
BashJellyfin aktualisieren:
sudo apt update
sudo apt install jellyfin
sudo systemctl restart jellyfin
Bashsudo journalctl -u jellyfin
BashÜberprüfe die Logs auf spezifische Fehlermeldungen. Häufige Probleme sind:
Ü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.
ffmpeg -version
BashStelle sicher, dass FFmpeg installiert ist und von Jellyfin gefunden wird. Überprüfe die Jellyfin-Logs auf Fehler bei der Transkodierung.
top
# oder
htop
BashBeobachte CPU- und RAM-Auslastung. Bei hoher Auslastung erwäge ein Upgrade der Hardware oder passe die Transkodierungseinstellungen an.
sudo nginx -t
BashDieser Befehl prüft die Nginx-Konfiguration auf Syntax-Fehler. Überprüfe bei Fehlern die entsprechenden Konfigurationsdateien.
sudo certbot certificates
BashÜberprüfe das Ablaufdatum der Zertifikate. Bei abgelaufenen Zertifikaten führe eine manuelle Erneuerung durch:
sudo certbot renew
BashBei 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
BashFür fortgeschrittene Benutzer bietet Jellyfin verschiedene Anpassungsmöglichkeiten:
Diese Anpassungen ermöglichen es dir, Jellyfin optimal auf deine Bedürfnisse und deine Serverumgebung abzustimmen.
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.