Ana içeriğe geç
Kategoriye Dön

Jellyfin Kurulumu: Self-Hosted Medya Sunucusu

Jellyfin Docker kurulumu, medya kütüphanesi yapılandırması, hardware transcoding, kullanıcı yönetimi, remote access, Nginx reverse proxy ve istemci uygulamaları.

Okuma süresi: 14 dk Self-Hosting
jellyfinmedya sunucusuself-hostingdockerstreamingtranscoding

İçindekiler

Jellyfin Kurulumu: Self-Hosted Medya Sunucusu

Jellyfin, film, dizi, müzik ve fotoğraflarınızı kendi sunucunuzda yönetip yayınlamanızı sağlayan ücretsiz ve açık kaynaklı bir medya sunucusudur. Plex ve Emby'nin aksine tamamen ücretsizdir ve herhangi bir abonelik gerektirmez. Tüm cihazlarınızdan medyanıza erişebilir, arkadaşlarınızla paylaşabilirsiniz.

Jellyfin Nedir?

Jellyfin, Emby'nin açık kaynaklı fork'u olarak başlamış ve bağımsız bir proje haline gelmiştir. Öne çıkan özellikleri:

  • Tamamen Ücretsiz: Abonelik veya premium özellik yok
  • Çoklu Platform: Web, Android, iOS, Roku, Apple TV, Fire TV
  • Hardware Transcoding: Intel QSV, NVIDIA NVENC, AMD AMF desteği
  • Canlı TV: DVR ve IPTV desteği
  • Çoklu Kullanıcı: Aile ve arkadaşlarla paylaşım
  • Metadata: Otomatik film/dizi bilgisi ve poster indirme

Sistem Gereksinimleri

  • Docker ve Docker Compose kurulu sunucu
  • Minimum 2 GB RAM (4 GB önerilir)
  • Yeterli disk alanı (medya dosyaları için)
  • Hardware transcoding için uyumlu GPU (opsiyonel)

Docker ile Kurulum

docker-compose.yml Oluşturma

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/films:/media/films:ro
      - /mnt/media/diziler:/media/diziler:ro
      - /mnt/media/muzik:/media/muzik:ro
    ports:
      - "127.0.0.1:8096:8096"
    # Hardware transcoding için (Intel)
    devices:
      - /dev/dri:/dev/dri
hljs bash
# Container'ı başlat
docker compose up -d

# Logları kontrol et
docker logs jellyfin -f

Medya dizinlerini :ro (read-only) olarak bağlamak güvenlik açısından önerilir. Jellyfin'in medya dosyalarını değiştirmesine gerek yoktur.

Medya Dizin Yapısı

/mnt/media/
├── films/
│   ├── Inception (2010)/
│   │   └── Inception (2010).mkv
│   └── The Matrix (1999)/
│       └── The Matrix (1999).mp4
├── diziler/
│   └── Breaking Bad/
│       ├── Season 01/
│       │   ├── S01E01.mkv
│       │   └── S01E02.mkv
│       └── Season 02/
└── muzik/
    └── Artist/
        └── Album/
            └── 01 - Track.flac

İlk Yapılandırma

Kurulum sonrası http://SUNUCU_IP:8096 adresine gidin:

  1. Dil seçimi yapın
  2. Admin hesabı oluşturun
  3. Medya kütüphanesi ekleyin:
    • Tür: Filmler, Diziler, Müzik, Fotoğraflar
    • Klasör: /media/films, /media/diziler vb.
  4. Metadata dili seçin (Türkçe desteklenir)
  5. Kurulumu tamamlayın

Kütüphane Yönetimi

Metadata Sağlayıcıları

Yönetim → Kütüphaneler → [Kütüphane] → Düzenle

Filmler için:
- TheMovieDb (TMDB) - önerilir
- IMDb
- The Open Movie Database

Diziler için:
- TheTVDB - önerilir
- TheMovieDb

Kütüphane Tarama

hljs bash
# Manuel tarama tetikle (API ile)
curl -X POST "http://localhost:8096/Library/Refresh" \
  -H "X-Emby-Token: API_TOKEN"

# Zamanlanmış tarama: Yönetim → Zamanlama

Hardware Transcoding

Intel Quick Sync (QSV)

hljs yaml
# docker-compose.yml
services:
  jellyfin:
    devices:
      - /dev/dri:/dev/dri
    group_add:
      - "109"  # render grubu
hljs bash
# Intel GPU'nun mevcut olduğunu doğrula
ls /dev/dri
# Çıktı: card0  renderD128

# Render grubunu öğren
stat -c '%g' /dev/dri/renderD128

Jellyfin'de etkinleştirme:

Yönetim → Oynatma → Transcoding
→ Donanım hızlandırma: Intel QuickSync (QSV)
→ Etkinleştir: H.264, H.265, VP9

NVIDIA GPU

hljs yaml
# docker-compose.yml
services:
  jellyfin:
    image: jellyfin/jellyfin:latest
    runtime: nvidia
    environment:
      - NVIDIA_VISIBLE_DEVICES=all
      - NVIDIA_DRIVER_CAPABILITIES=all
hljs bash
# NVIDIA Container Toolkit kurulumu
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

Kullanıcı Yönetimi

Kullanıcı Oluşturma

Yönetim → Kullanıcılar → Yeni Kullanıcı
- Kullanıcı adı ve şifre
- Kütüphane erişim izinleri
- Ebeveyn kontrolü (içerik derecelendirmesi)
- Uzaktan erişim izni

Ebeveyn Kontrolü

Kullanıcı Ayarları → Ebeveyn Kontrolü
- Maksimum içerik derecelendirmesi: G, PG, PG-13, R
- Belirli kütüphanelere erişimi engelle
- PIN ile koruma

Remote Access ve Nginx Proxy

Nginx Yapılandırması

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;

    # Güvenlik başlıkları
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";

    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;

        # WebSocket desteği
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        # Büyük dosya transferi için
        proxy_buffering off;
        proxy_read_timeout 3600;
    }
}

Jellyfin Ağ Ayarları

Yönetim → Ağ
- Yayınlanan sunucu URL'si: https://jellyfin.example.com
- Uzaktan erişime izin ver: Etkin
- Uzak bağlantılar için SSL gerektir: Etkin

İstemci Uygulamaları

  • Web: https://jellyfin.example.com
  • Android: Google Play'den Jellyfin
  • iOS: App Store'dan Jellyfin
  • Kodi: Jellyfin for Kodi eklentisi
  • Roku: Jellyfin kanalı
  • Apple TV: tvOS uygulaması

Yedekleme

hljs bash
# Jellyfin yapılandırmasını yedekle
tar -czf jellyfin-config-$(date +%Y%m%d).tar.gz ./config/

# Otomatik yedekleme
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

REXE dedicated sunucularında Jellyfin için hardware transcoding kullanabilirsiniz. Intel veya NVIDIA GPU'lu sunucularımız 4K içerik için idealdir.