I’ve always been fascinated about machines and how they work: from airliners to vessels, trains and even the Internet. Machines that work uninterruptedly and are interconnected by fiber optic cables running below the streets, roads and oceans.
A couple of years ago, I saw somewhere on the Internet an image that caught my attention. It was a picture of the world’s first web server that, somehow, brought me back memories from when I used to carry a floppy disk to get my first website hosted and also updated on a machine in the computer store of my hometown. Times where having home internet access was a coveted thing, not to mention 24/7 broadband access.
That image stuck with me for long, and with plenty of free time available in this quarantine, I started to explore different ways to launch a small web server at home. Since I already have a desktop PC always on streaming audio for Blur FM, I decided to try a VPS on a VirtualBox machine first.
Debian Server proved to run very smooth locally. Then came the hardest part of all: exposing the Virtual Machine to the Internet itself. It was a long way to go. My ISP uses CG-NAT, meaning that the public IP of my link is shared with other subscribers. NO-IP, which is one of the most popular choices for clients with Dynamic IPs, was not a viable solution.
After weeks of research I managed to set up a VPN tunnel using an Amazon Lightsail instance. Thereby, with the static IP coming from Amazon and some tinkering with port forwarding and iptables, I found a way to expose my web server to the Information Highway.
I consider this a personal milestone because, even though I’ll keep relying on the cloud for everything, hosting this blog on my web server feels like a feat in itself. Now, I’ll have to add a note to my desktop like Tim Berners-Lee, considered the father of the World Wide Web, did 30 years ago:
“This machine is a server. DO NOT POWER IT DOWN!!”