Arama Yap Mesaj Gönder
Biz Sizi Arayalım
+90
X

Lütfen Ülke (Bölge) Seçiniz

Türkiye (Türkçe)Türkiye (Türkçe) Almanya (German)Almanya (German) Worldwide (English)Worldwide (English)
X

Lütfen Para Birimi Seçiniz

Türk Lirası $ US Dollar Euro
X

Lütfen Ülke (Bölge) Seçiniz

Türkiye (Türkçe)Türkiye (Türkçe) Almanya (German)Almanya (German) Worldwide (English)Worldwide (English)
X

Lütfen Para Birimi Seçiniz

Türk Lirası $ US Dollar Euro

Bize Ulaşın

Konum Halkalı merkez mahallesi fatih cd ozgur apt no 46 , Küçükçekmece , İstanbul , 34303 , TR

Jellyfin Medya Sunucusu Kurulumu: NVIDIA GPU Transcoding ve Nginx SSL

Ubuntu sunucuda Jellyfin’i Docker ile kurun; medya izinleri, Nginx HTTPS, NVIDIA Container Toolkit, NVENC/NVDEC transcoding, uzaktan erişim, yedekleme ve gerçek GPU testlerini tamamlayın.

Jellyfin Medya Sunucusu Kurulumu: NVIDIA GPU Transcoding ve Nginx SSL
Bu rehberin sonunda ne çalışacak?

Ubuntu sunucuda Jellyfin’i Docker ile kurun; medya izinleri, Nginx HTTPS, NVIDIA Container Toolkit, NVENC/NVDEC transcoding, uzaktan erişim, yedekleme ve gerçek GPU testlerini tamamlayın. Komutlar kopyalanabilir biçimde verilmiştir; örnek alan adları ve parolalar çalıştırılmadan önce kendi değerlerinizle değiştirilmelidir.

Kurulum öncesi mimari ve gereksinimler

  • Ubuntu 24.04 LTS ve Docker
  • Medya ve eş zamanlı yayın sayısına uygun CPU/RAM/ağ
  • Desteklenen NVENC/NVDEC özellikli NVIDIA GPU
  • media.example.com DNS kaydı

DNS ve port planı

  • 8096/TCP: Jellyfin HTTP yalnız reverse proxy
  • 8920/TCP: uygulama içi HTTPS kullanılacaksa
  • 7359/UDP: istemci keşfi, yalnız gerekli yerel ağda
  • 1900/UDP: DLNA, yalnız gerekli yerel ağda

Uygulamalı kurulum adımları

1. GPU ve codec denetimi
lspci -nn | grep -Ei "3d|display|vga"
nvidia-smi
ls -l /dev/nvidia*
2. NVIDIA Docker runtime
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed "s#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#" | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt update
sudo apt install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
3. Compose yapısı
services:
  jellyfin:
    image: jellyfin/jellyfin:10
    container_name: jellyfin
    restart: unless-stopped
    user: "1000:1000"
    ports:
      - 127.0.0.1:8096:8096
    volumes:
      - ./config:/config
      - ./cache:/cache
      - /srv/media:/media:ro
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
4. Dizin izinleri ve başlatma
sudo mkdir -p /opt/jellyfin/config /opt/jellyfin/cache /srv/media
sudo chown -R 1000:1000 /opt/jellyfin
sudo find /srv/media -type d -exec chmod 755 {} \;
sudo docker compose up -d
sudo docker compose ps
5. GPU container testi
sudo docker exec jellyfin nvidia-smi
sudo docker exec jellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg -version
sudo docker logs --tail 100 jellyfin
6. Transcode doğrulama
watch -n 1 nvidia-smi
sudo docker exec jellyfin sh -lc "ls -lah /cache/transcodes"
sudo docker logs -f jellyfin | grep -Ei "ffmpeg|nvenc|nvdec|transcod"
7. Yedekleme
sudo docker stop jellyfin
sudo tar -C /opt/jellyfin -czf /root/jellyfin-config-$(date +%F).tar.gz config
sudo docker start jellyfin
sha256sum /root/jellyfin-config-$(date +%F).tar.gz
8. Nginx reverse proxy
sudo apt update
sudo apt install -y nginx certbot python3-certbot-nginx
sudo tee /etc/nginx/sites-available/media.example.com > /dev/null <<'NGINX'
server {
    listen 80;
    listen [::]:80;
    server_name media.example.com;
    client_max_body_size 10G;
    proxy_read_timeout 3600;
    proxy_send_timeout 3600;
    location / {
        proxy_pass http://127.0.0.1:8096;
        proxy_http_version 1.1;
        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 Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}
NGINX
sudo ln -s /etc/nginx/sites-available/media.example.com /etc/nginx/sites-enabled/media.example.com
sudo nginx -t
sudo systemctl reload nginx
9. Let’s Encrypt SSL ve yenileme testi
sudo certbot --nginx -d media.example.com --redirect --agree-tos --no-eff-email -m [email protected]
sudo certbot renew --dry-run
curl -I https://media.example.com
openssl s_client -connect media.example.com:443 -servername media.example.com </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -dates

Üretime geçmeden önce bilinmesi gerekenler

Üretim notu
GPU yalnız video istemcinin doğrudan oynatamadığı durumda devreye girer. Test için istemci kalitesini düşürerek zorunlu transcode oluşturun ve aynı anda nvidia-smi ile Video Encode/Decode kullanımını doğrulayın.
Üretim notu
GT 1030 ve bazı düşük seviye/mobil NVIDIA kartlarında NVENC bulunmayabilir. Kart satın almadan önce NVIDIA codec matrisi ve Jellyfin destek tablosu kontrol edilmelidir.
Üretim notu
Medya dizinini salt okunur bağlamak, uygulama hesabının orijinalleri yanlışlıkla değiştirme riskini azaltır. Config ve cache ayrı, yazılabilir mount olmalıdır.
Üretim notu
4K HDR tone mapping yalnız codec desteğine değil sürücü, GPU nesli, FFmpeg ve Jellyfin ayarına bağlıdır. Tek örnek video üzerinden genelleme yapılmamalıdır.

Yaygın hatalar ve kök nedenleri

Belirti / SymptomKök neden ve çözüm / Root cause and fix
Playback errorİstemcinin direct play desteği, medya izinleri ve FFmpeg logundaki ilk hata incelenir.
nvidia-smi container içinde yokNVIDIA Container Toolkit, Docker runtime ve Compose GPU device reservation kontrol edilir.
Transcode CPU kullanıyorDashboard Playback bölümünde NVENC seçilir ve yalnız GPU’nun desteklediği codec kutuları işaretlenir.
Uzaktan erişim kopuyorReverse proxy timeout, WebSocket, upload/body ve istemci bitrate sınırları birlikte kontrol edilir.

Kurulum sonrası doğrulama listesi

  • Tüm container veya servisler healthy/running durumda
  • Alan adı HTTPS üzerinden geçerli sertifika ile açılıyor
  • Yalnız gerekli portlar dışarıdan erişilebilir
  • Yönetici hesabında güçlü parola ve MFA etkin
  • Yedek dosyasının checksum değeri kaydedildi
  • Ayrı ortamda en az bir geri yükleme testi tamamlandı
  • Loglarda tekrarlayan kritik hata bulunmuyor
  • Yeniden başlatma sonrası servisler otomatik açılıyor

Resmî teknik kaynaklar

İlgili EKA Sunucu rehberleri

Sık sorulan sorular

Bu kurulum üretimde kullanılabilir mi?

Evet; fakat örnek değerler değiştirilmeden, erişim sınırları uygulanmadan ve geri yükleme testi yapılmadan üretime alınmamalıdır.

Minimum sunucu yeterli olur mu?

Minimum değer yalnız kurulumun açılması içindir. Eş zamanlı kullanıcı, veri büyümesi ve arka plan işleri ölçülerek kaynak payı bırakılmalıdır.

Cloudflare kullanılabilir mi?

Evet. SSL modu Full (strict), doğru origin sertifikası ve WebSocket/gerçek IP başlıkları uygulamanın gereksinimine göre ayarlanmalıdır.

Güncelleme otomatik yapılmalı mı?

Major sürümler otomatik güncellenmemelidir. Sürüm notu, veritabanı migration bilgisi, yedek ve geri dönüş imajı kontrol edilmelidir.

Hangi yedekler alınmalı?

Veritabanı, yüklenen dosyalar, volume verileri, yapılandırma, şifreleme anahtarları ve kullanılan sürüm etiketi aynı geri dönüş setinde tutulmalıdır.

VPS mi GPU sunucu mu?

Web paneli ve standart iş yükleri için NVMe VPS yeterli olabilir. Model inference, OCR hızlandırma veya video transcoding varsa uygun GPU gerekir.

Kurulum için bize ulaşın

Ubuntu sunucuda Jellyfin’i Docker ile kurun; medya izinleri, Nginx HTTPS, NVIDIA Container Toolkit, NVENC/NVDEC transcoding, uzaktan erişim, yedekleme ve gerçek GPU testlerini tamamlayın.

Ekran kartlı sunucuları inceleyinKurulum için bize ulaşın
Top