Hello, World

Every blog needs a first post. This is mine.

Why a blog?

I’ve been meaning to document the work I do — setting up infrastructure, debugging strange server behaviour, notes on tools I find useful — somewhere more permanent than a sticky note or a terminal history. A blog hosted on my own server felt like the right answer.

The stack

There’s nothing clever here, which is the point:

  • Zola — a static site generator written in Rust. A single binary that takes Markdown files and produces HTML. No Node.js, no Ruby, no package managers involved.
  • tabi — a clean Zola theme with dark/light mode and good typography out of the box.
  • nginx on a Linode VPS — serves the files. No dynamic anything.
  • rsync — deploys the built site to the server. That’s the entire pipeline.

Writing a post

Every post is a Markdown file under content/blog/. The front matter looks like this:

+++
title = "Post Title"
date = 2026-03-17
description = "A short description shown in listings and meta tags."

[taxonomies]
tags = ["tag1", "tag2"]
+++

Post content starts here.

The <!-- more --> comment sets the cut-off point for the excerpt shown in the post listing.

Building and deploying

# Build the site (output goes to public/)
zola build

# Deploy to the server
rsync -avz --delete public/ prod.hmct.dev:/var/www/html/

That’s it. Markdown in, HTML out, one rsync command to ship it.

What to expect here

Mostly notes on:

  • Linux server administration
  • Networking and DNS
  • Mail server configuration (postfix is a journey)
  • SSL/TLS and certificate automation
  • Tools and workflows I find worth documenting

No comment section, no tracking, no JavaScript-heavy anything. Just text and the occasional code block.