Why I Self-Host Everything
It started with a Plex server. That’s how it always starts, right?
You set up one thing, and before you know it you’re running 30 containers, writing Terraform configs for your home network, and explaining to anyone who will listen why you need another hard drive. Hi, I’m Lucas, and I have a homelab problem.
The Setup
Everything runs in Docker with Docker Compose. I tried Kubernetes at home once. Life’s too short. Compose gives me declarative config, easy updates, and I can actually debug things at 1 AM without wanting to throw my laptop out the window.
Traefik sits in front of everything as the reverse proxy. Automatic HTTPS via Let’s Encrypt, dynamic service discovery from Docker labels, and dashboard for when I inevitably forget what’s running on which port. It was a pain to set up the first time, but now adding a new service is just a few labels in the compose file.
labels:
- "traefik.enable=true"
- "traefik.http.routers.myapp.rule=Host(`myapp.crostamusic.com`)"
- "traefik.http.routers.myapp.tls.certresolver=letsencrypt"
That’s it. New subdomain, automatic HTTPS, done.
Infrastructure as Code (Yes, At Home)
I use Terraform to manage my infrastructure. “Isn’t that overkill for a homelab?” Absolutely. But here’s the thing. when I inevitably break something and need to rebuild, having everything codified means I can get back to a working state in minutes instead of hours of “wait, what was that config option again?”
It also forces me to document decisions. Every resource in Terraform has a reason for existing. That’s better documentation than any wiki I’d never maintain.
The Monitoring Stack
This is where it gets arguably excessive. I run the full Grafana + Prometheus + Loki stack.
- Prometheus scrapes metrics from everything. containers, the host, Traefik, you name it
- Loki aggregates logs so I can search them in one place
- Grafana ties it all together with dashboards
Do I need production-grade observability for my home network? No. Is it incredibly satisfying to see a dashboard light up when something happens? Yes. And honestly, running this stack at home has made me a better engineer at work. You develop an intuition for metrics and logging patterns that’s hard to get from just reading docs.
Home Automation
Home Assistant runs in its own VM and controls basically everything in the house. Lights, climate, presence detection. the usual smart home stuff. The real power is in the automations: lights that adjust based on time of day, climate control that responds to occupancy, and a morning routine that starts the coffee maker when my alarm goes off.
The integration with the rest of the homelab is where it gets fun. Home Assistant can see container health, network status, and system metrics. If a service goes down, I get a notification on my phone before I’d ever notice.
The Media Stack
I’ll keep this one brief: Sonarr, Radarr, Prowlarr, and friends. The arr stack automates media management, and it works beautifully. Combined with Plex, it’s the setup that started this whole journey.
Why Bother?
People always ask why I don’t just use cloud services. It’s a fair question. Here’s my honest answer:
Control. My data lives on hardware I own. Services I depend on can’t be shut down by a company pivoting to AI or getting acquired. My configs are version-controlled and reproducible.
Learning. I’ve learned more about networking, DNS, TLS, reverse proxies, and Linux administration from my homelab than from any course or tutorial. When you’re the sysadmin, every problem is a learning opportunity (whether you want it to be or not).
It’s fun. This is the part people underestimate. Tinkering with infrastructure, optimizing systems, building something that works exactly the way you want. it’s the same satisfaction I get from finishing a project. You’re creating something from nothing.
Cost. After the initial hardware investment, running services at home is essentially free. No monthly subscriptions adding up. No “oh, they raised prices again.”
The Honest Downsides
It’s not all uptime and clean dashboards. Self-hosting means:
- You’re on-call 24/7. When Plex goes down during movie night, there’s no support team to blame.
- Updates are your problem. Security patches don’t apply themselves (though Watchtower helps).
- Explaining it is hard. “Do you really need another container?” is a valid question.
But for me, the tradeoffs are worth it. There’s something deeply satisfying about owning your stack end-to-end, understanding every layer, and knowing that if something breaks, you have the knowledge to fix it.
If you’re on the fence about self-hosting, my advice: start small. One service, one container. See if you catch the bug. Fair warning. you probably will.
Related
- Using Terraform to Manage Your Home Network: how the homelab graduates from clicking through UIs to infrastructure as code
- Kubernetes Is Not the Answer for Everything: why Docker Compose is usually the right call at homelab scale
- Immutable Backups with Airgapper: consensus-based backups so no single point of failure can lose your data
- Tenant Portal: Building What Vendors Won’t: what happens when self-hosting bleeds into solving real-world problems