When planning on starting a blog, what is the first thing you'd do? Find the right software to run it, set it up and tweak it to your liking, for hours – long before you're even clear if you really want to get into blogging. At least that's what I did.
Options are probably endless nowadays – ranging from the behemoth WordPress has become and social blogging platforms like Medium to simple static site generators like Jekyll. I didn't really like any of these so I did some further research and stumbled across Ghost, which I really liked for its simplicity and focus on the actually writing part. What I really did not like was the pricing for a hosted solution, which starts at $29 a month. But as Ghost is open source I could always just host it myself. The decision was made.
Ghost itself is pretty lightweight and it doesn't have any special requirements, so pretty much any hosting solution would do. I decided against setting up a VServer from scratch for this as I wanted something really simple, easy to set up and with low maintenance needs. The first option I considered was an EC2 instance on AWS using a preconfigured Ghost image. Setup seemed simple (just a little more than one-click) and I already knew my way around in AWS. The pricing surprised me though: I would end up paying about $10 a month for just simple blog (on a t2.micro instance). Next stop was DigitalOcean using a droplet with a Ghost one-click app – similar concept but better pricing: $5 for the smallest option which has the same specs as the AWS machine and is more than enough. On top of that I found out that Ghost actually recommends using DigitalOcean and provides an official one-click app. Another decision was made.
The actual setup after that was a breeze: signup with DigitalOcean, one-click install the Ghost app, ssh into the machine for some final guided steps and then finish the installation using the Ghost web interface. I then took some time to tweak the settings, fork a theme and tweak it and tell Google about this brand new source for high quality content.