Diagram of the self-hosted mail flow through postscreen, milters, Dovecot, direct delivery and webmail

Self-Hosted Email: Running My Own Mail Server Again

How I moved my domain’s email from a hosted provider to a self-hosted Postfix and Dovecot server in my home lab, the design choices behind it, and what I learned along the way.

October 1, 2026 · Updated October 14, 2026 · 7 min · Roland Hill
The Matomo analytics dashboard showing visits over time and a visitor map of New Zealand

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 October 14, 2026 · 6 min · Roland Hill
The Jellyfin Live TV guide showing a grid of channels and programme schedules

Live TV in Jellyfin with NextPVR

How I run NextPVR alongside Jellyfin in a single LXC container to provide live TV, and how a one-line config setting broke every channel behind a generic transcoder error.

October 1, 2026 · Updated October 14, 2026 · 6 min · Roland Hill
The live comment box on a hillnet.co.nz post, showing one existing comment and a reply form

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 October 14, 2026 · 2 min · Roland Hill
Diagram of passkey SSO: browser to identity provider, then OIDC apps or nginx forward-auth

Passkey Single Sign-On for My Home Lab with Authentik

One passkey, one sign-in, thirteen admin interfaces. How I built single sign-on for my home lab with Authentik, which apps I left out on purpose, and why every app still has a break-glass way in.

October 9, 2026 · Updated October 14, 2026 · 9 min · Roland Hill