Moving to Hugo

For the last 10(!) years this blog has been running on Wordpress. Due to a very rigorous update schedule it managed to stay free of compromise its whole life. Which does show you something about the supposed insecurity of Wordpress. Despite the frequent updates to Wordpress however I found it hard to find time to update the actual OS, and before it was decommissioned it was running Fedora 17 (of 2012). So it desperately needed an update.

So I decided that something with the complexity of Wordpress was not appropriate for my personal site, as I don’t have the time and effort available to keep the infrastructure running it up to date. Given this I had a few requirements for the update.

  • The deployment must be simple and easy to keep up to date.
  • Updating content must be easy, but not necessarily for non technical users.
  • Writing posts in Markdown is fine
  • Storing them in a git repository
  • Have the server auto update the posts from the git repository
  • Must be easily hosted over HTTPS preferably using LetEncrypt certificates.

So one of the easiest ways to keep the complexity in order is to use a static site generator. Luckily I found Hugo. Hugo comes as a Go application, so it can be used almost anywhere, its posts go into a git repository, by default it uses Markdown. Then when deploying it to production you can use Caddy which then lets you automatically fetch LetEncrypt certificates, automatically update the git repository and automatically process Hugo sites. All of the above requirements are met.