Maker of https://bubblin.io—an online cafe of books and http://bookiza.io— an open source book reification framework. Generally helpful.
A few weeks ago one of our readers reached out on our support channel to tell us that our site wouldn't work for them. It simply wouldn't load on their browser (Chrome).
After a little back and forth, we realized that our web server lacked IPv6 support. We weren't listening to the requests made on IPv6. If you don't know already, IPv6 stands for Internet Protocol version 6 and it is intended to replace IPv4 network, which is what our original web—as-is—has had a run on for the last two decades.
Google is out with stats on IPv6 adoption lately (as of October 2018) and the numbers are rising steadily. Over twenty five percent of the Internet is now using IPv6 and from the graph it appears that well over half would be onboard in the coming few years. More importantly, a % of those who are on IPv6 already are exclusively so and cannot see your content if the website isn't configured to serve on the new protocol. (Updated per tweet.)
Through this quick post we will configure our web app/site for the new protocol.
The first step is to add an AAAA Record on your DNS Manager. We needed a public IP on IPv6 so I made a request to our hosting provider (Linode) to provide me with one.
Once they responded, I went ahead and added our public IPv6 on the Remote Access Panel, like so:
I added the ugly looking records with IPv6 option (bottom three) as screenshot-ted above. Since changes to DNS take some time to percolate we'll leave the DNS manager here and focus on configuring our app-server nginx for IPv6 next.
Nginx on IPv6
Now Bubblin is delivered on a strict https protocol so we are effectively a permanent on redirecting all our traffic (from http →) to https.
We use the Letsencrypt and Certbot to secure Bubblin with industry-grade SSL.
Shown below is an excerpt from our nginx.conf.erb on production:
Notice the `listen [::]:80 ipv6only=on;` directive inside the server block and the HSTS directive at the bottom.
To test your nginx configuration:
$ sudo nginx -t
$ sudo nginx -s reload
Hoping that your DNS percolated by the time the nginx was cofigured (sometimes it may take up to 24 hours), now it is time to test if the website is available on IPv6:
$ curl https://bubblin.io -6
The HTML page from your site should be served correctly.
That's all folks.
Hi, I'm Marvin Danig, CEO and Cofounder of Bubblin.
You might want to follow and connect with me on Twitter or Github?
P.S.: Reading more books on web will help your attention span.
freeCodeCamp is free. And we don't show any ads, either.
It costs us 10,000s of dollars each month to operate freeCodeCamp.
But how is this possible? How can freeCodeCamp stay online while being free and without even showing ads?
It's possible thanks to thousands of people around the world who care enough to donate.
freeCodeCamp is a donor-supported nonprofit. We're a grass-roots public charity. And we have more than 5,000
around the world who donate each month to support our work.
In 2019 alone, we provided 1.1 billion minutes of free education to people around the world.
freeCodeCamp's total annual budget is only $373,000. That means every dollar you donate to freeCodeCamp provides
hours worth of free technology education to people around the world.
This makes freeCodeCamp one of the most capital-efficient nonprofits in human history. And we are just getting
We have big goals for 2020:
Thousands of new interactive coding challenges
A "classroom mode" for teachers
Hundreds of in-depth articles explaining technology news in a historical context
With our current tiny budget, we will only be able to accomplish some of these goals. But with your support, we
accomplish all of this.
If you want to make the world a better place for 2020, freeCodeCamp is a sensible place to donate your
Over the past 5 years, we've proven we can use your donations efficiently to get things done.
When you donate to freeCodeCamp, you help people learn new skills and provide for their families.
You also help us create new resources for you to use to expand your own technology skills.
Become a monthly supporter of freeCodeCamp.org. Or
make a tax-deductible year end gift. Every little bit helps.