News

Project notes, lessons learned & history

Background on the tools I build, the ones I discover elsewhere, and other things I’m learning.

12 September 2026

Starting a Qube and its dependencies in Qubes OS

A howto for qvm-start-deps: a dom0 script that recursively starts a qube's declared dependencies (Split SSH vaults, service qubes, custom cross-qube relationships) before the target, using qvm-features as dependency tags.

Read more
5 September 2026

A private AI assistant over Signal

A walkthrough of building a private AI assistant over Signal - with conversation memory, an emoji-driven context reset, a sender allowlist, and a choice between local Ollama inference and a cloud API.

Read more
22 August 2026

Secure WebSocket push notifications from Node-RED

Pushing real-time updates to browser clients is easy. Doing it securely - with proper token auth, multi-tab support, and a clean fan-out - is less easy. This is a Node-RED flow that does all three, using a 'secure hello' pattern where the client sends a short-lived token after connecting.

Read more
15 August 2026

php-sqlcipher: encrypted SQLite for PHP, done properly

php-sqlcipher has been building drop-in SQLCipher-linked PHP packages since early 2013. What started as a sed-and-compile script is now a Docker + gvisor/runsc pipeline inside a QubesOS VM, tracking SQLCipher across PHP 7.4-8.5 and five Debian/Ubuntu releases.

Read more
8 August 2026

Why you should be using SysMD's GuardUtils

GuardUtils is a suite of four small Python CLIs by Marco D'Aleo (SysMD) that share a common philosophy: take the irreversible, mistake-prone commands every sysadmin runs daily and make them reversible, previewable, and fail-closed. chguard, mirro, resrm, and filedust each address a different jam.

Read more
25 July 2026

Wiring Enroll drift detection to Signal

When a server drifts, you want to know now - not the next time you run a compliance audit. This is a small Node-RED flow that catches Enroll diff webhooks, formats the changes into a readable summary, and sends it to your phone via Signal. Nine nodes, one honest security note.

Read more
18 July 2026

JinjaTurtle: turning config files into templates, safely

JinjaTurtle started as a quick way to turn TOML and INI files into Jinja2 templates and Ansible defaults. It now handles seven config formats, generates loops from repeated structures, and neutralises template metacharacters to prevent injection from harvested config.

Read more