Skip to main content
  1. Tags/

NixOS

2025


The Immutable Linux Paradox

·1653 words·8 mins

Immutable Linux distributions are gaining popularity due to their resilience and security, with mainstream operating systems adopting similar principles.

This post explores how different Linux distributions achieve immutability, the trade-offs, and why you should give it a try!

From NixOS to Ubuntu

·3084 words·15 mins
This year, I moved from NixOS to Ubuntu. This post outlines my experience through that process, as well as a new philosophy for how I manage my machine and configuration which embraces the defaults and more contemporary applications.

Packaging the Multipass Flutter GUI for NixOS

·1599 words·8 mins
Multipass’ GUI application recently got a huge rework. Implemented in Flutter, the GUI provides a much improved way to manage VMs. This post outlines the work I did to update the Multipass package in nixpkgs to build and include the Flutter application, which should serve as a useful reference for anyone looking to package a native Linux Flutter application in with Nix.

2024


Experimenting with Rust, Nix, K6 and Parca

·6266 words·30 mins
A post outlining my journey into Rust, and how I reimplemented the server that powers this very website in Rust, then benchmarked both the old and new implementation with K6, investigated a performance issue with Parca and then automated the whole lot using Nix!

Hot Tub Monitoring with Home Assistant and ESPHome

·2126 words·10 mins
A short blog post explaining how I replaced a proprietary wireless temperature monitor for my hot tub, with a simple ESP32 based micro-controller and a cheap bluetooth pool thermometer, all linked up with Home Assistant.

Writing a Home Assistant Core Integration: Part 2

·3053 words·15 mins

Part 2 of a micro-series of blog posts that outlines my journey toward authoring a Home Assistant Core integration for the Roth Touchline SL heating system.

This post covers the actual build and upstream contribution of the Home Assistant Core integration.

Writing a Home Assistant Core Integration: Part 1

·3468 words·17 mins

Part 1 of a micro-series of blog posts that outlines my journey toward authoring a Home Assistant Core integration for the Roth Touchline SL heating system.

This first post covers the design and build of a Python API client for Roth’s upstream API that controls the underfloor heating systems.

Libations: Tailscale on the Rocks

·2567 words·13 mins
A deep dive into my home grown cocktail recipe app which speaks Tailscale natively using tsnet, and serves up delicious drinks direct to your tailnet. Libations is built with Go, Nix and Vanilla Framework.

Secure Boot & TPM-backed Full Disk Encryption on NixOS

·2887 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.

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.