Dalam proses pengembangan website maupun aplikasi, sering kali developer membutuhkan cara untuk mengakses server lokal dari internet. Biasanya hal ini cukup sulit dilakukan karena server lokal hanya dapat diakses dari perangkat yang berada dalam jaringan yang sama. Untuk mengatasi masalah tersebut, banyak developer menggunakan Ngrok.
Ngrok menjadi salah satu tools populer yang memudahkan proses pengembangan, pengujian aplikasi, hingga integrasi webhook tanpa harus melakukan konfigurasi server yang rumit.
Pada artikel ini, kita akan membahas secara lengkap mengenai pengertian Ngrok, cara kerjanya, kegunaan, kelebihan, serta contoh penggunaannya dalam dunia pengembangan aplikasi.
Apa Itu Ngrok?
Ngrok adalah sebuah layanan tunneling yang memungkinkan server lokal di komputer Anda dapat diakses melalui internet menggunakan URL publik yang aman.
Dengan kata lain, Ngrok membuat “jembatan” antara server lokal dan internet sehingga aplikasi yang sedang berjalan di localhost dapat diakses oleh orang lain tanpa harus melakukan deploy ke hosting atau VPS.
Misalnya, Anda memiliki aplikasi yang berjalan di:
http://localhost:3000Dengan Ngrok, aplikasi tersebut dapat diakses melalui URL seperti:
https://abc123.ngrok-free.appURL tersebut dapat dibuka dari mana saja selama perangkat memiliki koneksi internet.
Sejarah Singkat Ngrok
Ngrok dikembangkan oleh perusahaan teknologi yang berfokus pada solusi konektivitas dan pengembangan aplikasi. Sejak pertama kali diperkenalkan, Ngrok telah menjadi salah satu tools favorit bagi developer karena kemudahan penggunaannya.
Saat ini Ngrok banyak digunakan oleh:
- Web Developer
- Mobile Developer
- Backend Engineer
- QA Tester
- DevOps Engineer
- Data Engineer
Bagaimana Cara Kerja Ngrok?
Secara sederhana, Ngrok bekerja dengan membuat koneksi aman dari komputer lokal ke server Ngrok.
Alur kerjanya adalah sebagai berikut:
- Developer menjalankan aplikasi di localhost.
- Ngrok membuat koneksi keluar ke server Ngrok.
- Server Ngrok memberikan URL publik.
- Setiap permintaan yang masuk ke URL publik diteruskan ke localhost.
- Aplikasi lokal menerima request seolah-olah datang langsung dari internet.
Ilustrasinya:
Internet User
│
▼
Ngrok Public URL
│
▼
Ngrok Server
│
▼
Localhost DeveloperDengan mekanisme ini, aplikasi lokal dapat diakses secara online tanpa perlu membuka port router atau mengatur firewall yang kompleks.
Kegunaan Ngrok
Ngrok memiliki banyak manfaat dalam proses pengembangan aplikasi modern.
1. Testing Webhook
Salah satu penggunaan paling populer dari Ngrok adalah untuk menguji webhook.
Contohnya:
- Payment Gateway
- WhatsApp API
- Telegram Bot
- GitHub Webhook
- Stripe Webhook
- Midtrans Callback
Layanan tersebut membutuhkan URL publik untuk mengirim data. Dengan Ngrok, developer dapat menggunakan server lokal sebagai endpoint webhook.
2. Demo Aplikasi ke Klien
Saat aplikasi masih dalam tahap pengembangan, developer dapat menunjukkan hasil kerja kepada klien tanpa perlu mengunggah aplikasi ke hosting.
Cukup jalankan Ngrok dan bagikan URL yang diberikan.
Keuntungan:
- Cepat
- Praktis
- Tidak perlu deploy
3. Pengujian Aplikasi Mobile
Developer aplikasi mobile sering membutuhkan backend yang dapat diakses dari perangkat lain.
Ngrok memungkinkan aplikasi Android maupun iOS berkomunikasi dengan backend yang berjalan di localhost.
4. Kolaborasi Tim
Ngrok memudahkan anggota tim untuk melihat aplikasi yang sedang dikembangkan secara real-time.
Misalnya:
- UI Designer ingin melihat perubahan tampilan.
- QA Tester ingin melakukan testing.
- Project Manager ingin memantau progres.
Semua dapat dilakukan melalui URL publik dari Ngrok.
5. Pengujian API
Ngrok sering digunakan untuk menguji REST API atau GraphQL API yang berjalan secara lokal.
Contohnya:
http://localhost:8000/api/usersMenjadi:
https://random-url.ngrok-free.app/api/usersAPI tersebut dapat langsung diuji menggunakan:
- Postman
- Insomnia
- Frontend Application
- Mobile Application
Kelebihan Ngrok
Berikut beberapa keunggulan yang membuat Ngrok banyak digunakan.
Mudah Digunakan
Instalasi dan konfigurasi sangat sederhana.
Cukup jalankan:
ngrok http 3000Dalam hitungan detik, URL publik langsung tersedia.
Mendukung HTTPS
Semua tunnel yang dibuat Ngrok secara otomatis mendukung HTTPS.
Keuntungan:
- Lebih aman
- Cocok untuk testing webhook
- Mendukung integrasi layanan modern
Monitoring Request
Ngrok menyediakan dashboard monitoring yang sangat membantu.
Developer dapat melihat:
- Request masuk
- Header
- Response
- Error
- Payload JSON
Dashboard biasanya dapat diakses melalui:
http://localhost:4040Mendukung Banyak Protokol
Ngrok tidak hanya mendukung HTTP.
Beberapa protokol yang didukung:
- HTTP
- HTTPS
- TCP
- TLS
Tidak Perlu Konfigurasi Router
Tanpa Ngrok, developer biasanya perlu:
- Port Forwarding
- Konfigurasi Firewall
- Public IP
Dengan Ngrok, semua proses tersebut tidak diperlukan.
Cara Menggunakan Ngrok
Langkah 1: Download Ngrok
Unduh Ngrok dari situs resminya sesuai sistem operasi yang digunakan.
Setelah itu ekstrak file dan simpan di lokasi yang mudah diakses.
Langkah 2: Login dan Tambahkan Authtoken
Setelah membuat akun, jalankan:
ngrok config add-authtoken TOKEN_ANDAToken dapat ditemukan pada dashboard akun Ngrok.
Langkah 3: Jalankan Aplikasi Lokal
Misalnya aplikasi Laravel berjalan di:
http://localhost:8000Langkah 4: Jalankan Ngrok
ngrok http 8000Output:
Forwarding https://abcd1234.ngrok-free.app -> http://localhost:8000URL tersebut sekarang dapat diakses melalui internet.
Contoh Penggunaan Ngrok pada Laravel
Jika Anda menggunakan Laravel:
Jalankan server:
php artisan serveKemudian:
ngrok http 8000Hasilnya:
https://xxxx.ngrok-free.appURL tersebut dapat digunakan untuk:
- Callback Midtrans
- WhatsApp API
- Telegram Bot
- Integrasi OAuth
- Testing Frontend
Kekurangan Ngrok
Meskipun sangat berguna, Ngrok memiliki beberapa keterbatasan.
URL Berubah-ubah
Pada versi gratis, URL publik biasanya berubah setiap kali tunnel dijalankan ulang.
Batas Fitur Gratis
Beberapa fitur premium hanya tersedia pada paket berbayar seperti:
- Custom Domain
- Reserved Domain
- Advanced Security
- Team Management
Bergantung pada Internet
Karena seluruh trafik melewati server Ngrok, koneksi internet yang tidak stabil dapat mempengaruhi performa.
Alternatif Ngrok
Selain Ngrok, terdapat beberapa layanan serupa yang dapat digunakan.
- LocalTunnel
- Serveo
- Cloudflare Tunnel
- Tailscale Funnel
- Telebit
- Pagekite
Masing-masing memiliki kelebihan dan kekurangan yang berbeda.
Kesimpulan
Ngrok adalah solusi praktis untuk menghubungkan server lokal ke internet tanpa konfigurasi jaringan yang rumit. Dengan Ngrok, developer dapat melakukan testing webhook, berbagi aplikasi kepada klien, menguji API, hingga mengembangkan aplikasi mobile dengan lebih mudah.
Kemudahan penggunaan, dukungan HTTPS, serta fitur monitoring membuat Ngrok menjadi salah satu tools yang wajib dimiliki oleh developer modern. Baik untuk pengembangan website, aplikasi mobile, maupun integrasi layanan pihak ketiga, Ngrok dapat membantu mempercepat proses development dan testing secara signifikan.


