Implementasi Edge Gateway Berbasis Raspberry Pi 3 untuk Akses Jellyfin Server Menggunakan Nginx dan Cloudflare Tunnel
Adithia Maulana S, Carissa Rafa N, Hafid Ferdiansyah Muhammad Faiz A.
Teknik Elektro, Program Studi Jaringan Telekomunikasi Digital
Politeknik Negeri Malang
Latar Belakang
Perkembangan
teknologi jaringan membuat kebutuhan akses layanan server semakin meningkat.
Saat ini, banyak layanan tidak hanya digunakan dalam jaringan lokal, tetapi
juga perlu diakses dari luar jaringan. Salah satu contohnya adalah media
server. Media server memungkinkan pengguna menyimpan, mengatur, dan memutar
file multimedia dari berbagai perangkat.
Jellyfin merupakan
salah satu media server yang dapat digunakan untuk mengelola dan melakukan
streaming media dari server pribadi. Jellyfin dapat menyediakan media dari
server khusus menuju perangkat pengguna melalui aplikasi atau browser. Pada
proyek ini, Jellyfin diposisikan sebagai layanan utama yang menyediakan akses
media kepada pengguna.
Namun,
ketika server lokal ingin diakses dari internet, muncul masalah pada sisi
jaringan dan keamanan. Cara yang umum digunakan adalah port forwarding. Port
forwarding membuka jalur dari internet langsung menuju layanan di jaringan
lokal. Cara ini memang dapat membuat server bisa diakses dari
luar, tetapi juga dapat meningkatkan risiko keamanan. Server lokal menjadi
lebih mudah terlihat dari internet, terutama jika konfigurasi keamanan tidak
dilakukan dengan baik.
Untuk
mengurangi risiko tersebut, proyek ini menggunakan Cloudflare Tunnel.
Cloudflare Tunnel digunakan untuk membuat jalur akses dari jaringan lokal ke
Cloudflare tanpa membuka port publik secara langsung. Dengan model ini, akses
dari luar jaringan tetap dapat dilakukan, tetapi layanan lokal tidak perlu
diekspos secara langsung melalui router.
Pada proyek ini, Raspberry Pi 3 digunakan sebagai edge gateway. Raspberry Pi 3 berada di sisi jaringan lokal dan menjadi titik penghubung antara Cloudflare Tunnel, Nginx, dan Jellyfin server.
Perangkat ini tidak digunakan sebagai server utama Jellyfin. Raspberry Pi 3 juga tidak difokuskan untuk transcoding video berat, karena kemampuan komputasinya terbatas. Perannya lebih sesuai sebagai gateway, proxy, dan node edge ringan.
Nginx digunakan
sebagai reverse proxy pada Raspberry Pi 3. Reverse proxy menerima request dari
client, lalu meneruskannya ke server tujuan. Dengan adanya Nginx, request dari
pengguna tidak langsung masuk ke Jellyfin server, tetapi diterima terlebih
dahulu oleh Raspberry Pi 3 dan diteruskan ke server utama.
Proyek ini relevan
dengan bidang Jaringan Telekomunikasi Digital karena melibatkan konsep
client-server, jaringan lokal, tunneling, reverse proxy, pengalamatan IP,
routing request, latency, throughput, bandwidth usage, packet loss, dan
kestabilan koneksi. Proyek ini juga dapat digunakan sebagai studi implementasi
edge computing sederhana dalam lingkungan jaringan lokal.
Rumusan Masalah
Rumusan masalah dalam
proyek ini adalah sebagai berikut:
1. Bagaimana merancang sistem edge gateway menggunakan
Raspberry Pi 3 untuk akses Jellyfin server?
2. Bagaimana Raspberry Pi 3 digunakan sebagai node edge
dalam sistem jaringan lokal?
3. Bagaimana Nginx digunakan sebagai reverse proxy untuk
meneruskan request menuju Jellyfin server?
4. Bagaimana Cloudflare Tunnel digunakan agar layanan
Jellyfin dapat diakses dari internet tanpa port forwarding?
5. Bagaimana alur request dan response dari pengguna menuju
Jellyfin server?
6. Bagaimana performa jaringan sistem diuji melalui
parameter latency, throughput, bandwidth usage, response time, packet loss, dan
uptime?
7. Apa kelebihan, kekurangan, risiko, dan kendala dari penggunaan Raspberry Pi 3 sebagai edge gateway?
Tujuan Proyek
Tujuan dari proyek ini adalah sebagai berikut:
1. Mengimplementasikan Raspberry Pi 3 sebagai edge gateway.
2. Menghubungkan Raspberry Pi 3 dengan Jellyfin server
utama.
3. Menginstal dan mengonfigurasi Nginx sebagai reverse
proxy.
4. Menggunakan Cloudflare Tunnel untuk akses internet tanpa
port forwarding.
5. Menguji akses Jellyfin melalui
jaringan lokal.
6. Menguji akses Jellyfin melalui
Cloudflare Tunnel.
7. Mengukur latency pada akses lokal dan akses internet.
8. Mengukur throughput saat sistem digunakan.
9. Mengamati bandwidth usage saat streaming media.
10. Mengukur response time saat membuka
halaman Jellyfin.
11. Mengamati packet loss pada jalur
koneksi.
12. Menguji uptime atau kestabilan akses sistem.
Batasan Masalah
Proyek
ini memiliki beberapa batasan agar pembahasan tetap fokus dan realistis.
Batasan pertama adalah Raspberry Pi 3 tidak digunakan sebagai server utama
Jellyfin. Perangkat
ini hanya digunakan sebagai edge gateway yang menjalankan Nginx dan Cloudflare
Tunnel client.
Batasan kedua adalah
Raspberry Pi 3 tidak digunakan untuk transcoding video berat. Transcoding
adalah proses mengubah format, resolusi, atau bitrate video agar sesuai dengan
perangkat pengguna. Proses ini membutuhkan sumber daya komputasi besar. Karena
itu, proses berat tetap berada pada Jellyfin server utama, bukan pada Raspberry
Pi 3.
Batasan
ketiga adalah Jellyfin server utama berjalan pada perangkat terpisah. Perangkat
tersebut bertugas menyimpan file media, menjalankan aplikasi Jellyfin, dan
melayani streaming kepada pengguna. Raspberry Pi 3 hanya menjadi jalur
perantara antara pengguna dan server utama.
Batasan
keempat adalah pengujian difokuskan pada performa jaringan. Parameter yang diuji
meliputi latency, throughput, bandwidth usage, response time, packet loss, dan
uptime. Pembahasan keamanan hanya dilakukan pada level dasar, terutama terkait
penggunaan Cloudflare Tunnel sebagai alternatif port forwarding.
Batasan kelima adalah
proyek ini digunakan sebagai studi implementasi edge gateway sederhana. Sistem
ini tidak membahas keamanan tingkat lanjut seperti Web Application Firewall
secara mendalam, manajemen sertifikat lanjutan, segmentasi VLAN, atau autentikasi
berlapis yang kompleks.
Edge Computing
Edge computing adalah
konsep pemrosesan atau pengelolaan layanan yang dilakukan lebih dekat dengan
sisi pengguna. Dalam sistem tradisional, semua request biasanya langsung menuju
server pusat. Pada edge computing, sebagian fungsi dapat ditempatkan di sisi
edge agar akses menjadi lebih teratur, lebih dekat, dan lebih efisien.
Dalam proyek ini,
Raspberry Pi 3 dapat disebut sebagai node edge karena berada di sisi jaringan
lokal dan menjadi titik perantara antara pengguna luar dengan server utama.
Raspberry Pi 3 tidak melakukan pemrosesan media secara berat. Namun, perangkat
ini mengelola jalur akses melalui Cloudflare Tunnel dan Nginx.
Fungsi edge pada proyek ini lebih dekat ke fungsi gateway dan proxy. Artinya, Raspberry Pi 3 menjadi pintu masuk layanan dari sisi jaringan. Perangkat ini menerima koneksi dari tunnel, lalu meneruskan request ke server yang sesuai melalui Nginx.
Raspberry Pi 3
Dalam
proyek ini, Raspberry Pi 3 dipilih karena dapat menjalankan Nginx dan
Cloudflare Tunnel client. Perangkat ini cukup untuk menangani fungsi reverse proxy
sederhana dan penerusan request. Selain itu, Raspberry Pi 3 juga mudah
ditempatkan di jaringan lokal karena tidak membutuhkan ruang besar dan daya
listrik tinggi.
Namun, Raspberry Pi 3 memiliki keterbatasan performa. Perangkat ini tidak cocok untuk tugas berat seperti transcoding video resolusi tinggi. Karena itu, Jellyfin server utama sebaiknya menggunakan perangkat yang lebih kuat. Raspberry Pi 3 cukup digunakan sebagai penghubung akses, bukan pusat pemrosesan media.
Jellyfin Media Server
Jellyfin adalah media server yang digunakan untuk mengelola dan melakukan streaming konten multimedia. Media yang disimpan dapat berupa video, musik, atau koleksi lain. Pengguna dapat mengakses Jellyfin melalui browser, aplikasi mobile, atau perangkat client lain. Dalam proyek ini, Jellyfin berperan sebagai server utama. Artinya, Jellyfin bertugas menyimpan data media, mengelola library, menampilkan metadata, dan melayani permintaan streaming dari pengguna. Jellyfin menerima request yang diteruskan oleh Nginx. Jellyfin tidak langsung dibuka ke internet melalui port forwarding. Akses dari internet diarahkan melalui Cloudflare Tunnel dan Raspberry Pi 3 terlebih dahulu. Dengan cara ini, posisi Jellyfin server menjadi lebih terlindungi karena tidak langsung terekspos ke internet.
Nginx Reverse Proxy
Nginx adalah aplikasi web server yang juga dapat digunakan sebagai reverse proxy. Reverse proxy adalah server perantara yang menerima request dari client, lalu meneruskannya ke server tujuan. Dalam proyek ini, Nginx dipasang pada Raspberry Pi 3. Pada proyek ini, Nginx berjalan di Raspberry Pi 3. Nginx menerima request yang datang dari Cloudflare Tunnel, lalu meneruskannya ke Jellyfin server utama. Dengan demikian, client tidak langsung berhubungan dengan Jellyfin server. Penggunaan Nginx membuat pengaturan akses menjadi lebih rapi. Nginx dapat mengatur alamat tujuan, header request, port layanan, dan jalur akses. Dalam sistem yang lebih besar, Nginx juga dapat digunakan untuk membagi request ke beberapa layanan berbeda.
Cloudflare Tunnel
Cloudflare Tunnel adalah layanan yang digunakan untuk menghubungkan service lokal ke jaringan Cloudflare. Cloudflare Tunnel membuat koneksi keluar dari perangkat lokal menuju Cloudflare. Dengan model ini, router tidak perlu membuka port publik secara langsung. Cloudflare Tunnel berbeda dengan port forwarding. Pada port forwarding, router membuka port tertentu agar request dari internet dapat masuk ke server lokal. Pada Cloudflare Tunnel, server lokal membuat koneksi keluar ke Cloudflare. Pengguna dari internet mengakses domain, lalu trafik diarahkan melalui tunnel ke jaringan lokal. Pendekatan ini lebih aman untuk proyek sederhana karena layanan lokal tidak langsung terlihat melalui port publik. Cloudflare Tunnel membantu menyederhanakan akses dari internet tanpa harus mengubah konfigurasi port forwarding pada router.
Arsitektur Sistem
Arsitektur sistem terdiri dari beberapa komponen utama. Komponen tersebut adalah pengguna atau client, internet, Cloudflare, Cloudflare Tunnel, Raspberry Pi 3, Nginx, jaringan lokal, Jellyfin server, dan media storage. Client merupakan perangkat yang digunakan pengguna untuk mengakses Jellyfin. Client dapat berupa laptop, smartphone, tablet, browser, atau aplikasi Jellyfin. Ketika pengguna berada di luar jaringan lokal, client mengakses Jellyfin melalui domain yang sudah diarahkan ke Cloudflare. Request dari client tidak langsung masuk ke Jellyfin server. Request pertama kali menuju Cloudflare. Setelah itu, Cloudflare meneruskan request melalui Cloudflare Tunnel. Tunnel tersebut terhubung ke Raspberry Pi 3 yang berada di jaringan lokal. Raspberry Pi 3 menerima jalur koneksi tunnel dan menjalankan Nginx. Nginx kemudian meneruskan request ke Jellyfin server utama. Jellyfin server memproses request dan mengirimkan response kembali melalui jalur yang sama. Media storage berada pada sisi Jellyfin server. Media storage menyimpan file video, musik, atau konten multimedia lain. Raspberry Pi 3 tidak menyimpan media utama. Ia hanya menjadi penghubung akses.
Alur Kerja Sistem
Alur kerja sistem dimulai ketika pengguna membuka domain Jellyfin melalui browser atau aplikasi. Domain tersebut sudah diarahkan ke Cloudflare. Pada tahap ini, pengguna tidak perlu mengetahui alamat IP publik rumah atau alamat IP lokal server. Setelah domain diakses, request masuk ke jaringan Cloudflare. Cloudflare kemudian memeriksa konfigurasi domain dan tunnel yang terhubung. Jika tunnel aktif, Cloudflare meneruskan request melalui jalur Cloudflare Tunnel. Request kemudian sampai ke Raspberry Pi 3. Pada Raspberry Pi 3, service Cloudflare Tunnel client menerima koneksi tersebut. Setelah itu, request diteruskan ke Nginx yang berjalan pada perangkat yang sama.
Nginx menerima request dan meneruskannya ke Jellyfin server utama. Biasanya tujuan Nginx berupa alamat IP lokal Jellyfin server dan port layanan Jellyfin. Contohnya adalah alamat internal seperti 192.168.1.x:8096. Jellyfin server memproses request. Jika pengguna membuka halaman utama, Jellyfin mengirimkan tampilan web. Jika pengguna memutar media, Jellyfin mengirimkan data streaming sesuai permintaan. Response dari Jellyfin dikirim kembali ke Nginx. Setelah itu, response melewati Raspberry Pi 3, Cloudflare Tunnel, jaringan Cloudflare, internet, lalu diterima oleh client. Dengan alur ini, Jellyfin dapat diakses dari internet tanpa membuka port publik langsung.
Blok Diagram Sistem
Diagram tersebut menunjukkan bahwa client tidak langsung mengakses Jellyfin server. Client lebih dulu mengakses domain yang terhubung ke Cloudflare. Setelah itu, request diarahkan melalui Cloudflare Tunnel menuju Raspberry Pi 3. Raspberry Pi 3 menjadi titik edge dalam sistem ini. Perangkat ini menjalankan Cloudflare Tunnel client dan Nginx reverse proxy. Dengan demikian, Raspberry Pi 3 mengatur jalur masuk request sebelum diteruskan ke Jellyfin server. Jellyfin server utama tetap menjadi pusat layanan media. Media storage berada pada sisi server utama. Hal ini membuat pembagian fungsi sistem menjadi lebih jelas. Raspberry Pi 3 berfungsi sebagai gateway, sedangkan Jellyfin server berfungsi sebagai penyedia layanan media.Flowchart Sistem
Kelebihan Sistem
Kekurangan Sistem
|
Aspek |
Kelebihan |
Kekurangan |
|
Keamanan akses |
Tidak perlu port forwarding |
Masih perlu pengamanan akun |
|
Biaya |
Relatif murah |
Performa Raspberry Pi terbatas |
|
Konsumsi daya |
Hemat daya |
Tidak cocok untuk beban berat |
|
Akses internet |
Bisa melalui domain |
Bergantung Cloudflare Tunnel |
|
Performa |
Cukup untuk gateway |
Latency bisa bertambah |
|
Pembelajaran |
Cocok untuk praktik jaringan |
Perlu pemahaman konfigurasi |
Kesimpulan
Proyek ini berhasil dirancang sebagai sistem edge gateway sederhana menggunakan Raspberry Pi 3. Raspberry Pi 3 berperan sebagai node edge yang berada di jaringan lokal dan menjadi penghubung antara Cloudflare Tunnel, Nginx, dan Jellyfin server. Nginx digunakan sebagai reverse proxy untuk meneruskan request dari pengguna menuju Jellyfin server utama. Dengan Nginx, client tidak langsung mengakses server utama, sehingga alur akses menjadi lebih teratur. Cloudflare Tunnel digunakan untuk memberikan akses dari internet tanpa membuka port publik secara langsung. Pendekatan ini lebih aman dibandingkan port forwarding biasa karena koneksi tunnel dibuat dari sisi lokal menuju Cloudflare. Jellyfin tetap berperan sebagai server utama. Server ini menyimpan media, mengelola library, dan melayani streaming kepada pengguna. Raspberry Pi 3 tidak digunakan untuk transcoding berat, karena perannya hanya sebagai gateway dan proxy. Proyek ini relevan dengan Jaringan Telekomunikasi Digital karena mencakup implementasi jaringan lokal, tunneling, reverse proxy, client-server, edge computing, dan pengujian performa jaringan
