Zum Hauptinhalt springen
Zurück zur Kategorie

Jellyfin Installation: Self-Hosted Medienserver

Jellyfin Docker-Installation, Medienbibliothek-Konfiguration, Hardware-Transcoding, Benutzerverwaltung, Remote-Zugriff, Nginx Reverse Proxy und Client-Anwendungen.

Lesezeit: 14 Min Self-Hosting
jellyfinmedienserverself-hostingdockerstreamingtranscoding

Inhaltsverzeichnis

Jellyfin Installation: Self-Hosted Medienserver

Jellyfin ist ein kostenloser und quelloffener Medienserver, mit dem Sie Ihre Filme, Serien, Musik und Fotos auf Ihrem eigenen Server verwalten und streamen können. Im Gegensatz zu Plex und Emby ist es völlig kostenlos und erfordert kein Abonnement. Sie können von allen Ihren Geräten auf Ihre Medien zugreifen und sie mit Freunden teilen.

Was ist Jellyfin?

Jellyfin begann als Open-Source-Fork von Emby und hat sich zu einem eigenständigen Projekt entwickelt. Hauptmerkmale:

  • Völlig kostenlos: Kein Abonnement oder Premium-Funktionen
  • Multi-Plattform: Web, Android, iOS, Roku, Apple TV, Fire TV
  • Hardware-Transcoding: Intel QSV, NVIDIA NVENC, AMD AMF Unterstützung
  • Live-TV: DVR und IPTV-Unterstützung
  • Multi-User: Teilen mit Familie und Freunden
  • Metadaten: Automatischer Film-/Serieninfo- und Poster-Download

Systemanforderungen

  • Server mit Docker und Docker Compose
  • Mindestens 2 GB RAM (4 GB empfohlen)
  • Ausreichend Speicherplatz (für Mediendateien)
  • Kompatible GPU für Hardware-Transcoding (optional)

Installation mit Docker

docker-compose.yml erstellen

hljs yaml
version: '3.8'

services:
  jellyfin:
    image: jellyfin/jellyfin:latest
    container_name: jellyfin
    restart: unless-stopped
    user: "1000:1000"
    environment:
      - JELLYFIN_PublishedServerUrl=https://jellyfin.example.com
    volumes:
      - ./config:/config
      - ./cache:/cache
      - /mnt/media/filme:/media/filme:ro
      - /mnt/media/serien:/media/serien:ro
      - /mnt/media/musik:/media/musik:ro
    ports:
      - "127.0.0.1:8096:8096"
    devices:
      - /dev/dri:/dev/dri
hljs bash
# Container starten
docker compose up -d

# Logs prüfen
docker logs jellyfin -f

Das Einbinden von Medienverzeichnissen als :ro (schreibgeschützt) wird aus Sicherheitsgründen empfohlen.

Medienverzeichnisstruktur

/mnt/media/
├── filme/
│   ├── Inception (2010)/
│   │   └── Inception (2010).mkv
│   └── The Matrix (1999)/
│       └── The Matrix (1999).mp4
├── serien/
│   └── Breaking Bad/
│       ├── Season 01/
│       │   ├── S01E01.mkv
│       │   └── S01E02.mkv
│       └── Season 02/
└── musik/
    └── Künstler/
        └── Album/
            └── 01 - Track.flac

Erstkonfiguration

Nach der Installation unter http://SERVER_IP:8096:

  1. Sprache auswählen
  2. Admin-Konto erstellen
  3. Medienbibliotheken hinzufügen:
    • Typ: Filme, Serien, Musik, Fotos
    • Ordner: /media/filme, /media/serien usw.
  4. Metadatensprache auswählen
  5. Einrichtung abschließen

Hardware-Transcoding

Intel Quick Sync (QSV)

hljs yaml
services:
  jellyfin:
    devices:
      - /dev/dri:/dev/dri
    group_add:
      - "109"
hljs bash
# Intel GPU verfügbarkeit prüfen
ls /dev/dri
# Ausgabe: card0  renderD128

# Render-Gruppen-ID ermitteln
stat -c '%g' /dev/dri/renderD128

In Jellyfin aktivieren:

Verwaltung → Wiedergabe → Transcoding
→ Hardwarebeschleunigung: Intel QuickSync (QSV)
→ Aktivieren: H.264, H.265, VP9

NVIDIA GPU

hljs yaml
services:
  jellyfin:
    image: jellyfin/jellyfin:latest
    runtime: nvidia
    environment:
      - NVIDIA_VISIBLE_DEVICES=all
      - NVIDIA_DRIVER_CAPABILITIES=all
hljs bash
# NVIDIA Container Toolkit installieren
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
  tee /etc/apt/sources.list.d/nvidia-docker.list
apt update && apt install -y nvidia-container-toolkit
nvidia-ctk runtime configure --runtime=docker
systemctl restart docker

Benutzerverwaltung

Benutzer erstellen

Verwaltung → Benutzer → Neuer Benutzer
- Benutzername und Passwort
- Bibliothekszugriffsberechtigungen
- Kindersicherung (Inhaltsbewertung)
- Fernzugriffsberechtigung

Remote-Zugriff und Nginx-Proxy

Nginx-Konfiguration

hljs nginx
server {
    listen 80;
    server_name jellyfin.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name jellyfin.example.com;

    ssl_certificate /etc/letsencrypt/live/jellyfin.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/jellyfin.example.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1: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_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_buffering off;
        proxy_read_timeout 3600;
    }
}

Client-Anwendungen

  • Web: https://jellyfin.example.com
  • Android: Jellyfin aus Google Play
  • iOS: Jellyfin aus dem App Store
  • Kodi: Jellyfin für Kodi-Plugin
  • Roku: Jellyfin-Kanal
  • Apple TV: tvOS-App

Backup

hljs bash
# Jellyfin-Konfiguration sichern
tar -czf jellyfin-config-$(date +%Y%m%d).tar.gz ./config/

# Automatisches Backup
cat > /etc/cron.weekly/jellyfin-backup << 'EOF'
#!/bin/bash
tar -czf /backups/jellyfin-$(date +%Y%m%d).tar.gz /opt/jellyfin/config/
find /backups -name "jellyfin-*.tar.gz" -mtime +60 -delete
EOF
chmod +x /etc/cron.weekly/jellyfin-backup

Sie können Hardware-Transcoding auf REXE Dedicated-Servern nutzen. Unsere Server mit Intel- oder NVIDIA-GPUs sind ideal für 4K-Inhalte.