Post

Jellyfin

Membangun konten multimedia pribadi dengan penyajian streaming yang aman serta memberikan kontrol penuh atas akses.

Jellyfin

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 Jellyfin
  • cache: Menyimpan data cache untuk performa yang lebih baik
  • media: 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 Jellyfin
  • volumes: Memetakan direktori host ke dalam container
  • restart: Kebijakan restart otomatis untuk ketersediaan terus-menerus
  • environment: 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 dan chown 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

Pranala Luar

Pranala Menarik

This post is licensed under CC BY 4.0 by the author.