Cara Menjalankan Jellyfin di VPS untuk Streaming Media
Jalankan Jellyfin di Docker pada VPS dengan block storage, izin media yang benar, direct play, batas transcoding CPU, dan akses jarak jauh yang aman.
Yang Anda bangun
Server media Jellyfin pada VPS: satu container, tiga volume, dan disk block storage yang menyimpan film serta serial Anda. Server ini dapat diakses dari browser atau aplikasi Jellyfin mana pun. Instalasinya menggunakan file compose yang terdiri atas 15 baris. Semua masalah yang muncul setelahnya berasal dari dua hal: izin file yang tidak dapat dibaca oleh container, dan permintaan transcoding video kepada VPS tanpa GPU yang tidak sesuai untuk pekerjaan tersebut. Sebagian besar panduan ini membahas dua hal itu karena keduanya paling sering menimbulkan tiket dukungan.
Jellyfin gratis dan sepenuhnya open source. Jellyfin tidak memerlukan akun, tidak memiliki fitur berbayar, dan tidak mengumpulkan telemetry. Karena itu, Jellyfin hampir selalu masuk dalam daftar hal yang layak di-self-host pada 2026. Jellyfin memutar media yang Anda miliki. Jellyfin tidak menyediakan konten, dan panduan ini tidak membahas cara mendapatkannya.
Realitas transcoding sebelum menyewa apa pun
Baca ini terlebih dahulu karena hal ini menentukan pilihan yang Anda beli. Media server melakukan salah satu dari dua hal saat Anda menekan tombol putar. Direct play mengalirkan file apa adanya: VPS membaca byte dari disk dan mengirimkannya melalui jaringan dengan penggunaan CPU yang hampir tidak berarti. Transcoding melakukan encoding ulang video secara langsung, baik untuk mengubah resolusi, codec, maupun membakar subtitle ke dalam video. Proses ini sepenuhnya menggunakan CPU.
VPS umumnya tidak memiliki GPU. Karena itu, setiap transcoding video berjalan pada CPU menggunakan libx264/libx265, dan encoding berbasis software membutuhkan banyak sumber daya. Satu transcoding H.264 1080p dapat memenuhi kapasitas beberapa vCPU bersama; transcoding 4K atau HEVC biasanya sama sekali tidak mampu mengikuti kecepatan real-time, sehingga pemutaran terhenti dan terus-menerus melakukan buffering. Hardware transcoding, yang membuat proses ini murah pada server rumahan dengan Intel iGPU atau kartu Nvidia, tidak tersedia bagi Anda kecuali provider menawarkan instance GPU.
Karena itu, strategi utama pada VPS adalah menghindari transcoding. Simpan library dalam codec yang dapat diputar secara native oleh client, yaitu video H.264, audio AAC atau AC3, dalam container MP4 atau MKV. Pilih aplikasi client yang mendukung direct play: aplikasi Jellyfin native untuk Android TV, iOS, dan Roku, serta Infuse, Kodi, dan Jellyfin Media Player untuk desktop. Dengan cara ini, VPS tidak perlu menjalankan transcoding ffmpeg selama pemutaran, dan VPS dengan 2 vCPU yang sederhana dapat mengalirkan media kepada beberapa orang secara bersamaan. Jika Anda berencana melakukan transcoding, Anda memerlukan VPS yang jauh lebih besar dan lebih mahal. Bahkan dengan VPS tersebut, 4K tetap merupakan pilihan yang berisiko.
Hitung juga kebutuhan bandwidth karena bagian ini sering mengejutkan. Direct play mengirimkan file pada bitrate aslinya. File 1080p terkompresi menggunakan 8-12 Mbps; Blu-ray remux 1080p menggunakan 20-30 Mbps; 4K HDR menggunakan 40-80 Mbps. Tiga orang yang melakukan direct play terhadap file 10 Mbps menggunakan upload berkelanjutan sebesar 30 Mbps dari VPS Anda. Periksa dua angka pada paket Anda: kecepatan port (apakah mampu mengirimkan 30 Mbps ke jaringan luar?) dan batas transfer bulanan. Film berdurasi dua jam dengan bitrate 10 Mbps menghasilkan sekitar 9 GB trafik keluar. Jadi, alokasi terukur sebesar 1 TB/bulan hanya cukup untuk sedikit lebih dari seratus film seperti itu per bulan, atau tiga hingga empat film per hari. Jika satu rumah menonton konten 4K dengan bitrate empat hingga delapan kali lebih besar, alokasi tersebut akan habis jauh lebih cepat. Hitung juga semua trafik lain yang keluar dari VPS yang sama dalam anggaran tersebut, termasuk relay RustDesk yang di-host sendiri, yang membawa seluruh sesi desktop jarak jauh saat dua peer tidak dapat terhubung secara langsung.
Prasyarat
- KVM VPS Ubuntu 24.04 baru dengan akses root atau sudo, serta Docker dan plugin Compose yang sudah terpasang.
- Volume block storage untuk media, dengan kapasitas yang sesuai dengan koleksi Anda (lihat panduan penentuan kapasitas di bawah). Disk root kecil yang disertakan bersama VPS bukan tempat untuk menyimpan film.
- Nama domain jika Anda menginginkan akses HTTPS publik, atau VPN WireGuard pada VPS yang sama jika Anda ingin seluruh layanan tetap privat.
- Media yang secara hukum boleh Anda streaming, rip pribadi, rekaman pribadi, atau file milik Anda sendiri.
Mount block storage terlebih dahulu
Pasang volume melalui panel provider Anda, lalu temukan dan mount volume tersebut. Dapatkan nama device dari lsblk. Namanya akan berupa /dev/sdb atau /dev/vdb, bukan root disk.
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 deviceMount berdasarkan UUID, bukan berdasarkan /dev/sdb, karena huruf device dapat berubah urutannya setelah reboot. Jika demikian, Anda dapat memformat atau me-mount disk yang salah. Tambahkan satu baris ke /etc/fstab:
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/media ext4 defaults,nofail 0 2sudo mount -a
df -h /mnt/medianofail penting. Tanpa opsi tersebut, jika block volume terlepas, server tidak dapat melakukan boot dan akan masuk ke emergency shell. Kesalahan terbesar dalam tahap ini adalah menjalankan mkfs.ext4 pada volume yang sudah berisi data karena perintah tersebut akan menghapus seluruh isinya. Format hanya volume baru. Jika disk sudah berisi library Anda, langsung lanjutkan ke baris fstab.
Atur media sesuai dengan struktur yang diharapkan Jellyfin
Jellyfin mencocokkan metadata berdasarkan nama folder dan file. Jika strukturnya salah, film akan muncul sebagai file tanpa judul dan poster, atau sebuah episode akan dicocokkan dengan serial yang salah. Empat konvensi berikut menangani hampir seluruh kebutuhan: setiap film berada dalam folder sendiri dengan nama file yang sama, menggunakan format Name (Year) (Jellyfin menganggap tahun sebagai opsional, tetapi tahun membuat pencocokan jauh lebih andal); folder musim diberi nama Season 01, bukan S01; file episode menggunakan S01E01; dan episode khusus ditempatkan dalam Season 00.
/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.mkv(Year) pada film bukan sekadar hiasan. Bagian tersebut membedakan film remake agar pencocokan memilih judul yang benar. Pertahankan Movies dan Shows sebagai folder tingkat teratas yang terpisah karena masing-masing menjadi library Jellyfin dengan jenis konten tertentu. Mencampurnya dapat membingungkan penyedia metadata. Jellyfin juga dapat mengindeks folder ketiga yang berisi foto, tetapi pengalaman pengguna yang diberikan tidak sebaik server foto khusus. Jadi, jika album Anda penting, sediakan server terpisah yang menjalankan PhotoPrism atau Immich dan gunakan server ini hanya untuk film dan TV.
Permissions: alasan utama library tidak menampilkan apa pun
Berikut miskonsepsi yang dapat menghabiskan waktu sepanjang malam. Image resmi jellyfin/jellyfin tidak mengenali environment variable PUID/PGID. Variable tersebut digunakan oleh image LinuxServer.io (lscr.io/linuxserver/jellyfin). Pada image resmi, pengguna dikendalikan melalui key user: dalam compose. Jika key tersebut dihilangkan, container berjalan sebagai root. Apa pun image yang digunakan, aturannya sama: uid/gid yang digunakan container harus dapat membaca dan menelusuri setiap direktori media.
Kita akan menjalankan container sebagai uid/gid 1000, yaitu pengguna non-root pertama pada instalasi Ubuntu standar. Pastikan nilai yang digunakan dan atur ownership:
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 ~/jellyfinDirektori memerlukan bit execute (x dalam 755), bukan hanya bit read. Tanpa bit tersebut, container tidak dapat masuk ke folder meskipun dapat melihat namanya. Penyebab yang sering mengosongkan seluruh library adalah direktori induk. Jika uid container tidak dapat menelusuri mount itu sendiri, container tidak pernah mencapai /media/Movies atau /media/Shows. Akibatnya, semua library langsung kosong dan Access to the path ... is denied tercatat dalam log. Setiap folder media yang tidak dapat dibaca akan dicatat dalam log dan dilewati. Karena itu, sekumpulan file yang disalin sebagai root dapat menghilang secara diam-diam dari library. Inilah alasan kita menjalankan chown secara rekursif dan menetapkan bit execute pada setiap direktori, bukan hanya memperbaiki satu folder.
File docker-compose
services:
jellyfin:
image: jellyfin/jellyfin:12
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.comPenjelasan baris demi baris: jellyfin/jellyfin:12 mengikuti lini rilis 12.x saat ini (12.2 per 2026-10-10). user: "1000:1000" menetapkan uid/gid yang digunakan untuk menjalankan proses Jellyfin. Pengaturan ini tidak mengubah ownership atau mode file apa pun, karena Docker mempertahankan uid/gid host pada direktori yang di-mount. Karena itu, chown di atas harus sama dengan nilai tersebut. /config menyimpan seluruh data server, akun, pustaka, metadata, dan status tontonan. Direktori ini harus dapat ditulisi dan harus dicadangkan. /cache adalah ruang kerja sementara yang dapat dibuang. Mount media adalah :ro (read-only) dengan sengaja. Secara default, Jellyfin menyimpan artwork dan metadata di /config. Jadi, Jellyfin tidak perlu menulis ke pustaka Anda. Mode read-only juga melindungi file Anda dari penghapusan yang tidak disengaja atau plugin yang bermasalah. Port sengaja di-bind ke 127.0.0.1. Login web Jellyfin menggunakan HTTP biasa, jadi kami tidak pernah memublikasikan 8096 ke Internet publik. JELLYFIN_PublishedServerUrl adalah alamat yang diiklankan server untuk autodiscovery lokal melalui broadcast UDP LAN. Karena itu, client di Internet tidak pernah melihatnya dan cukup menggunakan URL yang Anda masukkan ke aplikasi. Atur nilai ini ke alamat yang harus diberikan kepada client. Pada perangkat remote, Anda harus memasukkan URL tersebut secara manual.
Jalankan container dari direktori compose:
docker compose up -d
docker logs -f jellyfinFirst run: wizard penyiapan dan pustaka Anda
Karena port terikat ke localhost, akses wizard melalui tunnel SSH dari laptop Anda, bukan dengan membuka celah pada firewall:
ssh -L 8096:127.0.0.1:8096 you@your-vps-ipSekarang buka http://localhost:8096. Wizard memandu Anda memilih bahasa, lalu membuat pengguna admin dengan kata sandi yang kuat. Akun ini digunakan untuk server, jadi jangan gunakan kembali kata sandi sementara. Tambahkan pustaka pertama Anda: pilih jenis konten Movies, arahkan ke /media/Movies (path di dalam container, bukan path pada host), lalu ulangi dengan Shows di /media/Shows. Selesaikan prosesnya, lalu Jellyfin akan melakukan pemindaian. Hasil yang benar terlihat ketika poster dan judul mulai muncul dalam satu atau dua menit untuk pustaka kecil. Tambahkan atau edit pustaka nanti melalui Dashboard → Libraries, lalu paksa pemindaian ulang dengan Scan All Libraries. Poster tersebut juga membuat frontend alternatif layak dicoba setelah konfigurasi dasar berfungsi, karena Halcyon membangun ulang pustaka yang sama menjadi toko video era 90-an yang dapat dijelajahi dari artwork yang telah diambil Jellyfin.
Jika Anda menggunakan transcoding, buka Dashboard → Playback → Transcoding dan atur path sementara transcoding ke /cache/transcodes agar aktivitas tersebut menggunakan volume cache, bukan memperbesar /config. Biarkan akselerasi perangkat keras disetel ke None karena tidak ada GPU yang dapat digunakan untuk akselerasi.
Akses jarak jauh: reverse proxy TLS, atau pertahankan akses melalui VPN
Ada dua cara aman untuk mengakses Jellyfin dari luar, serta satu cara tidak aman yang harus dihindari. Cara yang tidak aman adalah memublikasikan port 8096 langsung ke Internet: kredensial login dikirim dalam teks biasa, dan port tersebut akan menjadi sasaran brute-force dalam hitungan jam.
Opsi A, reverse proxy TLS. Tempatkan Jellyfin pada subdomain di belakang Traefik dengan TLS otomatis untuk aplikasi Docker Anda, atau di belakang nginx dengan sertifikat Let's Encrypt yang diterbitkan oleh Certbot. Jellyfin menggunakan WebSockets untuk pembaruan real-time, sehingga proxy harus meneruskan header upgrade. Traefik melakukannya secara otomatis. nginx memerlukan konfigurasi header tersebut secara eksplisit, serta HTTP/1.1 ke upstream. Jika tidak, proses upgrade tidak pernah terjadi:
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";
}Atur JELLYFIN_PublishedServerUrl ke alamat https:// agar autodiscovery lokal mengiklankan URL yang benar dan aplikasi jarak jauh menggunakan alamat yang Anda berikan. Tambahkan juga fail2ban untuk memperlambat upaya brute-force terhadap login. Setelah server dapat diakses publik, arahkan Uptime Kuma ke URL tersebut agar Anda mengetahui downtime sebelum para penonton mengalaminya. Arahkan notifikasinya ke server ntfy yang di-host sendiri agar pemeriksaan yang gagal diterima sebagai push notification di ponsel, bukan email yang baru Anda baca keesokan paginya. Menempatkan login di Internet publik juga merupakan waktu yang tepat untuk mengaudit server secara keseluruhan. Jangan berasumsi bahwa hanya port 443 yang merespons: sudo ss -tlnp menampilkan setiap port yang listening beserta proses di baliknya. Jika Anda juga menerapkan kode sendiri di server tersebut, open-kritt memindai repositori dan dependensinya untuk mencari kerentanan; alat ini mengaudit kode sumber, bukan port yang listening.
Opsi B, pertahankan akses privat melalui VPN. Jangan memublikasikan 8096 ke Internet publik sama sekali. Akses Jellyfin hanya melalui tunnel WireGuard yang berakhir pada server yang sama. Untuk penggunaan rumah tangga, ini merupakan pilihan aman yang paling sederhana: tanpa sertifikat, tanpa eksposur publik, dan tanpa permukaan serangan brute-force. Binding localhost dari file compose saja tidak cukup, karena port yang dipublikasikan pada 127.0.0.1 hanya dapat diakses dari VPS itu sendiri, bukan dari peer VPN. Publikasikan port tersebut pada alamat tunnel server sebagai gantinya, misalnya "10.8.0.1:8096:8096" dengan menggunakan IP server WireGuard Anda sendiri. Alternatifnya, pertahankan localhost dan tempatkan proxy yang listening pada alamat tunnel di depannya, lalu lakukan koneksi melalui VPN. Lihat panduan penyiapan VPN WireGuard untuk VPS privat untuk konfigurasi tunnel.
Penyimpanan dan pencadangan
Tentukan kapasitas berdasarkan kualitas, bukan jumlah file. Film 1080p terkompresi berukuran 4-15 GB per film; remux 1080p berukuran 20-40 GB; satu musim serial TV 1080p berukuran 15-40 GB; konten 4K berukuran 40-100 GB per film. Pustaka yang berisi beberapa ratus film dan sejumlah serial membutuhkan volume 2-4 TB. Menyediakan kapasitas volume block secara berlebih sekali biasanya lebih murah daripada melakukan migrasi nanti.
/config adalah seluruh keadaan server. Jadi, bagian inilah yang wajib Anda cadangkan. Buat snapshot, atau hentikan server lalu buat arsip tar, kemudian simpan salinannya di luar server:
docker compose down
sudo tar czf jellyfin-config-$(date +%F).tgz -C ~/jellyfin config
docker compose up -d/cache dan folder transcode dapat dihapus dan dibuat ulang. Cadangkan media di /mnt/media secara terpisah, atau anggap media tersebut dapat di-rip ulang. Kebanyakan orang memilih opsi kedua karena ukuran datanya. Upgrade dilakukan dengan docker compose pull && docker compose up -d. Tag :12 di atas tetap berada dalam lini 12.x. Jadi, untuk berpindah ke versi mayor berikutnya, Anda harus mengubah tag secara sengaja. Baca sekilas catatan rilis Jellyfin sebelum melakukannya karena migrasi skema pustaka terjadi pada versi mayor. Jellyfin menghapus awalan "10." dari nomor versinya pada 12.0 (September 2026): 12.0 adalah versi yang sebelumnya akan disebut 10.12, tidak ada versi 11.x, dan 10.11.x adalah lini terakhir dengan skema lama. Jika file compose lama Anda masih berisi jellyfin/jellyfin:10, file tersebut tetap pada 10.11 karena tag itu terakhir diperbarui pada 2026-06-06 menjadi 10.11.11, dan tidak akan pernah mengambil 12.x. Mengubahnya menjadi :12 bukan sekadar mengubah tag: 12.0 mengubah skema database dan menulis ulang data saat boot pertama. Karena itu, hentikan server dan buat cadangan seperti di atas terlebih dahulu. Cadangan tersebut adalah satu-satunya cara untuk kembali ke kondisi sebelumnya. 12.0 dapat di-upgrade langsung dari 10.10.7 atau rilis 10.11.x mana pun. Setelah itu, diperlukan pemindaian pustaka penuh, yang membutuhkan waktu jauh lebih lama daripada biasanya. Tag yang ditetapkan dan satu direktori keadaan yang dicadangkan sudah mencakup pola dasar untuk container yang selalu aktif. Pola yang sama digunakan untuk mempertahankan memori dan jadwal agent yang di-host sendiri setelah reboot.
Mode kegagalan dan pesan yang akan Anda lihat
Library kosong setelah pemindaian. Log di Dashboard → Logs (atau ~/jellyfin/config/log/log_*.log) menampilkan:
System.UnauthorizedAccessException: Access to the path '/media/Movies' is denied.uid container tidak dapat membaca path tersebut. Penyebabnya dapat berupa media yang dimiliki oleh root atau uid selain nilai user: Anda, direktori yang tidak memiliki bit execute, atau mount parent yang tidak dapat dilintasi oleh uid tersebut. Perbaiki dengan chown -R 1000:1000 /mnt/media, gunakan 755 untuk direktori dan 644 untuk file, lalu lakukan pemindaian ulang.
Pemutaran membuat CPU penuh dan mengalami buffering. docker stats jellyfin menunjukkan penggunaan CPU mendekati 100% dikalikan jumlah core, dan Dashboard → Playback mencantumkan sesi tersebut sebagai Transcode dengan kecepatan di bawah 1.0x. Client tidak melakukan direct play. Akibatnya, VPS melakukan transcoding menggunakan CPU dengan kecepatan lebih rendah daripada waktu nyata dan tertinggal. Penyebabnya dapat berupa codec atau container yang tidak didukung, burn-in subtitle, atau tone-mapping HDR. Solusinya adalah beralih ke client yang mendukung direct play, menyimpan sumber dalam H.264/AAC, menggunakan subtitle teks (SRT), bukan subtitle gambar (PGS/VOBSUB), yang tidak dapat digambar sendiri oleh sebagian besar client Jellyfin sehingga memaksa burn-in, dan menonaktifkan pemutaran 4K HDR sepenuhnya pada server yang hanya mengandalkan CPU.
"Tidak ada stream yang kompatibel." Pesan lengkapnya biasanya adalah "Client ini tidak kompatibel dengan media tersebut dan server tidak mengirimkan format media yang kompatibel." Client menolak sumber media, dan transcoding fallback juga gagal dimulai. Penyebabnya dapat berupa perintah ffmpeg yang salah, file yang tidak dapat dibaca, atau profil pengguna yang memblokir konversi video. Baca baris ffmpeg di Dashboard → Logs, pastikan file dapat diputar, periksa izin pemutaran pengguna jika Anda mengandalkan transcoding, dan coba client kedua untuk memastikan masalahnya bukan kejanggalan codec pada browser.
Film tidak memiliki poster atau menggunakan poster yang salah. Metadata tidak cocok. Penyebabnya dapat berupa folder atau nama file yang tidak sesuai dengan judul dalam daftar penyedia metadata, remake atau judul umum tanpa tahun untuk membedakan versinya, folder season bernama S01 alih-alih Season 01, atau episode yang tidak menggunakan format S01E01. Solusinya adalah mengganti nama sesuai tata letak di atas, lalu pilih Refresh metadata → Replace all, atau gunakan Identify pada satu item untuk menetapkan entri TMDB/TVDB yang benar.
FAQ
Dapatkah VPS melakukan transcoding video tanpa GPU?
Ya, tetapi hanya menggunakan CPU dan biayanya tinggi. Satu proses transcoding software 1080p dapat memenuhi kapasitas beberapa vCPU, sedangkan 4K atau HEVC biasanya tidak mampu mengikuti waktu nyata sehingga pemutaran mengalami buffering. Pilihan yang lebih baik adalah menghindari transcoding: simpan koleksi dalam format H.264/AAC dan gunakan aplikasi klien yang mendukung direct play, sehingga VPS hanya mengalirkan data. Sewa instance GPU hanya jika Anda benar-benar memerlukan transcoding secara langsung.
Mengapa koleksi Jellyfin saya kosong setelah pemindaian?
Hampir selalu penyebabnya adalah izin akses. Image resmi jellyfin/jellyfin berjalan sebagai pengguna yang ditetapkan melalui user:, atau sebagai root. Jika file tidak dapat dibaca oleh uid tersebut, log pemindaian mencatat Access to the path ... is denied dan melewatinya. Perbaiki kepemilikan dengan chown -R 1000:1000 /mnt/media, berikan bit execute pada direktori menggunakan 755, lalu lakukan pemindaian ulang. Periksa juga direktori induknya, karena jika uid container tidak dapat menelusuri /mnt/media itu sendiri, container tidak pernah mencapai folder koleksi dan hasilnya tetap kosong. Penyebab umum kedua adalah tata letak folder yang tidak sesuai dengan yang diharapkan Jellyfin.
Bagaimana cara mengakses Jellyfin dari jarak jauh dengan aman?
Ada 2 pilihan yang baik. Tempatkan Jellyfin di balik reverse proxy TLS pada subdomain agar login dan streaming terenkripsi, lalu tambahkan fail2ban. Jangan pernah mengekspos port biasa 8096, karena port tersebut mengirimkan kata sandi dalam teks biasa. Atau, jaga agar Jellyfin sepenuhnya privat dan akses hanya melalui VPN. Untuk penggunaan rumah tangga, ini adalah pilihan aman yang paling sederhana. Berikan alamat publik secara langsung kepada aplikasi. Autodiscovery adalah broadcast jaringan lokal, sehingga tidak menjangkau klien yang terhubung melalui Internet.
Berapa kapasitas disk dan bandwidth yang dibutuhkan VPS Jellyfin?
Kebutuhan disk bergantung pada kualitas: siapkan 4-15 GB per film 1080p terkompresi, 20-40 GB per remux, dan 40-100 GB untuk 4K. Karena itu, sebagian besar koleksi memerlukan block volume berkapasitas 2-4 TB. Bandwidth ditentukan oleh bitrate direct play, yaitu 8-12 Mbps per streaming 1080p dan jauh lebih tinggi untuk 4K. Pastikan kecepatan port Anda mampu menangani jumlah penonton simultan, lalu pantau batas transfer bulanan. Tambahkan cadangan kapasitas CPU jika Anda berencana melakukan transcoding. Jika Anda berencana menggunakan direct play, prioritaskan bandwidth daripada jumlah core.
Apakah menjalankan Jellyfin pada VPS legal?
Jellyfin sendiri adalah software gratis dan open source, sehingga menjalankannya sepenuhnya legal. Hal yang penting adalah kontennya: lakukan streaming hanya terhadap media yang Anda miliki atau yang lisensinya mengizinkan Anda menyimpannya, seperti rip dari disk milik sendiri, rekaman, atau file yang memang boleh Anda gunakan. Jellyfin tidak menyediakan media dan tidak menyediakan cara untuk mendapatkannya. Jellyfin adalah pemutar untuk koleksi yang sudah Anda miliki.