-->

Implementasi Edge Gateway Berbasis Raspberry Pi 3 untuk Akses Jellyfin Server Menggunakan Nginx dan Cloudflare Tunnel

Muhammad Faiz Ansharullah
0

 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

Raspberry Pi 3 adalah komputer mini yang dapat menjalankan sistem operasi berbasis Linux. Ukurannya kecil, konsumsi dayanya rendah, dan cukup fleksibel untuk proyek jaringan. Karena itu, perangkat ini sering digunakan untuk eksperimen server ringan, gateway, monitoring, dan otomasi jaringan.

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


Flowchart tersebut menjelaskan proses akses Jellyfin dari sisi pengguna sampai ke server utama. Proses dimulai dari pengguna yang membuka domain. Setelah itu, request masuk ke Cloudflare dan diteruskan melalui tunnel Raspberry Pi 3 menerima request dari tunnel. Nginx kemudian mengarahkan request tersebut ke Jellyfin server. Setelah Jellyfin memproses permintaan, response dikirim kembali melalui jalur yang sama. Flowchart ini penting karena menunjukkan bahwa sistem tidak menggunakan akses langsung dari internet menuju Jellyfin server. Ada beberapa lapisan perantara, yaitu Cloudflare Tunnel, Raspberry Pi 3, dan Nginx.

Kelebihan Sistem

Sistem ini memiliki kelebihan utama karena tidak membutuhkan port forwarding. Dengan Cloudflare Tunnel, layanan lokal dapat diakses dari internet tanpa membuka port publik secara langsung. Ini membuat sistem lebih aman dibandingkan membuka akses langsung ke Jellyfin server. Kelebihan berikutnya adalah biaya implementasi relatif rendah. Raspberry Pi 3 memiliki konsumsi daya rendah dan cukup untuk menjalankan fungsi gateway sederhana. Hal ini membuat sistem cocok untuk tugas kuliah dan eksperimen jaringan. Sistem ini juga mudah dipahami. Alur kerjanya jelas, yaitu client mengakses domain, request masuk ke Cloudflare, diteruskan ke Raspberry Pi, lalu Nginx meneruskan ke Jellyfin server

Kekurangan Sistem

Kekurangan utama sistem ini adalah keterbatasan Raspberry Pi 3. Perangkat ini tidak cocok untuk beban berat. Jika terlalu banyak request masuk, performa dapat menurun. Sistem juga bergantung pada koneksi internet dan Cloudflare Tunnel. Jika internet mati atau tunnel terputus, akses dari luar jaringan tidak dapat dilakukan. Selain itu, akses melalui tunnel dapat memiliki latency lebih tinggi dibanding akses lokal. Performa akhir juga tetap dipengaruhi kualitas jaringan lokal dan kemampuan Jellyfin server utama.

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

 tabel kelebihan dan kekurangan sistem


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





Post a Comment

0Comments

Post a Comment (0)