# NGROK ## What is NGROK NGROK merupakan layanan reverse-proxy yang digunakan untuk meng-expose software/service/program melalui tunneling. Simpelnya, jika kalian memiliki software yang dijalankan di local(komputer pribadi, vps, vm yang tidak di-expose ke public), kalian dapat menggunakan layanan dari `ngrok` untuk membuat software tersebut dapat diakses secara publik. ![NGROK Ilustartion from https://github.com/inconshreveable/ngrok](https://camo.githubusercontent.com/c38e5f8cf24e62a3a2482897d4653b70e7d42649549b48cea4d90e873c5480c3/68747470733a2f2f6e67726f6b2e636f6d2f7374617469632f696d672f6f766572766965772e706e67 "NGROK Ilustration") ## What usually ngrok used for - Membuat website demo tanpa deploy. - Menjalankan layanan Personal Cloud Services dari rumah. - Melakukan test Mobile App/Web App yang terkoneksi ke local backend yang sedang berjalan (Localhost). ## Step-by-step How To ### Register Sebelum dapat menggunakan layanan Ngrok, kita melakukan registrasi terlebih dahulu. Buka website Ngrok atau ketik https://ngrok.com/ di address bar browser kalian. Setelah itu pilih menu Login atau Signup. ![ngrok registration](https://i.imgur.com/o3si5FA.png "Registrasi") ### Setup/Installation #### Download Ngrok Pilih versi Ngrok yang sesuai dengan environment(operating system) kalian ![download ngrok](https://i.imgur.com/mh1Pzab.png "Ngrok Download") #### Extract Ngrok Extract binary file Ngrok ke directory/folder yang kalian inginkan, jika ingin mudah taruh saja di directory project/software yang sedang kalian kerjakan. #### Authentication Agar ngrok dapat digunakan, kita harus melakukan autentikasi terlebih dahulu. Jalankan ```bash ngrok config add-authtoken <AUTH_TOKEN_KALIAN> ``` Auth token didapatkan dari dashboard Ngrok ![auth token](https://i.imgur.com/D6o7VZf.png) ### Use Sebelum dijalankan, pastikan terlebih dahulu protokol dan port yang digunakan oleh software yang kalian develop. Selanjutnya jalankan ```bash ngrok <PROTOKOL> <PORT> ``` Contoh : `ngrok http 8080` Jika berhasil maka ngrok akan menghasilkan output seperti berikut ```bash= Session Status online Account REDACTED (Plan: Free) Version 3.0.4 Region Asia Pacific (ap) Latency 46ms Web Interface http://127.0.0.1:4040 Forwarding https://b0b6-167-99-73-109.ap.ngrok.io -> http://localhost:8080 Connections ttl opn rt1 rt5 p50 p90 0 0 0.00 0.00 0.00 0.00 ``` Yang menandakan software/program/service yang kalian jalankan sudah dapat diakses secara publik melalui ```URL https://b0b6-167-99-73-109.ap.ngrok.io ``` __Note:__ URL yang dihasilkan dari free plan akan selalu berubah setiap kita menjalankan ulang. Pastikan internet yang kalian gunakan lancar dan memiliki bandwith yang cukup untuk dapat diakses secara publik. ### Reference https://ngrok.com/ https://github.com/inconshreveable/ngrok