DEV Community

Cover image for Introducing IPNS-Link
Somajit Dey
Somajit Dey

Posted on

Introducing IPNS-Link

You have just built your first website or web-app, from the ground up. You configure and launch a local server - Apache, Nginx or Caddy - and point your browser to http://localhost. And, IT WORKS! Your dream is right in front of you, a concept realized - a special moment that would remain with you forever! Awesome.

Now, what's next? Of course, you want to share it with everybody out there, and you want it to last. So, first of all, you'd need a machine that would stay online round the clock. Your Raspberry Pi is perfect for the job. Great. Now, you'd need ... whoops, first roadblock: your ISP doesn't assign you a public IP address, i.e. your server is not reachable from the internet. No problem, you'd just use any free service such as ngrok, localhost.run or uplink. These services expose your site to the internet and provide an https-URL to access it. Everything works! Congrats.

After your initial joy settles down, you realize the catch with these free plans. From time to time, you have to restart the exposure process and every time you do that the URL changes, the old URL becoming invalid. Your website has an ever-changing address on the internet. What good is that? Even if you were to pay them for a static URL, what would happen if and when the service shuts down?

But, what other options do you have? You're a student, web-dev has just been an adventure and you can't really afford to get into all the hassles and costs involved in conventional web-hosting with your meagre pocket money and limited time. Are you really going to purchase a public IP or move your site to a premium hosting service? Are you prepared to spend on a domain name year after year and manage SSL setup for https?

Despair not. IPNS-Link gives you the following alternative.

Illustration

IPNS-Link: Bob and Grace access Alice's localhost and a blocked website using a private and public gateway respectively.

  1. Install and run a free and open-source app on your local server (the Pi in your case), following this easy tutorial.
  2. The app would give you a long UUID. You can make a QR code out of it for convenience.
  3. Send the UUID or QR code to all your friends and community.
  4. To access your site anytime, all they need to do is go to any public IPNS-Link-Gateway, such as ipns.live and put your UUID in there. Or, better yet, they can run their own private gateway locally on their computer, and access your site directly, without any middle-man.

That's it! You distribute that UUID to your audience once and for all, and you're set. Even if you later port your site to a VPS or cloud hosting provider (e.g. AWS EC2 free-tier), your site can still be accessed using the same UUID. Even if you later get a domain name for your site and make it accessible from the main-stream web, the IPNS-Link exposure would continue to provide your users with decentralized routes to your site. This helps in case your domain is ever taken down or blocked.

IPNS-Link uses the InterPlanetary File System (IPFS) network behind the scenes. IPNS, or Interplanetary Name System, is a subsystem built atop IPFS. Curious? Start here and work your way up to the IPNS-Link specs.

Like what IPNS-Link's doing? Spread the word (here's another blog). Usher in a micro-hosting movement for the decentralized web to learn, experiment, tinker, showcase and grow, worry-free. Join the community and be a part. Contribute any way you can.

Happy Hosting!

Top comments (0)