ROYTO
Published in

ROYTO

localhost’a Dışarıdan Bağlanmak

Bu yazımda localhost’unuzu başkalarıyla nasıl paylaşabileceğinizi anlatacağım.

Diyelim ki bir Web projesi üzerinde çalışıyorsunuz ve yaptığınız değişiklikleri bir arkadaşınıza göstermeniz gerekiyor. Bu projeyi herhangi bir uzak sunucuya deploy etmeden nasıl yapabilirsiniz? Deploying zaman alıcı bir süreç. Ayrıca her küçük değişiklikte de sürekli deploy yapmak yıpratıcı olabilir. Dolayısıyla burada en akıllıca çözümlerden bir tanesi kendi localhost’unuzu bir şekilde her yerden ulaşılabilir hale getirmektir. Böylelikle sürekli sunucunuza deploy etmek gibi zahmetli bir süreçten kurtulmuş olacaksınız.

Elimizde bir çok farklı ürün var. Bunlardan en popüler iki tanesi, ngrok ve localtunnel. localtunnel ücretsiz ve açık kaynak kodlu bir araç. ngrok ise ücretli bir ürün. Dolayısıyla bu yazıda ücretsiz olanı yani localtunnel’ı anlatacağım.

Localtunnel, DNS ve güvenlik duvarı ayarlarıyla uğraşmadan yerel geliştirme makinenizde bir web hizmetini kolayca paylaşmanıza olanak tanır.

localtunnel Kurulum

localtunnel’ı kurarken node package manager’ı (NPM) kullanacağımızdan dolayı bilgisayarınızda Node.js’in kurulu olması gerekir. Eğer yüklü değilse buraya tıklayarak kendi sitesinden Node.js’i kurabilirsiniz.

Node.js kurulumu bittikten sonra terminalinize “node -vyazarak kurulumun başarı ile gerçekleşip gerçekleşmediğini kontrol edebilirsiniz. Eğer ekranda node.js’in versiyonunu görüyorsanız başarı ile kurmuşsunuz demektir.

Node.js’i kurduğunuz zaman, NPM’de otomatik olarak bilgisayarınıza yüklenmiş olacaktır.

Daha sonra aşağıdaki kodu terminalinize yapıştırın.

npm install -g localtunnel

Bu kodun amacı npm’i kullanarak localtunnel’ı bilgisayarınıza global olarak kurmaktır. “-g “ parametresi global manâsına gelmektedir. Yani indirdiğiniz paketin sadece proje dosyasına özgü değil bilgisayarınızın her yerinden erişilebilir olmasını sağlar.

Paketi yükledikten sonra çalıştırmamız gereken sadece tek bir komut kaldı;

lt --port 8000

Burada dikkat etmemiz gereken husus, 8000 yazdığımız kısıma uygulamanızın çalıştığı localhost portunu yazmanız lazım ki yaratılacak olan domaine gelen istekler sizin localhost’unuza yönlendirilebilsin. Yani diyelim ki uygulamanız http://localhost:3000 üzerinde çalışıyor. Bu durumda yazmanız gereken komut aşağıdaki gibi olamalıdır.

lt --port 3000

Bu komutun çıktısı olarak herkesle paylaşabileceğiniz bir url alacaksınız, örneğin https://flkajsfljas.loca.lt.

Eğer localhost’unuzu sonlandırırsanız artık kimse yaratılan URL’den projenize ulaşamayacaktır.

Bonus

Diyelimki localtunnel’ın kendi ürettiği bir domain’i değil de kendi istediğiniz bir domain’de çalışmasını istiyorsunuz. O zaman aşağıdaki komutu çalıştırabilirsiniz;

lt --port 3000 --subdomain ertan --local-host "127.0.0.1" -o --print-requests

Burada subdomain olarak “ertan” ı kullanıyoruz. Böylelikle bize vereceği domain artık aşağıdaki gibi olacak;

Eğer kendi belirlediğiniz subdomain’e rağmen başka bir adres veriyorsa muhtemelen sizden başka birisi aynı subdomaini kullanıyordur.

Önemli Bir Not

Eğer uygulamanız bir back-end servisi kullanıyorsa ve bunu da başka bir localhost üzerinde çalıştırıyorsanız o zaman onun için de ayrıca localtunnel’ı çalıştırmanız gerekebilir. Böylelikle artık uygulamalarınızın yeni adresleri üzerinden birbiriyle iletişime geçmeleri gerekecektir.

Cover Image

Photo by Alex Blăjan on Unsplash

--

--

--

Resmî Olmayan Yazılım Topluluğu, üniversite öğrencileri tarafından kurulmuş bir yazılım oluşumudur. Herkesin algoritmalar, yazılım dilleri ve benzeri konularda katkı sağlayabileceği ve kendine yeni vizyon katabileceği bir ortam oluşturmak temel odağımızdır.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Ertan Özdemir

Ertan Özdemir

Web Developer @TalentGrid

More from Medium

Is GraphQL the better REST?

Automated Tests: The Reasons Why You Should

A cryptography primer for engineers: Password Hashing

viewmodelscope.launch scope running on the main thread | Flow | Repository