This is documentation about this site.

Blog engine

Academic template for Hugo.

Writing workflow

See also: Blog Writing Flow in Git.

Content is edited in Markdown. I do all my editing in Spacemacs, with heavy use of Projectile and Magit (Spacemacs layers git and project).

The whole site, including theme files and content, are checked in Git for version control.

Previously, I used Vim and Tmux.

Hosting platform

Hosted in my house.

I have a FreeNAS box and I use FreeBSD jails to isolate and put up web hosting environments.

My script basically builds the site with hugo and syncs the public/ directory to the jail over SSH with rsync.

Large static files are hosted on a separate static HTTP server. It’s just another FreeBSD jail with apache24 serving a filesystem directory. This is to avoid commiting large binary files to Git, like videos or large archives I host for sharing.

I commit blog post images optimized for web in my site’s repository, because they’re optimized and I can take advantage of Hugo Page Bundles.

I use the HAProxy and ACME packages on my pfSense router for reverse proxying and SSL offloading.

My website is hosted on and static files are served at

My servers and network equipment.
My servers and network equipment.


I use DigitalOcean for the domain.

In pfSense, I configured the Dynamic DNS client with a DigitalOcean API key to update my DNS A record with my residential DHCP IP address.