← Series

A spare MacBook as a home server
How I turned a spare MacBook into the most useful infrastructure I own: how I reach it with no public address, the background jobs that run my week, the media stack and what I deleted, one dashboard that makes it usable, and the local model, monitoring, and backups that let me trust it.
Part 112 minPart 215 minPart 316 minPart 412 minPart 515 minPart 616 min
Why my home server runs on a spare MacBook
Running a MacBook home server on spare Apple Silicon? See how Tailscale, Caddy, and OrbStack power 25 self-hosted services with no public IP.
How I reach a home server with no public address
No open ports, no public IP, but real hostnames and a trusted TLS cert. Here is how Tailscale, DNS-01, and Caddy make it work.
Running background jobs on macOS with launchd
How to run launchd scheduled jobs on macOS: plist patterns, Full Disk Access pitfalls, and the C launcher trick that survives every redeploy.
Building a self-hosted media stack (and what I deleted)
Running a self-hosted media stack is more integration work than install. Here is how I wired Jellyfin, Sonarr, Radarr and friends, and what I deleted.
Making a home server usable with one dashboard
How a self-hosted dashboard called Glance turned a pile of containers into something a whole household uses from a single browser tab.
Trusting a home server: a local model, monitoring, and backups
How I set up home server monitoring with Gatus, Uptime Kuma, and Beszel, ran a local LLM for private data, and built nightly rsync backups I actually test.