Hallo teman-teman semua! Bagaimana nih kabarnya? Semoga kita semua selalu diberikan kesehatan dan kelancaran dalam menjalankan aktivitas sehari-hari. Baiklah, pada artikel kali ini kita akan membahas materi baru yang berkaitan dengan jaringan komputer, yaitu jaringan multimedia, khususnya konfigurasi IPTV dan layanan video streaming menggunakan Jellyfin Server. Dalam perkembangan teknologi jaringan komputer, layanan multimedia menjadi salah satu teknologi yang banyak digunakan untuk mendistribusikan berbagai konten digital melalui jaringan. Salah satu contohnya adalah video streaming dan IPTV (Internet Protocol Television). Video streaming memungkinkan pengguna menikmati konten video tanpa harus mengunduh seluruh file terlebih dahulu, sedangkan IPTV merupakan teknologi yang digunakan untuk mendistribusikan siaran televisi melalui jaringan berbasis IP.

Untuk membangun layanan multimedia tersebut, kita dapat memanfaatkan salah satu aplikasi media server open source, yaitu Jellyfin. Jellyfin merupakan perangkat lunak media server yang berfungsi untuk mengelola dan menyediakan koleksi media digital seperti film, video, musik, serta siaran televisi melalui jaringan. Dengan menggunakan Jellyfin, pengguna dapat mengakses koleksi media yang tersimpan pada server melalui berbagai perangkat, seperti komputer, laptop, smartphone, maupun perangkat Smart TV yang mendukung aplikasi Jellyfin. Selain digunakan untuk mengelola koleksi video pribadi, Jellyfin juga menyediakan fitur Live TV yang memungkinkan pengguna mengakses siaran televisi melalui sumber IPTV yang kompatibel. Untuk mengaktifkan fitur tersebut, kita dapat menggunakan sumber siaran berbasis playlist M3U dan data panduan program televisi atau XMLTV. Dengan demikian, Jellyfin dapat dimanfaatkan sebagai media server yang menggabungkan pengelolaan koleksi video dan layanan IPTV dalam satu sistem. Jellyfin merupakan aplikasi open source yang dapat digunakan tanpa biaya lisensi perangkat lunak. Aplikasi ini juga mendukung berbagai platform client sehingga pengguna dapat mengakses layanan media server melalui perangkat yang berbeda selama jaringan dan konfigurasi akses telah disiapkan dengan benar. Informasi lebih lengkap mengenai aplikasi ini dapat dipelajari melalui website resminya, yaitu https://jellyfin.org/.

Peralatan dan Bahan Instalasi Jellyfin Server

Sebelum memulai proses instalasi dan konfigurasi Jellyfin Server, ada beberapa peralatan dan bahan yang perlu kita persiapkan terlebih dahulu, yaitu:

  1. VirtualBox atau aplikasi Virtual Machine lainnya, jika kita ingin menjalankan server menggunakan mesin virtual. VirtualBox dapat diunduh melalui situs resminya: https://www.virtualbox.org/wiki/Downloads/.
  2. ISO Ubuntu Server, yang digunakan sebagai sistem operasi untuk menjalankan Jellyfin Server. File instalasi dapat diunduh melalui https://ubuntu.com/download/server.
  3. Komputer atau laptop, yang digunakan untuk menjalankan VirtualBox dan Ubuntu Server.
  4. Aplikasi Jellyfin Server, yang dapat diunduh melalui website resmi https://jellyfin.org/downloads/server/.
  5. WinSCP atau aplikasi transfer file lainnya, jika diperlukan untuk memindahkan file media dari komputer ke server. WinSCP dapat diunduh melalui https://winscp.net/eng/index.php.
  6. Beberapa file video atau film, seperti format MP4, MKV, atau format video lainnya yang didukung Jellyfin untuk keperluan pengujian layanan streaming.
  7. Playlist IPTV berformat M3U, yang berasal dari penyedia layanan IPTV atau sumber siaran yang memiliki izin untuk digunakan.
  8. File panduan program televisi XMLTV, jika tersedia dan ingin menampilkan informasi jadwal acara pada fitur Live TV.
  9. Koneksi jaringan, yang digunakan untuk menghubungkan server dengan perangkat client agar layanan video streaming dan IPTV dapat diakses.

Pastikan seluruh peralatan dan bahan yang diperlukan sudah tersedia. Selain itu, Ubuntu Server harus sudah terinstal dan dapat dijalankan dengan baik. Kita juga perlu memastikan server memiliki alamat IP yang dapat dijangkau oleh perangkat client melalui jaringan.

Langkah-Langkah Instalasi dan Konfigurasi Jellyfin Server

Pada tutorial kali ini, kita akan membahas langkah-langkah instalasi dan konfigurasi Jellyfin Server untuk menjalankan layanan IPTV dan video streaming. Sebelum memulai proses konfigurasi, pastikan Ubuntu Server telah siap digunakan dan seluruh peralatan yang diperlukan sudah dipersiapkan. Tahapan pertama adalah melakukan instalasi Jellyfin Server pada Ubuntu. Setelah proses instalasi selesai, kita akan melakukan konfigurasi awal melalui antarmuka web Jellyfin, mulai dari membuat akun administrator, menentukan direktori penyimpanan media, hingga menambahkan koleksi video yang akan digunakan sebagai konten streaming. Selanjutnya, kita akan melakukan konfigurasi IPTV melalui fitur Live TV dengan menambahkan sumber siaran menggunakan playlist M3U.

Gambar artikel

  • Langkah 2: Simpanlah pengaturan dari DNS dan lakukan proses restart agar seluruh pengaturan aktif pada server kita

Gambar artikel

  • Langkah 3: Ceklah Host domain yang baru saja kita daftarkan sebelumnya dan tambahkan IP dari DNS kita untuk memastikan bahwa server sudah dapat diakses melalui IP DNS kita. Pada kasus ini, IP DNS yang digunakan yaitu 192.168.100.100

Gambar artikel

  • Langkah 4: Ceklah juga DNS dari google untuk memastikan bahwa IP DNS kita sudah dapat melakukan forwarder ke Internet. Jika tahapan ini sudah dilakukan maka tahapan konfigurasi DNS sudah selesai dilakukan

Gambar artikel

  • Langkah 5: Lalukan Remote ke dalam server IPTV yang sudah kita import sebelumnya, kemudian loginlah ke dalam server dari linux ini. Lalu pastikan kita sudah masuk ke dalam pengaturan dari root dengan menjalankan sudo su

Gambar artikel

  • Langkah 6: Ubahlah nama dari server kita menjadi “IPTV-Server“

Gambar artikel

  • Langkah 7: Cek kembali IP dari server Jellyfin kita, lalu pastikan server kita sudah mendapatkan IP Address dari jaringan kita dari internafe Bridge Adapter yang kita atur pada Virtualbox. Jika kita melakukan import melalui file Ova yang sama maka kita dapat mengubah pengaturan dari file nano /etc/machine-id dan editlah 2 sampai 3 digit terakhir dengan nomor unik (Hexadecimal). Lalu lakukan perintah reboot pada server kita

Gambar artikel

  • Langkah 8: Lakukan pengujian internet pada server Jellyfin kita dengan cara mengakses DNS google pada terminal server Jellyfin kita

Gambar artikel

  • Langkah 9: Lakukan update repository dari server Jellyfin kita dengan menggunakan perintah apt update

Gambar artikel

  • Langkah 10: Installah beberapa paket yang digunakan untuk proses persiapan awal dari tahapan instalasi server Jellyfin kita

Gambar artikel

sudo apt install curl wget gnupg ca-certificates \
apt-transport-https software-properties-common -y
  • Langkah 11: Ceklah hostname yang sudah kita ubah pada server Jellyfin kita terlebih dahulu

Gambar artikel

  • Langkah 12: Downloadlah repository resmi dari Jellyfin terlebih dahulu karena paket dari Jellyfin secara default belum terdaftar pada server ubuntu kita. Repositori ini didapatkan dari situs resmi dari jellyfin.org

Gambar artikel

# 1. Dokumentasi Instalasi
https://jellyfin.org/docs/general/installation/linux/?utm_source=chatgpt.com#debian--ubuntu-and-derivatives

# 2. Membuat Folder Repositori
sudo mkdir -p /etc/apt/keyrings

# 3. Download Repo dan masukkan ke dalam folder yang dibuat
curl -fsSL https://repo.jellyfin.org/jellyfin_team.gpg.key \
| sudo gpg --dearmor \
-o /etc/apt/keyrings/jellyfin.gpg

# 4. Memberikan hak akses dari file repo yang di download
sudo chmod 644 /etc/apt/keyrings/jellyfin.gpg
  • Langkah 13: Tambahkan repo dari jellyfin yang kita download tadi pada source ubuntu kita terlebih dahulu

Gambar artikel

sudo tee /etc/apt/sources.list.d/jellyfin.sources <<EOF
Types: deb
URIs: https://repo.jellyfin.org/ubuntu
Suites: noble
Components: main
Architectures: amd64
Signed-By: /etc/apt/keyrings/jellyfin.gpg
EOF
  • Langkah 14: Lalukan proses update pada server jellyfin kita terlebih dahulu untuk melakukan update repo yang sudah kita tambahkan sebelumnya

Gambar artikel

  • Langkah 15: Installah paket jellyfin kita setelah repositori berhasil ditambahkan

Gambar artikel

  • Langkah 16: Aktifkan service jellyfin kita terlebih dahulu dan pastikan bahwa service tersebut sudah ready

Gambar artikel

  • Langkah 17: Bukalah pengaturan dari Windows kita yang akan digunakan sebagai client, lalu tambahkan IP DNS pada menu DNS Server di windows kita. Tujuan kita melakukan ini agar Client windows dapat mengakses IP yang didaftarkan pada DNS dengan menggunakan nama host atau domain yang sudah didaftarkan sebelumnya

Gambar artikel

  • Langkah 18: Lakukan pengecekan pada client windows kita dengan cara mengakses perintah ping melalui CMD dari windows. Pada kasus ini kita melakukan ping host domain kita yaitu ping iptv.jarmud.com

Gambar artikel

Gambar artikel

# Akses Host domain via Browser
http://iptv.jarmud.com:8096/
  • Langkah 20: Daftarkan nama user pertama dari jellyfin kita terlebih dahulu. Pastikan untuk username/password dari server ini harus selalu diingat karena seluruh konfigurasi Jellyfin akan disetting dengan menggunakan akun ini. Pada kasus ini username dari akun yang didaftarkan berupa jellyfin

Gambar artikel

  • Langkah 21: Pada tahapan ini kita diminta untuk mendaftarkan library atau playlist yang akan digunakan. Karena pada tahapan ini kita belum mempersiapkan lokasi untuk peletakan file video yang digunakan maka tahapan ini kita skipkan saja

Gambar artikel

  • Langkah 22: Aturlah bahasa yang digunakan untuk server ini. pada kasus ini kita memilih bahasa berupa “English“

Gambar artikel

  • Langkah 23: Pastikan pada bagian remote access ini dicentang agar kita dapat melakukan remote ke dalam server jellyfin ini

Gambar artikel

  • Langkah 24: Pada tahapan terakhir akan muncul tampilan konfirmasi seperti ini, lalu kita klik tombol finish untuk menuntaskan tahapan instalasi jellyfin

Gambar artikel

  • Langkah 25: Setelah berhasil maka kita akan diarahkan ke tampilan login dari server jellyfin ini

Gambar artikel

  • Langkah 26: Kita coba lakukan proses login ke dalam server jellyfin ini, pastikan username / password yang daftarkan dapat digunakan pada tahapan login

Gambar artikel

  • Langkah 27: Buka kembali terminal dari server Jellyfin kita dan installah paket web server kita terlebih dahulu

Gambar artikel

  • Langkah 28: Pastikan server web yang sudah kita install ini sudah kita enable terlebih dahulu dan pastikan seluruh status dari server ini sudah aktif

Gambar artikel

  • Langkah 29: Bukalah browser kita terlebih dahulu, lalu akseslah nama host domain kita pada browser tanpa perlu menambahkan port jellyfin yaitu 8096 di bagian belakang host domain

Gambar artikel

# Akses Halaman Web Server Apache
http://iptv.jarmud.com/
  • Langkah 30: Aktifkan pengaturan dari konfigurasi Web server kita terlebih dahulu seperti paket proxy, proxy_http, proxy_wstunnel, rewrite dan headers untuk melakukan pengalihan untuk server jellyfin kita

Gambar artikel

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_wstunnel
sudo a2enmod rewrite
sudo a2enmod headers
  • Langkah 31: Bukalah pengaturan dari Virtualhost dari webserver kita. Tambahkan sebuah file baru untuk mengatur konfigurasi virtualhost dengan perintah nano /etc/apache2/sites-available/jellyfin.conf. Tambahkan sintak dibawah ini untuk proses pengalihan layanan dari jellyfin kita

Gambar artikel

<VirtualHost *:80>

    ServerName iptv.jarmud.com

    ServerAdmin webmaster@localhost

    ProxyRequests Off
    ProxyPreserveHost On

    # Informasi koneksi asli dari client
    RequestHeader set X-Forwarded-Proto "http"
    RequestHeader set X-Forwarded-Port "80"

    # Mengaktifkan Rewrite Engine
    RewriteEngine On

    # Meneruskan koneksi WebSocket
    RewriteCond %{HTTP:Upgrade} =websocket [NC]
    RewriteRule /(.*) ws://127.0.0.1:8096/socket/$1 [P,L]

    # Meneruskan koneksi HTTP biasa
    RewriteCond %{HTTP:Upgrade} !=websocket [NC]
    RewriteRule /(.*) http://127.0.0.1:8096/$1 [P,L]

    # Timeout koneksi
    ProxyTimeout 3600

    # Log Apache tanpa mencatat query string
    LogFormat "%h %l %u %t \"%m %U %H\" %>s %b" jellyfin_safe
    CustomLog ${APACHE_LOG_DIR}/jellyfin-access.log jellyfin_safe

    ErrorLog ${APACHE_LOG_DIR}/jellyfin-error.log

</VirtualHost>
  • Langkah 32: Aktifkan pengaturan dari virtualhost kita dengan perintah a2ensite dan matikan pengaturan default dari web server dengan perintah a2dissite

Gambar artikel

cd /etc/apache2/sites-available/

# Pengaturan untuk mengaktifkan pengaturan dari Virtualhost kita
sudo a2ensite jellyfin.conf
sudo a2dissite 000-default.conf
sudo apache2ctl configtest
  • Langkah 33: Lakukan perintah restart agar seluruh konfigurasi dari virtualhost kita sudah dapat berjalan pada server kita

Gambar artikel

  • Langkah 34: Aktifkan pengaturan dari firewall dari server jellyfin kita seperti hanya mengizinkan seperti Port SSH dan Web kita

Gambar artikel

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw enable
sudo ufw status
  • Langkah 35: Buka kembali halaman website kita, lalu refreshlah browser kita terlebih dahulu pastikan bahwa ketika kita mengakses halaman host domain untuk jellyfin, kita tidak perlu memasukkan port 8096 kita lagi

Gambar artikel

  • Langkah 36: Installah paket tree untuk melihat informasi dari struktur folder kita nantinya

Gambar artikel

  • Langkah 37: Daftarkan folder yang akan kita gunakan untuk penyimpanan video kita. pada kasus ini kita akan mendaftarkan 3 buah server yang diletakkan pada folder /srv/media/

Gambar artikel

sudo mkdir -p /srv/media/Film
sudo mkdir -p /srv/media/Edukasi
sudo mkdir -p /srv/media/Dokumenter
tree /srv/media/
  • Langkah 38: Tambahkan group yang akan kita gunakan untuk mengupload file video yang akan kita gunakan nantinya. Pada kasus ini group yang didaftarkan berupa media

Gambar artikel

sudo groupadd media
sudo usermod -aG media ivan
sudo chown -R ivan:media /srv/media

# Sintak ini digunakan untuk memberikan hak akses untuk folder /srv/media agar dapat melakukan perintah upload dan lainnya
sudo find /srv/media -type d -exec chmod 2775 {} \;
sudo find /srv/media -type f -exec chmod 664 {} \;
  • Langkah 39: Installah pake ACL untuk mengatur hak akses user agar dapat mengelola folder yang akan kita gunakan

Gambar artikel

  • Langkah 40: Tambahkan konfigurasi hak akses dengan perintah ACL untuk group media sehingga group tersebut dapat mengupload file di folder /srv/media

Gambar artikel

sudo setfacl -R -m g:media:rwX /srv/media
sudo setfacl -R -m d:g:media:rwX /srv/media
  • Langkah 41: Setelah seluruh instalasi dilakukan, restartlah paket dari jellyfin kita terlebih dahulu

Gambar artikel

  • Langkah 42: Tambahkan source video kita ke dalam server terlebih dahulu. Untuk menambahkan source ini kita dapat melakukan upload menggunakan aplikasi WinSCP. Lalukan proses seperti tahapan remote melalui aplikasi ini seperti untuk bagian host name masukkan IP dari Jellyfin kita yaitu 192.168.100.103 dan gunakan port number yaitu 22. Sedangkan untuk username dan password ini kita gunakan username dari linux kita

Gambar artikel

  • Langkah 43: Tambahkan musik kita ke dalam seluruh playlist kita, sehingga tampilan dari struktur tabel ketika kita gunakan perintah tree /srv/media/ akan seperti ini

Gambar artikel

  • Langkah 44: Loginlah kembali ke halaman jellyfin ini dan masuklah ke pengaturan dashboard kita terlebih dahulu pada website jellyfin kita

Gambar artikel

  • Langkah 45: Buatlah library baru sesuai dengan banyaknya folder source video yang kita daftarkan pada menu Library > Add Media Library. lalu tambahkan display name sesuai dengan nama playlist yang akan didaftarkan. Pada bagian Folders tambahkan lokasi dari library kita

Gambar artikel

  • Langkah 46: Untuk menambahkan lokasi Folders dari library kita dapat melakukan cara seperti ini. Pada kasus ini kita akan menambahkan direktori yang sudah kita daftarkan yaitu dokumenter. Sehingga pada path folder dapat dimasukkan seperti ini /srv/media/Dokumenter

Gambar artikel

  • Langkah 47: Tambahkan seluruh libary yang sudah kita buat sebelumnya pada server jellyfin kita. Pada kasus ini kita menggunakan 3 library yaitu Dokumenter, Edukasi dan Film

Gambar artikel

  • Langkah 48: Tambahkan user baru untuk mengatur pembagian dari hak akses library kita terlebih dahulu pada menu Users > Add User

Gambar artikel

  • Langkah 49: Aturlah pengaturan dari user kita termasuk library yang diatur, pengaturan display pada login dan lainnya seperti dibawah ini

Gambar artikel

  • Langkah 50: Aturlah agar akun yang baru kita tambahkan ini tidak muncul pada bagian halaman login dan agar user ini tidak dapat mengelola library dengan cara uncheck pada bagian Allow this user to manage the server

Gambar artikel

  • Langkah 51: Agar server ini memiliki layanan IPTV maka kita perlu mengakses halaman Live TV > Tunner Device > Add Tiner Device

Gambar artikel

  • Langkah 52: Pada menu Live TV Tuner Setup dan pilihlah Tuner Type menjadi M3U Tuner. Lalu masukkan data API dari IPTV pada form File or URL dengan link dari github IPTV

Gambar artikel

# Siaran Lengkap
https://iptv-org.github.io/iptv/index.m3u

# Siaran Indonesia
https://iptv-org.github.io/iptv/languages/ind.m3u

# Siaran Animasi
https://iptv-org.github.io/iptv/categories/animation.m3u

# Kumpulan Siaran
https://github.com/iptv-org/iptv/blob/master/PLAYLISTS.md

# Source Lainnya dari Internet
https://www.jendelatv.id/2022/08/download-file-m3u-iptv.html
  • Langkah 53: Simpanlah pengaturan dari Tuner Device dan tunggu hingga seluruh API di load pada server kita

Gambar artikel

  • Langkah 54: Setelah itu bukalah halaman utama dari Jellyfin kita maka kita akan dapat melihat beberapa playlist termasuk menu Live TV

Gambar artikel

  • Langkah 55: Pilihlah menu Live TV dan pilihkan dropdown Channels maka server kita sudah dapat mengakses seluruh siaran yang sudah ditambahkan

Gambar artikel

Dengan mengikuti tutorial ini, diharapkan teman-teman dapat memahami cara membangun media server menggunakan Jellyfin, mulai dari proses instalasi, pengelolaan koleksi video, hingga konfigurasi layanan IPTV. Materi ini juga dapat menjadi dasar untuk mempelajari pengembangan jaringan multimedia dan layanan streaming berbasis server secara lebih lanjut.

Leave a Reply

Your email address will not be published. Required fields are marked *