Skip to main content



Workstation VMs with LXD & Multipass

·2259 words·11 mins
An overview of Multipass and LXD, and how I use them for creating, managing and enjoying virtual machines on my workstations and servers. I use Multipass for creating ‘headless’ development machines, and I break out to LXD for more complex scenarios like booting and testing desktop distributions.

Secure Boot & TPM-backed Full Disk Encryption on NixOS

·2809 words·14 mins
An explanation of how to enable secure boot on NixOS, using a community project named ‘Lanzaboote’, and further how to automatically unlock a LUKS-encrypted disk using a TPM with systemd-cryptenroll.

Simplifying Test & Release of Snapped GUI Apps

·1449 words·7 mins
The community-led organisation Snapcrafters maintains hundreds of Snap packages, with hundreds of thousands of users. This post looks at an upgraded test/release process with automated screenshotting of GUI apps, and a new Github Actions based workflow.

A homelab dashboard for NixOS

·2101 words·10 mins
The homepage-dashboard NixOS service previously enabled the deployment of the wonderful homepage dashboard, but its configuration was not handled natively in Nix by the module. This post shows how I added support for native configuration, and how you can migrate.

Contributing Scrutiny to nixpkgs

·2216 words·11 mins
A follow on from my last post, outlining the process of upstreaming Scrutiny to nixpkgs to make it easier to consume, and have it included in future NixOS releases.

Packaging Scrutiny for NixOS

·3477 words·17 mins
A detailed walkthrough how I packaged Scrutiny, a S.M.A.R.T disk monitoring tool, for NixOS. Includes details of creating a NixOS module and using the NixOS testing framework to validate its functionality.

Building a blog with Go, Nix and Hugo

·1575 words·8 mins
Documenting how I render, serve, build and deploy my personal website and blog using a combination of Go, Hugo, Nix and


Continuous Profiling for Juju with Parca

·2464 words·12 mins
(Repost) A write-up of my adventures with Parca, and building a Snap package, as well as a set of charms for driving Parca and profiling applications run with Juju on machines and Kubernetes.


Zero-Trust SSH on Microsoft Azure

·1580 words·8 mins
(Repost) Building a zero-trust, serverless authentication system for SSH on Microsoft Azure, complete with custom ssh-agent and serverless certificate authority.