Jellyfin: Media Server Pribadi Gratis, Nonton Koleksi Sendiri di Mana Saja
Langganan menumpuk, koleksi sendiri tercecer
Biaya langganan streaming makin lama makin terasa: satu layanan untuk film, satu lagi untuk serial, satu lagi untuk musik, dan katalognya bisa berubah sewaktu-waktu. Sementara itu, koleksi Anda sendiri — film keluarga, serial yang sudah dibeli, album musik — tercecer di hard disk dan folder yang tidak enak dijelajahi.
Jellyfin dibuat untuk itu. Jellyfin adalah media server gratis dan open source: ia membaca folder media Anda, mengambil metadata (judul, poster, sinopsis, pemeran), lalu menyajikannya lewat antarmuka yang mirip layanan streaming, lengkap dengan aplikasi TV, Android, dan iOS. Semuanya berjalan di server Anda sendiri. Tidak ada yang mencatat apa yang Anda tonton untuk iklan, dan tidak ada tagihan bulanan.
Ada satu alasan konkret kenapa Jellyfin makin dilirik belakangan ini: sejak 29 April 2025, Plex mewajibkan Plex Pass atau Remote Watch Pass untuk memutar media pribadi dari jarak jauh (di luar jaringan rumah). Streaming lokal di jaringan yang sama tetap gratis, tapi kalau Anda sering menonton dari luar rumah, fitur itu kini berbayar. Jellyfin tidak punya pembatasan seperti itu — remote streaming adalah bagian dari perangkat lunaknya yang gratis.
Tapi jujur saja di awal: Anda yang jadi adminnya. Kalau server mati, tontonan ikut mati. Dan Jellyfin hanya memutar koleksi yang memang Anda miliki — ia bukan pengganti katalog layanan streaming.
Yang perlu disiapkan
- VPS dengan patokan praktis 2 CPU dan 4 GB RAM (bukan angka resmi vendor — sesuaikan dengan beban nyata). Untuk pemakaian 1–3 penonton bersamaan dengan direct play (tanpa transcoding), spesifikasi ini cukup. Transcoding video berat — misalnya 4K ke HP — butuh CPU lebih kuat atau akselerasi hardware.
- Docker dan Docker Compose.
- Disk yang cukup untuk koleksi media Anda. Hitung dari ukuran koleksi sekarang, lalu siapkan ruang tumbuh.
- Opsional tapi sangat disarankan: domain atau subdomain, misalnya
media.domainanda.com, supaya akses dari luar lewat HTTPS.
Perintah di artikel ini memakai Ubuntu 24.04. Kalau Anda memakai distro lain, sesuaikan manajer paketnya, tapi langkah Jellyfin-nya sama.
Install Docker
Kalau Docker belum terpasang, install dari repositori Ubuntu:
sudo apt update sudo apt install -y docker.io docker-compose-v2 sudo systemctl enable --now docker sudo usermod -aG docker $USER
Perintah terakhir menambahkan user Anda ke grup docker supaya tidak perlu sudo setiap kali menjalankan Docker. Setelah itu logout dan login lagi agar grup barunya aktif, lalu cek:
docker --version docker compose version
Install Jellyfin dengan Docker Compose
Kita memakai image resmi jellyfin/jellyfin. Port web Jellyfin adalah 8096. Sesuai praktik aman yang dipakai di artikel-artikel Rnevio sebelumnya, port ini diikat ke 127.0.0.1 saja — Jellyfin tidak terekspos langsung ke internet, melainkan diakses lewat reverse proxy yang dibahas di bawah.
Siapkan dulu folder media dan konfigurasinya:
sudo mkdir -p /opt/jellyfin /media/library/movies /media/library/shows /media/library/music sudo chown "$USER:$USER" /opt/jellyfin cd /opt/jellyfin
Lalu buat docker-compose.yml:
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
restart: unless-stopped
ports:
- "127.0.0.1:8096:8096"
volumes:
- jellyfin-config:/config
- jellyfin-cache:/cache
- /media/library:/media:ro
environment:
- JELLYFIN_PublishedServerUrl=https://media.domainanda.com
volumes:
jellyfin-config:
jellyfin-cache:Isi file itu, singkatnya:
/configmenyimpan database, akun pengguna, dan metadata — wajib persisten, jadi memakai named volume./cachemenyimpan cache transcoding dan gambar sementara./mediadi-mount read-only (:ro) supaya Jellyfin tidak bisa mengubah atau menghapus file koleksi Anda secara tidak sengaja.JELLYFIN_PublishedServerUrldiisi alamat publik Anda nanti; ganti dengan domain Anda sendiri.
Jalankan dan verifikasi:
docker compose up -d docker compose ps curl -s http://127.0.0.1:8096/health
Buka wizard setup lewat terowongan SSH untuk sementara (ssh -L 8096:127.0.0.1:8096 user@IP-VPS, lalu buka http://127.0.0.1:8096 di laptop Anda), atau langsung lewat reverse proxy setelah bagian HTTPS selesai. Pada kunjungan pertama, Jellyfin meminta Anda membuat akun admin dan memilih bahasa metadata. Akun inilah pemilik server — pakai password yang kuat dan simpan di password manager.
Menambah library: kerapian folder menentukan hasil
Jellyfin sangat bergantung pada struktur folder. Aturan praktisnya:
- Film: satu folder per film, misalnya
/media/library/movies/Nama Film (2023)/Nama Film (2023).mkv. - Serial: folder serial, lalu folder musim, misalnya
/media/library/shows/Nama Serial/Season 01/Nama Serial S01E01.mkv. - Musik: folder artis, lalu folder album.
Setelah folder dibuat, tambahkan library dari dashboard: Dashboard → Libraries → Add Media Library, pilih tipe konten (Movies, Shows, atau Music), lalu arahkan ke folder yang sesuai di /media. Jellyfin akan memindai dan mengambil poster serta sinopsis otomatis. Kalau ada judul yang salah dikenali, perbaiki dengan fitur Identify pada item tersebut — biasanya penyebabnya nama file yang tidak mengikuti pola di atas.
Untuk keluarga, buat akun pengguna terpisah per orang dari Dashboard → Users. Anda bisa membatasi library yang bisa diakses tiap akun, misalnya akun anak hanya melihat folder film keluarga.
Transcoding: kapan perlu, kapan tidak
Jellyfin memutar video dengan dua cara. Direct play: file dikirim apa adanya karena perangkat Anda mendukung formatnya — ini ringan dan hampir tidak membebani CPU. Transcoding: server mengubah video secara real-time karena perangkat tidak mendukung format atau Anda meminta kualitas lebih rendah — ini berat.
Tiga kebiasaan yang menghemat banyak masalah:
- Kalau sebagian besar penonton memakai TV atau laptop modern dan file Anda berformat umum (H.264), direct play akan menangani hampir semuanya.
- Kalau Anda sering menonton dari HP dengan koneksi seluler, atur batas bitrate di aplikasi klien supaya Jellyfin melakukan transcode ke kualitas yang lebih ringan — jangan biarkan ia mengirim file 4K mentah lewat koneksi seluler.
- Akselerasi hardware (misalnya Intel Quick Sync lewat
/dev/dri) bisa ditambahkan belakangan kalau CPU Anda kewalahan. Untuk instalasi pertama, lewati dulu; ukur bebannya dari pemakaian nyata, bukan dari asumsi.
Amankan akses dari luar dengan HTTPS
Bagian ini tidak boleh dilewatkan. Jangan membuka port 8096 langsung ke internet. Jalur yang benar: pasang reverse proxy (Nginx atau Caddy) di depan Jellyfin, arahkan subdomain ke VPS, dan aktifkan HTTPS dengan Let's Encrypt. Karena port Jellyfin sudah diikat ke 127.0.0.1, reverse proxy di server yang sama tetap bisa meneruskan trafik ke sana, sementara internet tidak bisa mengaksesnya langsung.
Alternatif yang sama amannya: Cloudflare Tunnel, yang tidak mengharuskan Anda membuka port apa pun di firewall. Yang penting, akun Jellyfin Anda tidak pernah lewat HTTP polos dari internet — username dan password bisa disadap di tengah jalan.
Satu peringatan tambahan: Jellyfin tidak punya otentikasi dua faktor bawaan yang kuat untuk semua klien. Jadi jangan membagikan akun admin ke siapa pun dan buat akun terpisah untuk tiap penonton. Jellyfin tidak membuka pendaftaran publik — hanya admin yang bisa menambah pengguna dari dashboard.
Jellyfin vs Plex vs langganan streaming
| Aspek | Jellyfin | Plex | Layanan streaming |
|---|---|---|---|
| Biaya perangkat lunak | Gratis, open source | Gratis lokal; remote streaming butuh Plex Pass/Remote Watch Pass sejak April 2025 | Langganan bulanan per layanan |
| Koleksi yang diputar | Milik Anda sendiri | Milik Anda sendiri | Katalog penyedia, bisa berubah |
| Privasi tontonan | Data di server Anda | Akun Plex terpusat | Dilacak penyedia |
| Klien TV/HP | Tersedia (aplikasi resmi dan pihak ketiga) | Tersedia, matang | Tersedia |
| Yang mengurus server | Anda | Anda | Penyedia |
Jellyfin menang di biaya dan privasi, Plex menang di kematangan aplikasi klien, layanan streaming menang di katalog — tapi kalah di kendali. Pilih berdasarkan yang paling Anda butuhkan, bukan berdasarkan yang paling populer.
Backup: yang perlu dicadangkan
File media Anda sendiri adalah tanggung jawab Anda — Jellyfin tidak mem-backup-nya. Yang wajib dicadangkan dari sisi Jellyfin:
- Volume
jellyfin-config— database, akun, dan metadata. Kehilangan ini berarti setup ulang library dari nol. - Daftar struktur folder media — cukup dengan memastikan folder
/media/librarysendiri ikut tercadangkan ke tempat lain.
Untuk volume config, salin secara berkala saat container berhenti, atau gunakan fitur backup terjadwal dari plugin yang tersedia. Uji restore sesekali di folder terpisah; backup yang belum pernah diuji restore-nya baru sebatas asumsi.
Cek sebelum selesai
- Docker dan Docker Compose terpasang,
docker compose versionjalan. - Jellyfin up lewat Compose,
docker compose psmenunjukkan container berjalan (running) dan/healthmenjawab. - Akun admin dibuat, akun terpisah untuk tiap penonton.
- Library film, serial, atau musik sudah terpindai dengan poster dan metadata yang benar.
- Akses dari luar hanya lewat HTTPS (reverse proxy atau Tunnel), port 8096 tidak terbuka langsung ke internet.
- Volume config masuk dalam jadwal backup.
Kalau semua checklist ini centang, Anda punya layanan streaming versi sendiri: koleksinya milik Anda, tagihannya berhenti di sewa server, dan tidak ada fitur remote yang tiba-tiba terkunci di balik paywall.
Koleksi film, serial, atau musik apa yang paling ingin Anda rapikan dulu?
Baca juga: Immich: Google Photos Pribadi di VPS, Satu VPS Banyak Layanan dengan Nginx Reverse Proxy, Cloudflare Tunnel: Ekspos Layanan Tanpa Buka Port.


Komentar
Posting Komentar