<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Posts on Headless Diaries</title><link>https://headlessdiaries.com/posts/</link><description>Recent content in Posts on Headless Diaries</description><generator>Hugo</generator><language>en-gb</language><lastBuildDate>Sun, 11 Oct 2026 12:20:00 +0000</lastBuildDate><atom:link href="https://headlessdiaries.com/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Running Open WebUI on a Raspberry Pi 4: it works, barely</title><link>https://headlessdiaries.com/posts/open-webui-raspberry-pi/</link><pubDate>Sun, 11 Oct 2026 12:20:00 +0000</pubDate><guid>https://headlessdiaries.com/posts/open-webui-raspberry-pi/</guid><description>Open WebUI gives you a ChatGPT-shaped interface for local AI models. On a 4GB Pi it runs — and eats a fifth of your RAM doing it.</description></item><item><title>Backing up a homelab: configs, not media</title><link>https://headlessdiaries.com/posts/homelab-backup-configs-not-media/</link><pubDate>Sun, 11 Oct 2026 12:15:00 +0000</pubDate><guid>https://headlessdiaries.com/posts/homelab-backup-configs-not-media/</guid><description>Don&amp;#39;t back up terabytes of replaceable media. Back up the configs and databases — that&amp;#39;s the part you can&amp;#39;t re-download.</description></item><item><title>My media automation stack: five services, zero babysitting</title><link>https://headlessdiaries.com/posts/media-automation-arr-stack/</link><pubDate>Sun, 11 Oct 2026 12:10:00 +0000</pubDate><guid>https://headlessdiaries.com/posts/media-automation-arr-stack/</guid><description>Sonarr, Radarr, Prowlarr, qBittorrent and Jellyfin on a mini PC: the set-and-forget media pipeline that keeps the library stocked.</description></item><item><title>Self-hosted text-to-speech with Kokoro: no cloud, no subscription</title><link>https://headlessdiaries.com/posts/kokoro-selfhosted-tts/</link><pubDate>Sun, 11 Oct 2026 12:05:00 +0000</pubDate><guid>https://headlessdiaries.com/posts/kokoro-selfhosted-tts/</guid><description>Running Kokoro, an open neural text-to-speech model, on a mini PC. Faster than real time on CPU, zero per-sentence cost, and none of your chatter leaves the house.</description></item><item><title>I turned a Meta Portal into a voice-controlled home dashboard</title><link>https://headlessdiaries.com/posts/muse-board-portal-dashboard/</link><pubDate>Sun, 11 Oct 2026 10:40:00 +0000</pubDate><guid>https://headlessdiaries.com/posts/muse-board-portal-dashboard/</guid><description>A Meta Portal Go sideloaded with a custom app: thin client up front, Raspberry Pi bridge in the middle, mini PC doing text-to-speech. All on the LAN.</description></item><item><title>My Raspberry Pi Kept Hanging. Now It Recovers By Itself.</title><link>https://headlessdiaries.com/posts/pi-watchdog-earlyoom/</link><pubDate>Sun, 11 Oct 2026 08:30:00 +0000</pubDate><guid>https://headlessdiaries.com/posts/pi-watchdog-earlyoom/</guid><description>A Raspberry Pi 4 that needed a power cycle every few weeks now recovers from hangs on its own, using the built-in hardware watchdog and earlyoom. Here is the setup I used.</description></item><item><title>Reaching My Home Network From Anywhere With Tailscale Subnet Routing</title><link>https://headlessdiaries.com/posts/tailscale-subnet-router/</link><pubDate>Sat, 10 Oct 2026 10:30:00 +0000</pubDate><guid>https://headlessdiaries.com/posts/tailscale-subnet-router/</guid><description>Tailscale subnet routing lets you reach every device on your home LAN — printers, dashboards, a NAS — from anywhere, through one always-on machine. It took me five minutes to set up.</description></item><item><title>Sideloaded Android Apps Don't Update Themselves. I Fixed That.</title><link>https://headlessdiaries.com/posts/android-ota-self-updater/</link><pubDate>Fri, 09 Oct 2026 10:30:00 +0000</pubDate><guid>https://headlessdiaries.com/posts/android-ota-self-updater/</guid><description>Apps installed outside the Play Store have no update mechanism. This is the self-updater I built into a sideloaded Android app: version polling, HTTPS download, SHA-256 verification, PackageInstaller.</description></item></channel></rss>