Jellyfin
Membangun konten multimedia pribadi dengan penyajian streaming yang aman serta memberikan kontrol penuh atas akses.
Pendahuluan
Jellyfin adalah perangkat lunak media server open source yang memungkinkan pengguna untuk mengatur, mengelola, dan melakukan streaming konten multimedia pribadi. Dibangun di atas .NET Core, Jellyfin menawarkan solusi mandiri untuk penyajian konten media dengan kontrol penuh atas data dan akses, menjadikannya alternatif populer untuk layanan komersial seperti Plex dan Emby.
Keunggulan
- Tidak ada biaya lisensi atau fitur premium
- Semua data tersimpan secara lokal tanpa cloud eksternal
- Mendukung transcoding real-time dan streaming berbagai format media
- Sistem autentikasi pengguna yang dapat dikustomisasi
Prasyarat Sistem
Sebelum melakukan instalasi, pastikan sistem memenuhi persyaratan berikut:
- Sistem Operasi: Linux (direkomendasikan), Windows, atau macOS
- Docker Engine: Versi 20.10.0 atau lebih baru
- Docker Compose: Versi 2.0.0 atau lebih baru
- Ruang Penyimpanan: Cukup untuk menyimpan konten media dan metadata
- Memori: Minimal 2 GB RAM (4 GB atau lebih direkomendasikan untuk transcoding)
- CPU: Processor 64-bit modern (dengan dukungan hardware transcoding jika diperlukan)
Persiapan Instalasi
1. Instalasi Docker dan Docker Compose
Pastikan Docker dan Docker Compose telah terinstal pada sistem (Lihat: Panduan Instalasi Docker).
2. Membuat Struktur Direktori
Buat struktur direktori untuk konfigurasi dan media Jellyfin:
1
mkdir -p ~/jellyfin/{config,cache,media,media2}
Direktori yang dibuat:
config
: Menyimpan file konfigurasi dan metadata Jellyfincache
: Menyimpan data cache untuk performa yang lebih baikmedia
: Direktori utama untuk konten multimedia
Konfigurasi Docker Compose
Buat file docker-compose.yml
dengan konfigurasi berikut:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
services:
jellyfin:
image: jellyfin/jellyfin
container_name: jellyfin
user: uid:gid # ganti dengan menjalankan perintah 'id' di terminal
ports:
- "8096:8096" # HTTP port
- "8920:8920" # HTTPS port (opsional)
volumes:
- ~/jellyfin/config:/config
- ~/jellyfin/cache:/cache
- type: bind
source: ~/jellyfin/media
target: /media
- type: bind
source: ~/jellyfin/media2
target: /media2
read_only: true
# Opsional - font tambahan yang akan digunakan saat menyalin codec dengan pembakaran subtitle
- type: bind
source: /usr/share/fonts
target: /usr/local/share/fonts/custom
read_only: true
restart: 'unless-stopped'
# Opsional - alamat alternatif yang digunakan untuk penemuan otomatis
environment:
- JELLYFIN_PublishedServerUrl=http://localhost:8096
# Oopsional - mungkin diperlukan agar pemeriksaan kesehatan Docker lulus jika dijalankan dalam mode jaringan host
extra_hosts:
- 'host.docker.internal:host-gateway'
Penjelasan Konfigurasi
user
: Menentukan user ID dan group ID yang menjalankan container (ganti dengan UID/GID pengguna sistem)ports
: Mengekspos port untuk akses web Jellyfinvolumes
: Memetakan direktori host ke dalam containerrestart
: Kebijakan restart otomatis untuk ketersediaan terus-menerusenvironment
: Variabel lingkungan untuk konfigurasi tambahan
Menjalankan Jellyfin
1. Menjalankan Container
Jalankan container Jellyfin dengan perintah:
1
docker compose up -d
Opsi
-d
menjalankan container dalam mode latar belakang (detached).
2. Memverifikasi Instalasi
Periksa status container dengan perintah:
1
docker ps
Container jellyfin
harus muncul dalam daftar dengan status “Up”. Contohnya:
1
2
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
32fe73ead6bb jellyfin/jellyfin "/jellyfin/jellyfin" About an hour ago Up About an hour (healthy) 0.0.0.0:8096->8096/tcp, :::8096->8096/tcp, 0.0.0.0:8920->8920/tcp, :::8920->8920/tcp jellyfin
Akses Jellyfin melalui browser web di:
- HTTP:
http://alamat-ip-server:8096
- HTTPS:
https://alamat-ip-server:8920
(jika dikonfigurasi)
Optimasi dan Konfigurasi Lanjutan
Backup Konfigurasi
Lakukan backup rutin pada direktori ~/jellyfin/config
untuk mencegah kehilangan data:
1
tar -czf jellyfin-backup-$(date +%Y%m%d).tar.gz ~/jellyfin/config
Pemecahan Masalah Umum
1. Permission Issues
Jika mengalami masalah permission, pastikan:
- User yang menjalankan container memiliki izin untuk mengakses direktori media
- Gunakan perintah
chmod
danchown
untuk mengatur permission yang tepat
2. Port Already in Use
Jika port 8096 sudah digunakan, ubah port mapping dalam docker-compose.yml
:
1
2
ports:
- "8080:8096" # Menggunakan port 8080 pada host
3. Transcoding Performance
Untuk meningkatkan performa transcoding:
- Aktifkan hardware acceleration jika tersedia
- Alokasikan cache yang cukup dalam konfigurasi Jellyfin
- Pastikan sistem memiliki sumber daya CPU dan RAM yang memadai