This is an update to my previous blog post "Git, Gogs, Jekyll and Auto-deployment" since I've changed things up in the last four years.

The Static Blog Generator

I've switched to Hugo from Jekyll. A few reason are:

  • Hugo seemed to generate the static files faster (I didn't run benchmarks or anything)
  • A single Go executable is easier to manage than Ruby environments (and the `bundle` thing, or whatever -- I don't really care)
  • The Hugo file structure seems cleaner (although that might just be me having more experience with static site generators overall)


I still just push to a git repository to trigger an update to the blog. I've switched my self-hosted git platform from Gogs to Gitea, however. The main reason is that, the development on Gogs stalled for a while and the community had some interesting ideas on the roadmap I wanted to play with.

The Hook

Instead of calling a local custom script on the post-receive git hook, I'm using Drone CI to run `hugo` and `scp` the results over to the live blog. You can look at the .drone.yml file in the repository for more info.

Since I'm switching everything to LXC containers, the blog and Gitea are in separate "environments" so I can't rely on the old post-receive git hook on Gitea to build the blog on-the-fly. Plus, this task is perfect for a CI pipeline and I've wanted to set something like this up for a while now. I'll probably end up using the pipeline for other things too.