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ı
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.

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.
lspci -nn | grep -Ei "3d|display|vga"
nvidia-smi
ls -l /dev/nvidia*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 dockerservices:
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]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 pssudo docker exec jellyfin nvidia-smi
sudo docker exec jellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg -version
sudo docker logs --tail 100 jellyfinwatch -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"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.gzsudo 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 nginxsudo 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| Belirti / Symptom | Kö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 yok | NVIDIA Container Toolkit, Docker runtime ve Compose GPU device reservation kontrol edilir. |
| Transcode CPU kullanıyor | Dashboard Playback bölümünde NVENC seçilir ve yalnız GPU’nun desteklediği codec kutuları işaretlenir. |
| Uzaktan erişim kopuyor | Reverse proxy timeout, WebSocket, upload/body ve istemci bitrate sınırları birlikte kontrol edilir. |
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 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.
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.
Major sürümler otomatik güncellenmemelidir. Sürüm notu, veritabanı migration bilgisi, yedek ve geri dönüş imajı kontrol edilmelidir.
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.
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.
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.