Share your Web Projects Easily
Pratik Singh

Pratik Singh @kitarp29

About: Distribution Engineer at GitLab My expertise lies in DevOps, Golang, Backend Development, and C++. I have a strong passion for leveraging DevOps to streamline software development processes.

Location:
India
Joined:
Jul 12, 2020

Share your Web Projects Easily

Publish Date: Dec 24 '20
113 23

This article is about sharing your localhost as a link that anyone can access. We will achieve this using ngrok

what-is-localhost.png

As a Web Developer, whatever you work on has to be shared as a link that others can access. Irrespective of whether you are a Front-End or a Back-End dev, a MERN Stack or a LAMP Stack dev, I am assuming you know the importance of https://localhost/.

What if I told you that the work on your localhost can be shared with others in a few simple steps?🤯

There are several methods of deploying your project on a server as a shareable link.
But the problem with this process that you have to-

  • Commit your code and Push it to an external server before anyone can see your progress.
  • If your organisation follows DevOps Pipelines. Your colleague will only be able to test your code after the next build is ready.(Assuming there is a case of "It works on my machine")
  • As a #CodeNewbie the process is even more tiresome as you have to learn all about git, GitHub, Heroku, AWS, etc.

The answer to all of these Problems is sharing your work without committing the code and pushing it to an external server. This is possible by tunneling your localhost on the internet using ngrok

Ngrok exposes local servers behind NATs and firewalls to the public internet over secure tunnels.

> Lets get started

  • Download from here
  • Unzip the downloaded folder
  • Run the ngrok.exe
  • Log in to your account and head to the Dashboard
  • In the .exe file Command

    ./ngrok authtoken Your_Authentication_Key

  • Now Fire it up

    ./ngrok http 3000

    if your project is hosted on http://localhost:3000/

  • The terminal must look like this now-
    8d090eb7-d978-4824-8d29-ffc02751a359.jpg

  • This link you see can be shared with others to see your work.

So this link can be accessed by anyone and will work as long as you run the program on your computer.

> Why should you use ngrok?

They have very good documentation, easy to use, and have a lot of uses that can help you with many projects that you might work on.

Screenshot 2020-12-24 142724.png

> Use Case

I have been a Web Developer both Front-end and Back-end. I currently work in DevOps. This is a major gap that I have seen.
There is always a case where, "It works on my machine ¯_(ツ)_/¯ ". Yes, DevOps solves this problem majorly, but for minor changes triggering the CI/CD pipelines seems like a waste of resource to me.

Here are some scenarios, I have seen this to be helpful:

  • Front end developers wanna present their work to clients/managers before committing the work.
  • Students in a Hackathon can use it share their project easily. Not all student have credit cards to signup for AWS or similar cloud services.
  • Back-end developer has a Server with a local database. They use it make sure with the front-end team can correctly consume the data.(Did at work!)
  • SSH to a Raspberry Pi
  • Test and build a Web-hook integrations
  • Applications with web-sockets, those which have to be running on at least two ends to be tested.

> Conclusion

This method seems like a good bridge to help out both front-end and back-end developers.
There can be doubts on it's security and privacy concerns. And Yes, those are point of concern. But the platform is still building. There are many BETA features and also a few paid services.

Overall, an easy and short alternative to deploying your work on the internet.

Comments 23 total

  • Cameron Thompson
    Cameron ThompsonDec 25, 2020

    Can’t wait to try this!

  • Ahmed
    AhmedDec 25, 2020

    been using it for a while. Great to fix things live with clients.
    But was hoping the livereload would work. Hope it will come in the next iteration.

    • Pratik Singh
      Pratik SinghDec 25, 2020

      The next update hopefully covers this issue🤞

  • Koas
    KoasDec 25, 2020

    ngrok it's a great piece of software, I've been using it a lot recently while developing a Telegram bot, it allows you to get the Telegram messages on your localhost.

    • Pratik Singh
      Pratik SinghDec 25, 2020

      I agree the possibilities are great.
      I was planning to use it on a Raspberry pi Once

  • Kris M.
    Kris M.Dec 25, 2020

    Thank you. A nice alternative to spinning up something on Heroku (or similar).

    • Pratik Singh
      Pratik SinghDec 25, 2020

      My pleasure😊
      Thank you for reading my article

  • Saham Alam
    Saham AlamDec 25, 2020

    Great tool.

  • Hacker Up
    Hacker UpDec 25, 2020

    Old shit 😉😁

    • Pratik Singh
      Pratik SinghDec 25, 2020

      I am a #CodeNewbie so it seemed pretty new to me😂
      Thanks for reading my article

  • Jakub T. Jankiewicz
    Jakub T. JankiewiczDec 25, 2020

    Thanks for reminding about ngrok.

    • Pratik Singh
      Pratik SinghDec 26, 2020

      My Pleasure.
      Thanks for reading my artcle

  • Tobias Nickel
    Tobias NickelDec 26, 2020

    once I implemented my own version for a localhost proxy. custom localtunnel.

    When doing this, I definetly found the value in using it just as a service. i think it is great for exposing my raspberry pi.

  • Somos 404
    Somos 404Dec 26, 2020

    fuaaaaaaaaaaaa me salvaste de un problemazo que estaba teniendo con una pasarela de pagos. Muchas gracias!

    • Pratik Singh
      Pratik SinghDec 27, 2020

      El gusto es mio.
      Gracias por leer mi artículo

  • Rakesh
    RakeshDec 27, 2020

    didn't know this...thanks for sharing pratik

    • Pratik Singh
      Pratik SinghDec 27, 2020

      My pleasure Rakesh.
      Thanks for reading my article.
      If you found it helpful do share it so that it might help others as well

  • Aad Pouw
    Aad PouwDec 27, 2020

    Instead of 'localhost' can use this service for 'mywebsite.local' too?

  • Shahjada Talukdar
    Shahjada TalukdarDec 27, 2020

    I made a video on ngrok few days back-

    • Pratik Singh
      Pratik SinghDec 27, 2020

      Now that's Awesome.
      Thanks for the video and reading my article

Add comment