<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Homelab on Matt Ellis</title><link>https://matt-ellis.dev/tags/homelab/</link><description>Recent content in Homelab on Matt Ellis</description><generator>Hugo</generator><language>en-GB</language><lastBuildDate>Sun, 12 Jul 2026 09:00:00 +0000</lastBuildDate><atom:link href="https://matt-ellis.dev/tags/homelab/atom.xml" rel="self" type="application/rss+xml"/><item><title>Why I moved my homelab off Docker Compose and into Terraform</title><link>https://matt-ellis.dev/posts/homelab-terraform/</link><pubDate>Sun, 12 Jul 2026 09:00:00 +0000</pubDate><guid>https://matt-ellis.dev/posts/homelab-terraform/</guid><description>&lt;p&gt;For about a year my homelab ran on a single docker-compose.yml file that kept growing until nobody, least of all me, wanted to touch it. Every new service meant another fifteen lines pasted from the last one, and every change meant hoping I remembered which container depended on which network.&lt;/p&gt;
&lt;p&gt;The breaking point was a Pi-hole restart that quietly took down the reverse proxy with it, because they shared a network alias I&amp;rsquo;d forgotten I&amp;rsquo;d set six months earlier. That&amp;rsquo;s the kind of bug that Terraform&amp;rsquo;s dependency graph is specifically built to catch before it happens, not after.&lt;/p&gt;</description></item><item><title>Notes on running a self-hosted GitHub Actions runner</title><link>https://matt-ellis.dev/posts/github-actions-runner/</link><pubDate>Sun, 28 Jun 2026 09:00:00 +0000</pubDate><guid>https://matt-ellis.dev/posts/github-actions-runner/</guid><description>&lt;p&gt;Self-hosted runners are one of those things that sound like pure upside until you&amp;rsquo;re three hours into debugging why a workflow that passes on GitHub-hosted runners silently fails on your own box.&lt;/p&gt;
&lt;p&gt;The economics are real though. If you&amp;rsquo;re running anything that hits the free tier limits, or if you need access to resources on your private network, a self-hosted runner pays for itself fast. Mine runs on the same Proxmox box as everything else, allocated 2 cores and 4 GB, and it handles CI for about six personal repos without breaking a sweat.&lt;/p&gt;</description></item></channel></rss>