Jellyfin di VPS: cara membuat server media sendiri
Folder yang penuh dengan video jarang terasa seperti perpustakaan media yang nyaman: nama file tidak konsisten, file subtitle terpisah, dan Anda harus mencari episode yang tepat secara manual. Jellyfin mengubah arsip seperti ini menjadi layanan streaming pribadi dengan poster, deskripsi, profil pengguna, dan progres pemutaran.
Pada saat yang sama, Jellyfin tidak menjual langganan atau menyediakan katalog konten siap pakai. Jellyfin bekerja dengan file milik Anda dan dapat berjalan di komputer rumah, NAS, atau VPS. Di bawah ini, kita akan membahas fitur, persyaratan server, dan pemasangannya di Ubuntu dengan nama domain serta HTTPS.
Apa itu Jellyfin dan mengapa Anda mungkin membutuhkannya
Jellyfin adalah server media gratis dan sumber terbuka. Server mengindeks film, acara TV, musik, foto, dan konten lainnya, sementara aplikasi klien memutarnya di ponsel, komputer, atau televisi.
Setelah memindai folder, Jellyfin mengunduh poster dan deskripsi, mengatur acara berdasarkan musim, mengingat progres pemutaran, dan menampilkan bagian “Continue Watching”. Anda dapat membuat profil lokal terpisah untuk anggota keluarga, membatasi akses ke perpustakaan, dan mengonfigurasi kontrol orang tua. Quick Connect memungkinkan pengguna masuk di televisi dengan kode singkat, tanpa memasukkan kata sandi panjang.
Klien tersedia untuk Android, iOS, Android TV, Roku, webOS, Tizen, Xbox, dan komputer desktop. Jellyfin juga menyediakan antarmuka web dan integrasi Kodi.
Jellyfin juga mendukung musik, IPTV, TV tuner, dan perekaman TV langsung. SyncPlay menyinkronkan pemutaran untuk banyak pengguna, sedangkan plugin menambahkan subtitle, sumber metadata baru, dan integrasi.
Jellyfin tidak mencari atau mengunduh film sendiri. Jellyfin hanya mengatur dan menayangkan konten yang sudah dimiliki pemilik server.
Jellyfin vs. Plex: perbedaan utama
Kedua solusi ini mengubah koleksi lokal menjadi layanan media, tetapi menggunakan model yang berbeda.
| Parameter | Jellyfin | Plex |
|---|---|---|
| Source code | Open source | Proprietary |
| Premium features | Server dan klien resmi tidak memiliki tingkat berbayar | Beberapa fitur bergantung pada paket langganan |
| Central account | Tidak diperlukan | Menggunakan ekosistem penyedia |
| Remote access | Pemilik mengonfigurasi domain, reverse proxy, atau VPN | Menawarkan lebih banyak mekanisme siap pakai |
| Control over data | Maksimal | Sebagian infrastruktur dikendalikan penyedia |
Orang memilih Jellyfin karena kemandirian, privasi, dan tidak adanya langganan. Plex mungkin lebih nyaman jika prioritas utama adalah penyiapan sesederhana mungkin dan aplikasi yang konsisten serta rapi di semua perangkat.
Direct Play atau transcoding: apa yang membebani server
Performa Jellyfin lebih sedikit bergantung pada ukuran perpustakaan daripada metode pemutaran.
| Mode | Yang terjadi | Beban |
|---|---|---|
| Direct Play | Server mengirim file asli | Rendah |
| Direct Stream | Container atau satu track diubah | Rendah atau sedang |
| Transcoding | Codec, resolusi, atau bitrate diubah secara langsung | Tinggi |
Jika televisi mendukung codec, audio, dan subtitle file, server hampir tidak menggunakan CPU. Masalah dimulai ketika klien tidak dapat menangani format tersebut, koneksi memerlukan bitrate lebih rendah, atau subtitle harus dibakar ke dalam gambar. Jellyfin kemudian menjalankan FFmpeg dan melakukan transcoding video secara real time.
4K, HEVC, HDR, dan konversi HDR-ke-SDR sangat menuntut sumber daya. VPS biasa tanpa prosesor grafis mungkin kesulitan meskipun memiliki banyak core CPU virtual. Karena itu, format yang kompatibel dan Direct Play dapat menghemat lebih banyak biaya daripada berpindah ke paket server berikutnya.
Server seperti apa yang dibutuhkan Jellyfin
Rekomendasi resmi untuk instalasi biasa adalah sekitar 8 GB RAM. Di Linux tanpa antarmuka grafis, server kecil dapat berjalan dengan 4 GB. Drive cepat dibutuhkan untuk sistem operasi, database, gambar, cache, dan file sementara; perpustakaan media disimpan secara terpisah dan biasanya menghabiskan sebagian besar ruang.
| Skenario | Konfigurasi awal | Komentar |
|---|---|---|
| Musik dan satu stream Direct Play 1080p | 2 vCPU, RAM 4 GB | Kecepatan jaringan dan disk lebih penting |
| Perpustakaan media keluarga kecil | 4 vCPU, RAM 8 GB | Format yang kompatibel lebih disarankan |
| Transcoding 1080p sesekali | 4–8 vCPU berperforma tinggi atau GPU | Beban bergantung pada codec |
| Beberapa stream 4K/HDR | Intel iGPU modern atau kartu grafis | VPS biasa yang hanya memakai CPU tidak cocok |
Jangan lupa memperhitungkan trafik: stream 20 Mbps mentransfer sekitar 9 GB data per jam. Dengan tontonan setiap hari, pemakaian dapat segera mencapai ratusan gigabyte per bulan.
Server rumah atau VPS
Mini PC atau NAS di rumah lebih hemat biaya untuk koleksi beberapa terabyte dan transcoding perangkat keras secara rutin. Anda dapat memasang drive berkapasitas besar dan memilih prosesor dengan Intel Quick Sync, tetapi akses jarak jauh bergantung pada listrik, koneksi internet rumah, dan ketersediaan alamat IP publik.
VPS memiliki alamat publik, koneksi stabil, dan beroperasi sepanjang waktu. VPS nyaman untuk musik, perpustakaan video kecil, Direct Play, dan pengguna di lokasi berbeda. Keterbatasannya adalah biaya penyimpanan dan tidak adanya GPU pada paket standar.
Ada juga opsi hibrida: file tetap berada di rumah, sedangkan VPS berfungsi sebagai titik masuk yang aman. Penyiapan ini membantu ketika tidak tersedia alamat IPv4 publik, tetapi kecepatan pemutaran tetap dibatasi bandwidth unggah koneksi rumah.
Memasang Jellyfin di Ubuntu dengan Docker Compose
Dalam penyiapan di bawah, Jellyfin dan Caddy berjalan di jaringan Docker yang sama. Port 8096 tidak diekspos ke internet; Caddy menerima koneksi HTTPS dan memperoleh sertifikat secara otomatis.
Pertama, arahkan catatan A domain, misalnya media.example.com, ke alamat IP server.
1. Pasang Docker dan buat direktori
sudo apt update
sudo apt install -y docker.io docker-compose-v2
sudo systemctl enable --now docker
sudo mkdir -p /opt/jellyfin/{config,cache,caddy-data,caddy-config}
sudo mkdir -p /srv/media/{movies,series,music}
cd /opt/jellyfin2. Buat /opt/jellyfin/compose.yaml
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
restart: unless-stopped
volumes:
- ./config:/config
- ./cache:/cache
- /srv/media:/media:ro
networks: [media]
caddy:
image: caddy:2
container_name: jellyfin-caddy
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- ./caddy-data:/data
- ./caddy-config:/config
networks: [media]
networks:
media:Opsi :ro memasang perpustakaan media sebagai read-only dan melindungi file asli dari penghapusan tidak sengaja melalui Jellyfin.
3. Buat /opt/jellyfin/Caddyfile
media.example.com {
reverse_proxy jellyfin:8096
}Ganti domain dengan domain Anda, jalankan container, dan buka port yang diperlukan:
sudo docker compose up -d
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 443/udp
sudo ufw enableJika SSH menggunakan port yang berbeda, izinkan port tersebut dengan aturan terpisah sebelum menjalankan ufw enable.
Setelah sertifikat diterbitkan, buka https://media.example.com. Dalam pengaturan jaringan Jellyfin, tambahkan reverse proxy ke daftar proxy tepercaya agar pembatasan akses eksternal bekerja dengan benar.
Penyiapan awal perpustakaan media
Di wizard penyiapan, pilih bahasa, buat administrator, dan tambahkan perpustakaan:
- movies —
/media/movies; - TV shows —
/media/series; - music —
/media/music.
Gunakan nama yang jelas agar identifikasi akurat:
/media/movies/Movie Title (2024)/Movie Title (2024).mkv
/media/series/Series Title (2024)/Season 01/Series Title S01E01.mkvBuat profil standar terpisah untuk menonton, lalu sembunyikan akun administrator dari layar login. Berikan pengguna akses hanya ke perpustakaan yang dibutuhkan dan jangan izinkan penghapusan file kecuali memang diperlukan.
Pembaruan dan cadangan
Konfigurasi Jellyfin berisi pengguna, pengaturan, database, dan progres pemutaran. Sebelum pembaruan, hentikan container dan simpan direktori config:
cd /opt/jellyfin
sudo docker compose stop jellyfin
sudo tar -czf /root/jellyfin-config-$(date +%F).tar.gz config
sudo docker compose start jellyfinPindahkan arsip ke luar VPS. Cadangkan file media secara terpisah.
Untuk memperbarui, jalankan:
sudo docker compose pull
sudo docker compose up -dJangan membuka port 8096 secara langsung. Gunakan HTTPS atau VPN, pasang pembaruan secara rutin, dan pantau ruang disk yang tersedia.
Jellyfin di VPS dari tropic.host
Untuk perpustakaan media kecil yang terutama menggunakan Direct Play, Anda dapat memulai dengan Linux VPS ber-RAM 4 GB. Untuk beberapa pengguna, database besar, dan layanan tambahan, 8 GB merupakan pilihan yang lebih masuk akal.
Saat memilih VPS dari tropic.host, evaluasi kapasitas penyimpanan, trafik bulanan, dan kebutuhan transcoding secara terpisah. Server virtual nyaman sebagai endpoint yang selalu tersedia dengan alamat IP publik dan HTTPS, tetapi tidak menggantikan server GPU. Jika membutuhkan beberapa stream 4K/HDR dengan konversi format, server rumah dengan Intel iGPU, server khusus, atau paket khusus dengan kartu grafis merupakan pilihan yang lebih baik.
Anda dapat memulai dengan koleksi kecil, memeriksa persentase sesi Direct Play di dasbor Jellyfin, lalu meningkatkan CPU, RAM, atau penyimpanan berdasarkan beban sebenarnya.
Ringkasan
Jellyfin mengubah koleksi Anda sendiri menjadi layanan streaming pribadi tanpa langganan wajib atau akun pusat. Agar penerapan berhasil, penting untuk memperkirakan penyimpanan, trafik, dan kemungkinan transcoding sejak awal.
Server kecil yang menggunakan Direct Play sering kali dapat berjalan dengan RAM 4–8 GB. Pemutaran 4K/HDR secara rutin memerlukan pemrosesan video perangkat keras. Apa pun konfigurasinya, lindungi akses eksternal dengan HTTPS atau VPN, dan cadangkan pengaturan serta perpustakaan media secara terpisah.
FAQ
Apakah Jellyfin sepenuhnya gratis?
Ya. Server dan klien tersedia tanpa paket premium. Anda hanya perlu membayar perangkat keras, VPS, drive, nama domain, dan trafik.
Apakah Jellyfin menyediakan film dan acara TV yang siap ditonton?
Tidak. Pengguna menambahkan file media milik mereka sendiri.
Bisakah Jellyfin berjalan di VPS tanpa kartu grafis?
Ya, selama sebagian besar file diputar melalui Direct Play. Transcoding 4K dan HDR yang sering dilakukan memerlukan server dengan iGPU atau kartu grafis yang sesuai.
Berapa banyak RAM yang dibutuhkan Jellyfin?
Server Linux kecil dapat berjalan dengan RAM 4 GB. Untuk perpustakaan media keluarga dan beberapa pengguna, 8 GB merupakan target yang lebih baik.
Bagaimana cara mengakses Jellyfin dengan aman melalui internet?
Gunakan domain dan HTTPS melalui reverse proxy, atau gunakan VPN. Jangan membuka port 8096 secara langsung, dan buat akun pengguna terpisah dengan izin minimum.
