Panduan Mengonfigurasi Layanan Reverse Proxy Ngrok di ServBay
Ngrok adalah alat tunnel aman yang powerful, berbasis teknologi reverse proxy, yang dapat menembus firewall dan NAT untuk memetakan layanan yang berjalan secara lokal ke domain publik. Panduan ini membahas secara rinci bagaimana mengintegrasikan dan mengonfigurasi layanan Ngrok pada lingkungan pengembangan lokal ServBay, sehingga Anda dapat mengakses layanan web, API, atau layanan lain milik Anda dari internet. Hal ini sangat membantu untuk demo jarak jauh, kolaborasi tim, maupun pengujian callback dari layanan pihak ketiga.
Prinsip Teknologi
Prinsip utama dari Ngrok adalah membangun koneksi tunnel yang terenkripsi antara mesin lokal Anda dan server Ngrok. Ketika pengguna eksternal mengakses melalui domain publik yang disediakan Ngrok, permintaan dikirim ke server Ngrok terlebih dahulu dan kemudian diteruskan lewat tunnel yang aman ke layanan yang berjalan di lingkungan ServBay lokal Anda. Dengan cara ini, meski komputer Anda tidak memiliki IP publik atau berada di balik firewall, layanan tetap bisa diakses dari luar. Dalam konteks ServBay, ini berarti Anda dapat dengan mudah membagikan website lokal, backend API, atau layanan lain berbasis HTTP/HTTPS ke dunia luar secara real-time untuk pengujian maupun demo.
Persiapan Lingkungan
Sebelum mulai mengatur Ngrok, pastikan Anda telah melakukan hal-hal berikut:
- ServBay Sudah Terinstal & Berjalan: Pastikan aplikasi ServBay telah diinstal dengan baik, dan web service yang ingin Anda ekspos lewat Ngrok (misal sebuah website) sudah dikonfigurasi dan berjalan normal. Anda dapat mengelola konfigurasi website lokal pada panel "Website" di ServBay.
- Instalasi Klien Ngrok: Ikuti langkah berikut untuk memasang alat CLI Ngrok:
- Kunjungi Halaman Unduhan Resmi Ngrok untuk mendapatkan installer sesuai sistem operasi Anda.
- Setelah diunduh, ekstrak file. Pindahkan atau salin file eksekusi
ngrok
ke direktori dalam PATH sistem (misal pada macOS:/usr/local/bin
), agar Anda dapat menjalankan perintahngrok
dari terminal mana pun.bash# Contoh untuk arsitektur macOS ARM64 sudo unzip ~/Downloads/ngrok-v3-stable-darwin-arm64.zip -d /usr/local/bin
1
2 - Verifikasi instalasi dengan menjalankan perintah
ngrok version
dan pastikan versi tampil:bashngrok version # Contoh output: ngrok version 3.5.0
1
2
- Akun Ngrok (Opsional tapi Direkomendasikan): Memiliki akun Ngrok (gratis/berbayar) memudahkan manajemen tunnel serta penggunaan fitur lanjutan seperti domain tetap. Daftar melalui Situs Resmi Ngrok dan dapatkan authentication token Anda (
ngrok config add-authtoken <YOUR_AUTH_TOKEN>
) untuk menghilangkan batasan waktu tunnel dan membuka lebih banyak fitur. - Website Lokal Dikondisikan: Pastikan minimal satu website sudah dikonfigurasi di ServBay yang ingin Anda ekspos, misalnya dengan domain lokal
servbay.local
atauyourproject.servbay.demo
.
Praktik Konfigurasi Tunnel
Penjelasan Parameter Utama
Struktur dasar perintah untuk memetakan layanan adalah sebagai berikut:
bash
ngrok http --domain=<NGROK_DOMAIN> <LOCAL_ENDPOINT> \
--request-header-add='host: <VIRTUAL_HOST>'
1
2
2
Komponen Parameter | Penjelasan Fungsi |
---|---|
http | Mendefinisikan pembuatan tunnel berbasis protokol HTTP. Ngrok akan memproses permintaan HTTP/HTTPS yang masuk. |
--domain <NGROK_DOMAIN> | Menetapkan domain tetap yang dialokasikan oleh Ngrok (ganti dengan domain di Dashboard Ngrok, jika ada). Untuk pengguna gratis, parameter ini tidak wajib - Ngrok akan menyiapkan subdomain acak otomatis. |
<LOCAL_ENDPOINT> | Alamat layanan lokal ServBay Anda. Biasanya berupa domain virtual host (seperti https://servbay.local ), atau bisa juga http://localhost:nomor_port . |
--request-header-add='host: <VIRTUAL_HOST>' | [Penting] Mengganti header Host pada permintaan yang masuk. ServBay biasanya membedakan website lokal berdasarkan HTTP Host. Dengan parameter ini, Host header yang diterima akan diubah menjadi domain lokal Anda (contoh: servbay.local ), guna memastikan request diarahkan ke situs yang benar. |
Contoh Konfigurasi
Misalkan Anda telah mengonfigurasi website lokal dengan domain servbay.local
di ServBay, dan ingin mengeksposnya ke publik via Ngrok. Untuk pengguna gratis, Anda dapat langsung mapping alamat lokal:
bash
# Mapping website ServBay lokal servbay.local ke domain acak yang diberikan Ngrok
ngrok http https://servbay.local --request-header-add='host: servbay.local'
1
2
2
Jika Anda sudah mengatur domain tetap di Ngrok Dashboard, misal your-servbay-demo.ngrok-free.app
(atau domain kustom milik Anda), gunakan parameter --domain
:
bash
# Mapping website ServBay lokal servbay.local ke domain Ngrok yang spesifik
ngrok http --domain=your-servbay-demo.ngrok-free.app https://servbay.local --request-header-add='host: servbay.local'
1
2
2
Setelah menjalankan perintah tersebut, klien Ngrok akan menampilkan status tunnel, termasuk alamat publik (seperti https://xxxx.ngrok-free.app
atau domain kustom Anda) serta alamat dashboard monitoring real-time (umumnya http://127.0.0.1:4040
).
Verifikasi Layanan
Setelah konfigurasi selesai dan tunnel Ngrok berhasil dijalankan, ikuti langkah berikut untuk memverifikasi apakah layanan Anda sudah dapat diakses publik:
- Dapatkan Alamat Publik: Pada terminal klien Ngrok, cari baris
Forwarding
, catat URL publik yang diawalihttps://
. - Akses via Browser: Pada perangkat apa pun yang terkoneksi internet, buka browser dan kunjungi URL Ngrok tadi (misal
https://cunning-lacewing-fresh.ngrok-free.app
atau domain tetap Anda). - Verifikasi Hasil:
- Pastikan website yang dihosting di ServBay muncul dengan benar di browser.
- Cek apakah kolom alamat browser menampilkan koneksi HTTPS aman. Ngrok secara default menyajikan sertifikat SSL valid untuk setiap tunnel.
- Anda dapat memeriksa log permintaan dan statistik trafik melalui terminal Ngrok atau antarmuka web lokal (biasanya di
http://127.0.0.1:4040
) untuk memastikan request sudah diterima dan diproses ServBay.
Gambar: Mengakses tunnel Ngrok melalui web browser dengan sukses
Tips Lanjutan & Hal yang Perlu Diperhatikan
- Manajemen Domain:
- Pada paket gratis, Ngrok umumnya memberikan subdomain acak
.ngrok-free.app
dengan durasi tunnel terbatas. - Daftar akun, lalu melalui Ngrok Dashboard, Anda dapat mengatur domain tetap agar alamat publik Anda tidak berganti-ganti setiap kali tunnel dimulai.
- Paket berbayar mendukung penggunaan domain top-level sendiri, bandwidth lebih besar, lebih banyak koneksi bersamaan, dan fitur yang lebih kaya.
- Pada paket gratis, Ngrok umumnya memberikan subdomain acak
- Mapping Multi-Layanan: Jika Anda perlu mengekspos lebih dari satu layanan/port lokal ServBay ke internet, jalankan beberapa proses tunnel Ngrok sesuai kebutuhan, atau kelola semuanya melalui konfigurasi file Ngrok (umumnya di
~/.config/ngrok/ngrok.yml
). Contoh, mapping website di ServBay dan satu layanan lain:bashCatatan: Untuk virtual host di ServBay, sebaiknya gunakan# Mapping servbay.local dari ServBay (asumsi lewat HTTPS 443 dan routing host header) ngrok http --domain=servbay-website.ngrok-free.app https://servbay.local --request-header-add='host: servbay.local' # Pada terminal lain atau via file konfigurasi, mapping aplikasi Node.js di port 3000 ngrok http --domain=nodejs-api.ngrok-free.app http://localhost:3000
1
2
3
4
5https://[nama_domain_lokal]
serta parameter--request-header-add
daripada langsung mapping port 80/443 ServBay, karena port tersebut menangani semua virtual host di ServBay. - Perintah Diagnosis:
ngrok config check
: Memeriksa validitas syntax pada file konfigurasi Ngrok (~/.config/ngrok/ngrok.yml
).ngrok logs
: Melihat log lengkap Ngrok secara real-time melalui terminal, sangat bermanfaat untuk diagnosis masalah koneksi maupun routing.
- Keamanan: Mengekspos layanan lokal ke publik memiliki risiko keamanan. Pastikan layanan yang Anda expose aman, dan hanya aktifkan tunnel Ngrok saat diperlukan saja. Paket berbayar menyediakan fitur tambahan seperti whitelist IP, pembatasan akses, dsb.
Pemecahan Masalah
Gejala | Solusi |
---|---|
Koneksi timeout atau halaman gagal dimuat | Pastikan website target di ServBay berjalan baik serta bisa diakses lewat domain lokal (misal https://servbay.local melalui browser lokal). Periksa juga status web server ServBay (seperti Caddy atau Nginx). Selain itu, pastikan firewall lokal tidak memblokir koneksi klien Ngrok. |
Error sertifikat HTTPS (peringatan browser) | Ngrok otomatis menyediakan sertifikat HTTPS valid untuk domain publik yang dialokasikan. Jika terjadi error sertifikat saat mengakses domain Ngrok, umumnya terkait konfigurasi tunnel atau lingkungan jaringan (bukan masalah ServBay). Pastikan Anda mengakses alamat https:// yang dialokasikan oleh Ngrok. Jika error hanya muncul saat mengakses domain lokal ServBay, periksa konfigurasi SSL pada ServBay. |
Putus koneksi/tidak stabil atau kecepatan lambat | Cek stabilitas koneksi internet lokal. Ketidakstabilan jaringan dapat menyebabkan tunnel terputus. Jika memungkinkan gunakan jaringan kabel. Untuk kebutuhan yang sangat stabil, pertimbangkan paket berbayar Ngrok yang basis infrastrukturnya lebih handal, bandwidth lebih besar. |
Yang muncul halaman default ServBay, bukan website tujuan | Pastikan alamat lokal <LOCAL_ENDPOINT> pada perintah ngrok http benar, dan parameter --request-header-add='host: <VIRTUAL_HOST>' sudah benar-benar diisi domain website lokal di ServBay Anda. Ini kunci agar permintaan dialihkan ke website target dengan tepat. |
FAQ (Pertanyaan yang Sering Diajukan)
Q: Bisakah layanan database ServBay diekspos melalui Ngrok?
A: Ngrok utamanya untuk tunnel HTTP/HTTPS. Meski Ngrok mendukung tunnel TCP (misal untuk layanan database), namun topik ini di luar cakupan panduan HTTP tunnel ini, dan mengekspos database lokal langsung ke publik sangat berisiko secara keamanan. Untuk kebutuhan akses remote database, sebaiknya gunakan SSH tunnel atau solusi lain yang lebih aman.
Q: Apakah domain publik berubah setiap kali Ngrok dijalankan?
A: Pada paket gratis, domain
.ngrok-free.app
yang diberikan biasanya acak dan selalu berbeda tiap kali tunnel diaktifkan. Untuk mendapatkan domain publik tetap, silakan daftar akun dan kelola via Dashboard, atau upgrade ke paket berbayar.Q: Apakah Ngrok mempengaruhi performa ServBay lokal saya?
A: Ada penambahan latency jaringan karena permintaan harus melalui server Ngrok dulu. Namun, untuk aktivitas pengembangan, pengujian, dan demo, biasanya delay ini masih wajar. Performa sebenarnya tetap bergantung pada spesifikasi komputer serta efisiensi website/aplikasi Anda.
Ringkasan
Dengan mengintegrasikan Ngrok, pengguna ServBay dapat membagikan hasil pengembangan web lokal secara aman dan efisien ke internet tanpa konfigurasi jaringan yang rumit. Solusi ini sangat cocok untuk kolaborasi jarak jauh, demo klien, pengujian pada perangkat mobile, maupun integrasi dengan layanan pihak ketiga. Ngrok juga menawarkan pemantauan trafik real-time dan opsi keamanan canggih (beberapa fitur memerlukan paket berbayar). Untuk kebutuhan kritis atau butuh domain tetap, sangat disarankan menggunakan layanan berbayar Ngrok agar mendapatkan stabilitas dan fitur ekstra.