Lean & fast self-hosted blog
A little inspiration to self-hosting a website without bloat.
Why self host?
Why not? It’s fun.
Say no to walled gardens and own the Internet.
A new blog
So, when I wanted to build a blog for myself, I decided it must be simple, efficient, fast, modern, and yet look easy on the eyes of the reader. I thought about building a Staic Site Generator(SSG) myself for this purpose, but decided against it considering there are plenty of open source SSGs available already that fits my needs. I chose Hugo. The default theme (Ananke) is already built using my favourite functional CSS framework - Tachyons, So, I’m set from the get go. Update: I have moved on from Hugo and chose Mkdocs with Material theme instead.
Making it public
Next step on the way is to host this beautiful website somewhere. I’m going to need a domain name, a Virtual Private Server(VPS) to run a webserver, DNS service, and a TLS certificate provider.
Domain: I purchased a domain through Google domains.
VPS: A cloud VM on Vultr.
Google domains provide a free DNS service that probably is more than enough for personal websites. I chose to use a more business oriented DNS service provided by Google for its Google Cloud Platform customers - Google Cloud DNS. Google describes this service as to offer a reliable, resilient, low-latency DNS serving from Google’s worldwide network. Just a better use of the Free tier that Google Cloud Platform offers. I will setup my own DNS server in the future, but let’s use Google’s for now.
Web server (Nginx):
DigitalOcean has a couple of excellent guides on setting up Nginx with HTTP/2 and adding TLS.
How to set up Nginx with HTTP/2 on Ubuntu 18.04
Secure Nginx with Let’s Encrypt
With a secure webserver and a domain name pointing to it, all I had left to do was SCP the website built locally on my Mac to the web server.
A little tip to optimize images used in any website: Use either the free online service - https://tinypng.com or if you’re using a Mac, try https://imageoptim.com/mac
The result of all the above work is a good looking website that happily hits the goal as shown below.
I hope my website gave you a little inspiration to build/optimize your own. Have fun! and subscribe to my RSS feed if you’d like to see my future posts.