Running Open WebUI on a Raspberry Pi 4: it works, barely

Open WebUI is the nice chat interface for talking to AI models yourself — the thing that makes a local model feel like a product instead of a terminal window. I run it on my Pi 4. It works. It’s also the single biggest RAM hog on the box at around 800MB, which on 4GB is noticeable. This is the same Pi from the watchdog post, and it’s no coincidence. A hefty web app at 800MB plus everything else the Pi runs, on 4GB total — that’s the setup that used to wedge the machine every few weeks. The earlyoom configuration I wrote about exists largely because of this thing. ...

11 October 2026 · Headless Diaries

Backing up a homelab: configs, not media

Most homelab backup guides get this wrong: they tell you to back up everything, including terabytes of media you could just fetch again. That’s how backups never get set up — the job looks too big, so it stays on the to-do list forever. Back up the configs. The media is replaceable; the configuration isn’t. Once a week, a script on my mini PC grabs the config directories for the media stack — the *arr apps and Jellyfin. It excludes the live databases, logs and sockets (copying a live sqlite file is asking for corruption), then takes proper consistent snapshots of each database with sqlite’s own backup mechanism, and packs the lot into a tarball. About 350MB. Small enough to keep several copies without thinking about it. ...

11 October 2026 · Headless Diaries

My media automation stack: five services, zero babysitting

My mini PC has one main job: keeping the media library stocked and organised without me touching it. Five services, each doing one thing: Prowlarr — indexers in one place. Instead of configuring the same trackers separately in every app, they all go through Prowlarr. Sonarr — TV. Watches for new episodes of the shows I follow, grabs them, renames and files them properly. Radarr — the same thing for films. qBittorrent — the download client they all share. Jellyfin — the library front end. Open-source, no account needed, streams to everything in the house. The whole stack runs on an N100 mini PC. It’s total overkill for the job, which is exactly what you want in a server: quiet, sips power, and never breaks a sweat even when everything decides to grab at once. ...

11 October 2026 · Headless Diaries

Self-hosted text-to-speech with Kokoro: no cloud, no subscription

I got tired of cloud TTS for a home project. Every option was a subscription, a per-character API bill, or a voice that sounded like a 2012 satnav. So I set up Kokoro on my mini PC — a proper neural text-to-speech model running locally, and it sounds genuinely good. Kokoro is an open TTS model (Apache 2.0, 82M parameters). I run the full-precision ONNX export: about 340MB of model and voice data, served through ONNX Runtime on CPU. No GPU anywhere in the picture. On an N100 it renders speech faster than real time without getting warm. ...

11 October 2026 · Headless Diaries

I turned a Meta Portal into a voice-controlled home dashboard

The Portal Go sits in my kitchen. It’s a 10-inch touchscreen with a decent microphone and camera, and out of the box it’s mostly a video-calling device I barely used. Meta’s stopped making them, but that doesn’t matter much here: the app I sideloaded onto it would run on pretty much any Android tablet. If you’re starting from scratch, a Samsung Galaxy Tab A9+ or a Lenovo Tab M11 would do the same job — 10-11 inch screen, microphone, speaker, Wi-Fi. That’s the whole hardware requirement for the front end. ...

11 October 2026 · Headless Diaries