Herkese merhabalar. Bir çok kere yerel geliştirme ortamımızdaki geliştirmeleri sunum halinde takım arkadaşlarınız veya müşterilerle paylaşma gereği duymuşuzdur. Bugün bunu yapmanın en pratik yollarından birinden bahsedeceğim.

Örneğin yerel de localhost:8000 de  yayın yapan Django  projenizi direkt internet üzerinden erişilir hale getirmek ve bir yerlere deploy etmekle uğraşmak istemiyorsunuz. O halde gelin evimizi dış dünyaya  açalım

Ngrok nedir?

Ngrok herhangi bir Firewall veya NAT arkasında koşan yerel sunucumuzu tünelleyerek internete çıkartmamızı sağlayan reverse proxy yazılımıdır.




Kurulum ve gerekli ayarlamalar.

İlk olarak Ngrok yazılımını bilgisayarımıza indirmemiz gerekmekte. Şu adresten sizin için uygun olan versiyonu indirebilirsiniz. İndirme işlemi tamamlandıktan sonra indirdiğiniz dizine zip dosyasını çıkartın.

$ unzip /path/ngrok/file

Daha sonrasında bir token’e ihtiyacımız var. Ngrok ücretsiz kullanıma izin verse de ücretsiz planlarda bir sınırlama var.  Dakikada kabul ettiği istek sayısı, tünellenebilecek port sayısı vs. Ayrıca token oluşturulmaz ise bağlantı sınırlı süreyle açık kalmakta.(8saat) Token istemiyorum diyorsanız bu aşamayı atlayabilirsiniz.

Bu adresten kayıt olabilir ve dashboard da auth sekmesinden tokeninizi oluşturabilirsiniz.

Tokeninizi kopyaladıktan sonra:

$ ./ngrok authtoken <YOUR_AUTH_TOKEN>

konfigürasyonumuzu tamamlıyoruz.

Port tünelleme.

Çalışan bir lokal sunucunuzun portunu tünellemek için (ex 8000)

./ngrok http 8000


Belirtilen adreslere bir kaç istek yaptığınızda terminalin altında loglanmaya başladığını göreceksiniz.

Ayrıca gelen isteklerin detaylı bilgilerini görebileceğiniz bir inceleme aracıda 4040 portundan yayın yapmaya başladı.

Örnek request-response döngüsü.

$ curl https://f3e01cc7.ngrok.io
<h1>Hello world and Ngrok tunneling!</h1>

Kullanıcı adı parola korumalı port tünelleme.

Kolayca davetsiz misafirleri engellemek için auth sistemi kurmak.

$ ./ngrok http -auth="username:password" 8000 

$ ./ngrok http -auth="egundogdu:123"  8000

Son olarak Ngrok gerçekten hayat kurtaran pratik bir araç. Daha fazla bilgi için dökümantasyon ve ücretli versiyonlarında ne gibi olanaklar sunuyor diye ücretlendirme sayfasına göz atmak isteyebilirsiniz. Herkese iyi günler!

 Kaynak Site: https://www.egehangundogdu.com/ngrok-nedir-nasil-kullanilir/