VPS Uzerinde Jellyfin Kurulumu ve Medya Sunucusu Rehberi
VPS uzerinde Docker ile Jellyfin kurarak kendi medya arsivinizi yonetin. Dosya izinleri, blok depolama baglantilari ve CPU transcode limitleri hakkinda teknik detaylari ogrenin.
Ne inşa ediyorsunuz
Bir VPS üzerinde Jellyfin medya sunucusu: bir container, üç volume ve film ile dizilerinizi barındıran bir blok depolama diski; herhangi bir tarayıcıdan veya Jellyfin uygulamasından erişilebilir. Kurulum, on beş satırlık bir compose dosyasıdır. Kurulum sonrasında ortaya çıkan tüm sorunlar iki temel nedenden kaynaklanır: container'ın okuyamadığı dosya izinleri ve GPU'su olmayan bir VPS'ten yapamayacağı bir video transcode işlemini talep etmek. Bu kılavuz, destek taleplerinin ana kaynağı oldukları için bu iki konuya geniş yer ayırmaktadır.
Jellyfin ücretsiz ve tamamen açık kaynaklıdır; hesap zorunluluğu, ücretli özellikler veya telemetri içermez. Bu nedenle 2026 yılında kendi sunucunuzda barındırmaya değer şeyler listelerinin neredeyse tamamında yer alır. Sahip olduğunuz medyayı oynatır. Herhangi bir içerik ile birlikte gelmez ve bu kılavuz içerik edinme üzerine değildir.
Transcoding gerçeği: herhangi bir kiralama yapmadan önce
Bunu öncelikle okuyun, çünkü satın alacağınız şeyi değiştirecektir. Bir medya sunucusu, oynat tuşuna bastığınızda iki şeyden birini yapar. Direct play, dosyayı olduğu gibi aktarır: VPS diskten baytları okur ve ağ üzerinden gönderir; bu işlem neredeyse hiç CPU harcamaz. Transcoding ise videoyu anlık olarak yeniden kodlar; yeni çözünürlük, yeni codec veya gömülü altyazılar ekler ve bu tamamen CPU gücü gerektiren bir işlemdir.
Tipik bir VPS'in GPU'su yoktur. Bu nedenle her transcode işlemi libx264/libx265 ile CPU üzerinde çalışır ve yazılımsal kodlama maliyetlidir. Tek bir 1080p H.264 transcode işlemi, paylaşımlı birkaç vCPU'yu tamamen meşgul edebilir; 4K veya HEVC transcode işlemi ise genellikle gerçek zamanlı hıza yetişemez, bu yüzden oynatma durur ve sürekli arabelleğe alır. Intel iGPU veya Nvidia kartına sahip ev tipi bir cihazda bu işlemi ucuz kılan donanımsal transcoding, sağlayıcınız GPU instance kiralamadığı sürece sizin için mevcut değildir.
Bu nedenle VPS üzerindeki temel strateji şudur: transcoding işleminden kaçının. Kütüphanenizi istemcilerinizin yerel olarak oynatabildiği codec'lerde tutun; H.264 video, AAC veya AC3 ses, MP4 veya MKV kapsayıcı kullanın ve direct play yapabilen istemci uygulamalarını seçin: Android TV, iOS ve Roku için yerel Jellyfin uygulamaları, ayrıca Infuse, Kodi ve masaüstü Jellyfin Media Player. Bunu yaparsanız VPS asla ffmpeg kullanmaz ve mütevazı bir 2 vCPU sunucusu aynı anda birkaç kişiye yayın yapabilir. Transcoding yapmayı planlıyorsanız çok daha büyük ve pahalı bir sunucuya ihtiyacınız olur, ancak bu durumda bile 4K iyi bir seçenek değildir.
Bant genişliği hesabı da yapılmalıdır; diğer şaşırtıcı konu budur. Direct play, dosyayı kendi bitrate değeriyle gönderir. Sıkıştırılmış bir 1080p dosya 8-12 Mbps; 1080p Blu-ray remux 20-30 Mbps; 4K HDR ise 40-80 Mbps bant genişliği kullanır. 10 Mbps dosyaları direct play ile izleyen üç kişi, VPS üzerinden sürekli 30 Mbps upload trafiği oluşturur. Planınızda iki değeri kontrol edin: port hızı (upstream yönünde 30 Mbps aktarabiliyor mu?) ve aylık transfer kotası. 10 Mbps bitrate değerine sahip iki saatlik bir film, dışarıya yaklaşık 9 GB trafik oluşturur. Bu nedenle ölçümlü 1 TB/month kota, ayda yüzü biraz aşan sayıda, yani günde üç veya dört film için yeterlidir. Dört ila sekiz kat daha yüksek bitrate kullanan 4K içerikleri izleyen bir hane bu kotayı çok daha hızlı tüketir. Aynı sunucudan dışarıya çıkan diğer tüm trafiği de aynı bütçeye dahil edin. Buna, iki eş doğrudan bağlanamadığında tüm uzak masaüstü oturumunu taşıyan self-hosted RustDesk relay de dahildir.
Ön gereksinimler
- root veya sudo yetkilerine sahip, Docker ve Compose eklentisi kurulu güncel bir Ubuntu 24.04 KVM VPS.
- Medya dosyalarınız için kütüphane boyutunuza uygun bir blok depolama birimi (aşağıdaki boyutlandırma bölümüne bakınız). VPS ile birlikte gelen küçük kök dizin diski, film arşiviniz için uygun değildir.
- Genel HTTPS erişimi istiyorsanız bir alan adı veya her şeyi özel tutmak isterseniz aynı VPS üzerinde bir WireGuard VPN.
- Yasal olarak yayınlama hakkına sahip olduğunuz medya dosyaları; kendi kopyalarınız, kendi kayıtlarınız veya mülkiyeti size ait dosyalar.
Blok depolama birimini önce bağlayın
Birimi sağlayıcınızın panelinden ekleyin, ardından bulun ve bağlayın. Cihaz adını lsblk komutuyla öğrenin; bu isim /dev/sdb veya /dev/vdb gibi bir şey olacaktır, asla kök disk (root disk) ile karıştırılmamalıdır.
lsblk
sudo mkfs.ext4 /dev/sdb # ONLY on a new, empty volume — this ERASES it
sudo mkdir -p /mnt/media
sudo blkid /dev/sdb # copy the UUID shown for this deviceBağlama işlemini /dev/sdb ile değil, UUID kullanarak yapın; çünkü cihaz harfleri yeniden başlatmalarda değişebilir ve yanlış diski biçimlendirebilir veya bağlayabilirsiniz. /etc/fstab dosyasına bir satır ekleyin:
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/media ext4 defaults,nofail 0 2sudo mount -a
df -h /mnt/medianofail parametresi önemlidir: bu parametre olmadan, blok birimi çıkarılırsa sunucu açılışta hata verir ve acil durum kabuğuna (emergency shell) düşer. Buradaki en büyük hata, içinde veri bulunan bir birimde mkfs.ext4 komutunu çalıştırmaktır; bu işlem verileri siler. Yalnızca yeni birimleri biçimlendirin; eğer diskte zaten verileriniz varsa, doğrudan fstab satırını ekleme adımına geçin.
Medya dosyalarını Jellyfin'in beklediği şekilde düzenleyin
Jellyfin, meta verileri klasör ve dosya adlarına göre eşleştirir. Düzenleme hatalı yapılırsa filmler başlığı olmayan dosyalar olarak görünür, posterleri eksik kalır veya bölümler yanlış dizilerle eşleşir. Tam olarak üç kural vardır: her film kendi Name (Year) klasöründe ve eşleşen bir dosya adıyla bulunmalıdır; sezon klasörleri S01 değil, Season 01 olarak adlandırılmalıdır; bölüm dosyaları S01E01 formatını kullanmalıdır ve özel bölümler Season 00 içine yerleştirilmelidir.
/mnt/media
├── Movies
│ ├── Blade Runner (1982)
│ │ └── Blade Runner (1982).mkv
│ └── Arrival (2016)
│ └── Arrival (2016).mkv
└── Shows
└── Severance (2022)
├── Season 01
│ ├── Severance - S01E01.mkv
│ └── Severance - S01E02.mkv
└── Season 00
└── Severance - The Lexington Letter.mkvFilmlerdeki (Year) sadece görsel bir süs değildir; yeniden çevrimleri birbirinden ayırarak eşleştiricinin doğru başlığı bulmasını sağlar. Movies ve Shows klasörlerini ayrı üst düzey dizinler olarak tutun; çünkü her biri Jellyfin'de belirli bir içerik türüne sahip bir kütüphane haline gelir ve bunları karıştırmak meta veri sağlayıcısının kafasını karıştırır. Jellyfin, üçüncü bir fotoğraf klasörünü de sorunsuz bir şekilde indeksleyecektir; ancak bu, amaca yönelik bir fotoğraf sunucusuna kıyasla oldukça kısıtlı bir deneyim sunar. Eğer albümleriniz sizin için önemliyse, onları PhotoPrism veya Immich çalıştıran ayrı bir sunucuya taşıyın ve bu sunucuyu sadece film ve TV içeriklerine ayırın.
İzinler: kütüphanelerin boş görünmesinin bir numaralı nedeni
İnsanların bir akşamını boşa harcamasına neden olan yanlış kanı şudur: Resmi jellyfin/jellyfin imajı, PUID/PGID ortam değişkenlerini dikkate almaz; bunlar LinuxServer.io imajına (lscr.io/linuxserver/jellyfin) aittir. Resmi imajda kullanıcıyı compose dosyasındaki user: anahtarı ile kontrol edersiniz; eğer bu anahtarı belirtmezseniz container root yetkileriyle çalışır. Hangi yöntemi kullanırsanız kullanın kural aynıdır: container'ın çalıştığı uid/gid, tüm medya dizinlerini okuyabilmeli ve bu dizinler içinde gezinebilmelidir.
Standart bir Ubuntu sistemindeki ilk root olmayan kullanıcı olan 1000 uid/gid değerini kullanacağız. Kendi değerinizi doğrulayın ve sahiplik ayarlarını yapın:
id # confirm your user is uid=1000 gid=1000
sudo chown -R 1000:1000 /mnt/media
sudo find /mnt/media -type d -exec chmod 755 {} \;
sudo find /mnt/media -type f -exec chmod 644 {} \;
mkdir -p ~/jellyfin/config ~/jellyfin/cache
sudo chown -R 1000:1000 ~/jellyfinDizinlerin sadece okuma değil, çalıştırma (execute) bitine (755 içindeki x) ihtiyacı vardır; bu bit olmadan container, klasör ismini listelese bile klasörün içine giremez. Tüm kütüphaneyi boş gösteren tuzak, üst dizindir: Eğer container'ın uid değeri mount noktasının kendisinde gezinemiyorsa, /media/Movies veya /media/Shows dizinlerine asla ulaşamaz ve günlük kayıtlarında Access to the path ... is denied hatası ile tüm kütüphane anında boş görünür. Okuyamadığı her bir medya klasörü günlüğe kaydedilir ve atlanır; bu nedenle root kullanıcısı ile kopyalanan dosyalar kütüphanede sessizce kaybolur. İşte bu yüzden, tek bir klasörü düzeltmek yerine tüm dizinlerde özyinelemeli (recursive) olarak chown komutunu çalıştırıyor ve çalıştırma bitini ayarlıyoruz.
docker-compose dosyası
services:
jellyfin:
image: jellyfin/jellyfin:10
container_name: jellyfin
user: "1000:1000"
restart: unless-stopped
ports:
- "127.0.0.1:8096:8096"
volumes:
- ./config:/config
- ./cache:/cache
- /mnt/media:/media:ro
environment:
- JELLYFIN_PublishedServerUrl=https://jellyfin.example.comSatır satır inceleme: user: "1000:1000", yukarıdaki sahiplik bilgisiyle eşleşecek şekilde dosya izinlerini ayarlayan kısımdır. /config; tüm sunucuyu, hesapları, kütüphaneleri, meta verileri ve izleme durumunu barındırır; bu nedenle yazılabilir olmalı ve yedeklenmesi gereken temel dizindir. /cache, geçici çalışma alanıdır. Medya bağlama noktası olan :ro, özellikle salt okunur (read-only) olarak ayarlanmıştır: Jellyfin, görsel ve meta verileri varsayılan olarak /config altında saklar; bu sayede kütüphanenize yazma iznine ihtiyaç duymaz ve salt okunur yapı, dosyalarınızı kazara silinmelere veya hatalı eklentilere karşı korur. Port, 127.0.0.1 adresine kasten bağlanmıştır; Jellyfin web girişi düz HTTP kullandığından, 8096 portunu asla doğrudan genel internete açmamalıyız. JELLYFIN_PublishedServerUrl, sunucunun yerel ağda otomatik keşif (autodiscovery) için duyurduğu adrestir; bu bir LAN UDP yayınıdır. İnternet üzerindeki istemciler bunu görmez ve uygulamaya girdiğiniz URL'yi kullanırlar. Bu değeri, istemcilerin görmesi gereken adres olarak ayarlayın ve uzak cihazlarda ilgili URL'yi manuel olarak girmeniz gerektiğini unutmayın.
Compose dizini içerisinden servisi başlatın:
docker compose up -d
docker logs -f jellyfinİlk çalıştırma: kurulum sihirbazı ve kütüphaneleriniz
Port localhost'a bağlı olduğundan, güvenlik duvarında bir delik açmak yerine sihirbaza dizüstü bilgisayarınızdan bir SSH tüneli aracılığıyla erişin:
ssh -L 8096:127.0.0.1:8096 you@your-vps-ipŞimdi http://localhost:8096 adresine gidin. Sihirbaz sizi dil seçimi ve ardından güçlü bir parolaya sahip bir yönetici kullanıcısı oluşturma adımlarına yönlendirecektir; bu hesap sunucunuzun yetkili hesabıdır, bu nedenle başka bir yerde kullandığınız basit bir parolayı kullanmayın. İlk kütüphanenizi ekleyin: içerik türü olarak Movies seçin, dizin olarak /media/Movies adresini (ana makine yolu değil, container içindeki yol) gösterin ve aynı işlemi Shows için /media/Shows adresinde tekrarlayın. İşlemi tamamladığınızda Jellyfin tarama yapacaktır. Küçük bir kütüphane için doğru sonuç, bir veya iki dakika içinde posterlerin ve başlıkların yüklenmesidir. Kütüphaneleri daha sonra Dashboard → Libraries altından ekleyebilir veya düzenleyebilir, Scan All Libraries ile yeniden tarama yapmaya zorlayabilirsiniz.
Herhangi bir kod dönüştürme (transcoding) işlemine ihtiyaç duyuyorsanız, Dashboard → Playback → Transcoding kısmını açın ve geçici kod dönüştürme yolunu /cache/transcodes olarak ayarlayın; böylece yoğun veri trafiği /config dizinini şişirmek yerine önbellek birimine yazılır. Donanım hızlandırma (hardware acceleration) ayarını None olarak bırakın, hızlandırma yapacak bir GPU bulunmamaktadır.
Uzaktan erişim: TLS reverse proxy veya VPN üzerinde tutma
Jellyfin'e dışarıdan erişmek için iki güvenli yöntem ve kaçınmanız gereken bir güvensiz yöntem bulunmaktadır. Güvensiz yöntem, 8096 numaralı portu doğrudan internete açmaktır: giriş bilgileri şifrelenmemiş (cleartext) olarak iletilir ve port birkaç saat içinde kaba kuvvet (brute-force) saldırılarına maruz kalır.
Seçenek A, TLS reverse proxy. Jellyfin'i Docker uygulamalarınız için otomatik TLS ile Traefik arkasında bir alt alan adına yerleştirin veya Certbot tarafından düzenlenen Let's Encrypt sertifikası ile nginx arkasına alın. Jellyfin gerçek zamanlı güncellemeler için WebSocket kullanır, bu nedenle proxy'nin upgrade başlıklarını iletmesi gerekir. Traefik bunu otomatik yapar; nginx için bu başlıkların açıkça belirtilmesi ve upstream tarafında HTTP/1.1 kullanılması gerekir, aksi takdirde upgrade işlemi gerçekleşmez:
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";
}Yerel otomatik keşif özelliğinin doğru URL'yi duyurması ve uzak uygulamaların verdiğiniz adresi kullanması için JELLYFIN_PublishedServerUrl ayarını https:// adresine getirin ve giriş denemelerine karşı kaba kuvvet saldırılarını yavaşlatmak için fail2ban ekleyin. Sunucu herkese açık hale geldiğinde, kesintilerden izleyicilerinizden önce haberdar olmak için Uptime Kuma aracını bu URL'ye yönlendirin.
Seçenek B, VPN üzerinde gizli tutma. 8096 numaralı portu hiçbir şekilde dışarıya açmayın; Jellyfin'e yalnızca aynı makinede sonlanan bir WireGuard tüneli üzerinden erişin. Bir ev kullanımı için bu en basit ve güvenli seçenektir; sertifika gerektirmez, dış dünyaya açık değildir ve kaba kuvvet saldırı yüzeyi oluşturmaz. Container'ı tünel adresine veya localhost'a bağlayın ve VPN üzerinden bağlanın. Tünel kurulumu için özel VPS için WireGuard VPN kurulumu rehberine bakın.
Depolama boyutlandırma ve yedekleme
Bütçenizi dosya sayısına göre değil, kaliteye göre planlayın. Sıkıştırılmış 1080p filmlerin her biri 4-15 GB, 1080p remux dosyaları 20-40 GB, bir sezon 1080p dizi 15-40 GB; 4K içerikler ise film başına 40-100 GB yer kaplar. Birkaç yüz film ve bir miktar diziden oluşan bir kütüphane için 2-4 TB bir alan gerekir. Blok depolama alanını sonradan taşımaya çalışmak yerine, en başta ihtiyaçtan biraz daha büyük bir alan ayırmak daha ekonomiktir.
/config tüm sunucu durumunu içerir, bu nedenle yedeklemeniz gereken tek şey budur. Snapshot alın veya servisi durdurup tar ile arşivleyin; kopyayı sunucu dışında bir yerde saklayın:
docker compose down
sudo tar czf jellyfin-config-$(date +%F).tgz -C ~/jellyfin config
docker compose up -d/cache ve transcode klasörü geçicidir, silinebilirler. /mnt/media üzerindeki medya dosyalarını ayrı olarak yedekleyebilir veya boyutları nedeniyle yeniden elde edilebilir olduklarını kabul edebilirsiniz; çoğu kullanıcı ikinci yöntemi tercih eder. Yükseltmeler docker compose pull && docker compose up -d şeklindedir; yukarıdaki :10 etiketi 10.x ana sürümü içinde kalır. Bir sonraki ana sürüme geçmek bilinçli bir etiket değişikliği gerektirir. Kütüphane şeması geçişleri ana sürümlerde gerçekleştiği için, değişiklik yapmadan önce Jellyfin sürüm notlarını mutlaka inceleyin. Sabitlenmiş bir etiket ve yedeklenmiş bir durum dizini, her zaman çalışan bir container için tüm reçetedir. Bu, kendi kendine barındırılan bir ajanın bellek ve zamanlamalarını yeniden başlatmalar arasında koruma işleminin arkasındaki aynı modeldir.
Hata modları ve karşılaşacağınız dizgiler
Tarama sonrasında kütüphane boş görünüyor. Dashboard → Logs (veya ~/jellyfin/config/log/log_*.log) kısmındaki günlük kaydı şunu gösterir:
System.UnauthorizedAccessException: Access to the path '/media/Movies' is denied.Kapsayıcının uid değeri ilgili yolu okuyamıyor. Nedeni: medya dosyalarının root veya user: değerinizden farklı bir uid tarafından sahiplenilmesi, bir dizinin execute bitinin eksik olması veya üst dizin bağlama noktasının (mount) ilgili uid tarafından erişilebilir olmamasıdır. Çözüm: chown -R 1000:1000 /mnt/media, dizinler için 755, dosyalar için 644 komutlarını uygulayın ve ardından yeniden tarama yapın.
Oynatma sırasında CPU kullanımı tavan yapıyor ve takılmalar yaşanıyor. docker stats jellyfin, CPU kullanımının çekirdek sayınızın katları kadar %100'e yaklaştığını ve Dashboard → Playback kısmının oturumu Transcode olarak, hızı ise 1.0x değerinin altında listelediğini gösterir. İstemci doğrudan oynatma (direct-play) yapmıyor; bu nedenle VPS, CPU üzerinden gerçek zamanlıdan daha yavaş bir transkod işlemi gerçekleştiriyor ve yetişemiyor. Nedeni: desteklenmeyen bir codec veya kapsayıcı, altyazı gömme (burn-in) işlemi veya HDR ton eşlemedir. Çözüm: doğrudan oynatmayı destekleyen bir istemciye geçin, kaynakları H.264/AAC formatında tutun, görüntü tabanlı (PGS/VOBSUB) yerine metin tabanlı (SRT) altyazılar kullanın ve 4K HDR içerikleri yalnızca CPU kullanan bir sunucuda oynatmaktan kaçının.
"No compatible streams are available." Tam mesaj genellikle "This client isn't compatible with the media and the server isn't sending a compatible media format." şeklindedir. İstemci kaynağı reddetti ve yedek transkod işlemi de başlatılamadı. Nedeni: hatalı bir ffmpeg komutu, okunamayan bir dosya veya kullanıcının profilinin video dönüştürmeyi engellemesi olabilir. Çözüm: Dashboard → Logs kısmındaki ffmpeg satırını okuyun, dosyanın genel olarak oynatılabilir olduğunu doğrulayın, transkod işlemine güveniyorsanız kullanıcının oynatma izinlerini kontrol edin ve tarayıcı kaynaklı codec sorunlarını elemek için farklı bir istemci ile deneyin.
Filmlerin posteri yok veya yanlış poster görünüyor. Meta veriler eşleşmedi. Nedeni: bir filmin kendi Name (Year) klasöründe olmaması, bir sezon klasörünün Season 01 yerine S01 olarak adlandırılması, bölümlerin S01E01 formatında olmaması veya yıl bilgisinin eksik olmasıdır. Çözüm: dosyaları yukarıdaki yapıya göre yeniden adlandırın, ardından Refresh metadata → Replace all işlemini yapın veya doğru TMDB/TVDB kaydını sabitlemek için tek bir öğe üzerinde Identify özelliğini kullanın.
FAQ
Bir VPS, GPU olmadan video kod dönüştürme (transcoding) yapabilir mi?
Evet, ancak yalnızca CPU üzerinden yapılabilir ve bu işlem yüksek kaynak tüketir. Tek bir 1080p yazılımsal kod dönüştürme işlemi birden fazla vCPU'yu tamamen meşgul edebilir; 4K veya HEVC içerikler ise genellikle gerçek zamanlı performansa yetişemez ve oynatma sırasında takılmalara neden olur. En verimli yöntem kod dönüştürmeden kaçınmaktır: kütüphanenizi H.264/AAC formatında tutun ve doğrudan oynatma (direct-play) yapan istemci uygulamaları kullanın; böylece VPS yalnızca veri akışı sağlar. Yalnızca anlık kod dönüştürmeye gerçekten ihtiyacınız varsa GPU destekli bir sunucu kiralayın.
Jellyfin kütüphanem tarama sonrasında neden boş görünüyor?
Neredeyse her zaman izinlerle ilgili bir sorundur. Resmi jellyfin/jellyfin imajı, belirlediğiniz user: (veya root) kullanıcısı ile çalışır; eğer dosyalar bu kullanıcı tarafından okunabilir değilse, tarama günlüklerinde Access to the path ... is denied hatası oluşur ve dosyalar atlanır. Sahiplik ayarlarını chown -R 1000:1000 /mnt/media ile düzeltin, dizinlere çalıştırma (execute) izni verin (755) ve yeniden taratın. Üst dizinleri de kontrol edin; çünkü konteynerin kullanıcı kimliği /mnt/media dizinine erişemiyorsa kütüphane klasörlerine ulaşamaz ve sonuç boş döner. İkinci en yaygın neden ise klasör yapısının Jellyfin'in beklediği formatla eşleşmemesidir.
Jellyfin'e uzaktan ve güvenli bir şekilde nasıl erişirim?
İki iyi seçenek mevcuttur. Giriş ve akışın şifrelenmesi için bir alt alan adı (subdomain) üzerinde TLS reverse proxy arkasına alın ve fail2ban ekleyin; şifrenizi düz metin olarak gönderen 8096 numaralı portu asla doğrudan dış dünyaya açmayın. Diğer seçenek ise sunucuyu tamamen özel tutmak ve yalnızca VPN üzerinden erişmektir; bu, ev kullanımı için en basit ve güvenli yöntemdir. Uygulamalara genel IP adresini doğrudan verin; otomatik keşif (autodiscovery) yerel ağ yayınıdır ve internet üzerinden gelen istemcilere ulaşmaz.
Jellyfin VPS'i ne kadar disk ve bant genişliğine ihtiyaç duyar?
Disk ihtiyacı kaliteye bağlıdır: sıkıştırılmış 1080p film başına 4-15 GB, remux dosyalar için 20-40 GB ve 4K için 40-100 GB ayırın; bu nedenle çoğu kütüphane için 2-4 TB arası bir blok depolama alanı önerilir. Bant genişliği, doğrudan oynatma bit hızına göre belirlenir; 1080p akış başına 8-12 Mbps, 4K için ise çok daha fazlası gerekir. Bu nedenle port hızınızın eşzamanlı izleyici sayısını desteklediğinden emin olun ve aylık veri transfer limitlerini takip edin. Kod dönüştürme planlıyorsanız CPU kapasitesini yüksek tutun; doğrudan oynatma yapacaksanız çekirdek sayısından ziyade bant genişliğine öncelik verin.
Bir VPS üzerinde Jellyfin çalıştırmak yasal mı?
Jellyfin'in kendisi ücretsiz, açık kaynaklı bir yazılımdır ve çalıştırılması tamamen yasaldır. Önemli olan içeriktir: yalnızca sahip olduğunuz veya bulundurma lisansına sahip olduğunuz medyaları, kendi disk kopyalarınızı, kayıtlarınızı veya hak sahibi olduğunuz dosyaları yayınlayın. Jellyfin herhangi bir medya ile gelmez ve herhangi bir içerik edinme yöntemi sunmaz; halihazırda sahip olduğunuz bir kütüphane için bir oynatıcıdır.