Locking Down SSH in a DMZ for Hugo Deployments

Hardening SSH access to a DMZ web server revealed an overlooked dependency in my Hugo deployment pipeline: the server also needs outbound SSH to pull from Git.

February 18, 2026 · Updated today · 5 min · Roland Hill

Self-Hosted Matomo Behind a Reverse Proxy

How I self-host Matomo analytics for a static Hugo site. Matomo stays on an internal server, and a DMZ reverse proxy carries the tracking traffic, with the real visitor IP and GeoLite2 geolocation preserved.

October 1, 2026 · Updated today · 6 min · Roland Hill

Self-Hosted Hugo Comments with Private Gitea

How I built a secure, self-hosted comment system for Hugo using private Gitea as the backend, proxied safely through Nginx.

March 2, 2026 · Updated March 4, 2026 · 2 min · Roland Hill

Building a Private LDAP Address Book with OpenLDAP

A private OpenLDAP address book secured with LDAPS, providing centralised contact lookup for Mutt and Thunderbird on a LAN.

February 22, 2026 · Updated today · 3 min · Roland Hill

Automating Hugo Deployments with hillpush (Git-Based Workflow)

How this site is published: a small helper script commits and pushes to a self-hosted Gitea, and a build host in the DMZ pulls, rebuilds and syncs the site. Includes what I learned rebuilding it after losing the Git server.

February 19, 2026 · Updated today · 7 min · Roland Hill