Let me tell you a story about how a simple desire to watch my own movies without paying for a dozen streaming services turned into a full-blown infrastructure project that now runs 24/7 in my closet.
The Beginning: "I Just Want to Watch My Movies"
It started innocently enough. I had a collection of movies and TV shows on an external hard drive, and I was tired of plugging it into my laptop every time I wanted to watch something. A quick Google search led me to Jellyfin, a free and open-source media server.
"This is easy," I thought. "I'll just install this on an old laptop and stream to my TV."
That was my first mistake.
The Slippery Slope
Jellyfin worked great. Too great. Suddenly I was thinking, "Wouldn't it be nice if new shows just... appeared automatically?" Enter Sonarr and Radarr. These tools monitor for new episodes and movies, then automatically download them.
But wait, I needed a way to search for torrents. That's where Prowlarr came in. And I definitely needed to protect my downloads with a VPN. So qBittorrent got added with Gluetun for VPN tunneling.
Before I knew it, my "simple media server" looked like this:
services:
jellyfin:
sonarr:
radarr:
prowlarr:
qbittorrent:
gluetun:
bazarr: # for subtitles
overseerr: # for requests
tautulli: # for statistics
# ... and it kept growing
The Great Migration: Ubuntu to TrueNAS SCALE
I ran everything on Ubuntu with Docker Compose for months. It worked, but managing storage was becoming a pain. I had drives scattered everywhere with no redundancy. One dead drive would mean losing years of content.
That's when I discovered TrueNAS SCALE. It's essentially a NAS operating system with native Docker support. The killer feature? ZFS. A filesystem that handles redundancy, snapshots, and data integrity automatically.
The migration was... educational. I learned more about Linux permissions in one weekend than I had in the previous year. But once it was done, everything just worked better.
The Current Stack
Here's what's running in my homelab today:
Media
Jellyfin for streaming, the *arr suite for automation (Sonarr, Radarr, Lidarr, Readarr, Prowlarr), Bazarr for subtitles, and Overseerr for requests.
Infrastructure
Cloudflare Tunnel for remote access without opening ports, Tailscale for VPN access to my home network, and Nginx Proxy Manager for routing.
Monitoring
This is where it gets fun. I built a custom AI monitoring system called "Kai" that watches everything and sends me Telegram alerts. It tracks container health, disk usage, download speeds, and more.
Utilities
Portainer for container management, Uptime Kuma for monitoring, Homepage for a dashboard, and about a dozen other tools I've added "just in case."
Lessons Learned
If you're thinking about starting a homelab, here's what I wish I knew:
Start simple. Don't try to build everything at once. Get one thing working, then add the next. My biggest headaches came from trying to do too much too fast.
Document everything. Write down what you did and why. Future you will thank past you when something breaks at 2 AM and you can't remember how you configured that container.
Backups aren't optional. I learned this the hard way. Now I have automated backups of all my configurations, and my ZFS pool has enough redundancy to survive a drive failure.
The rabbit hole is real. What starts as "I just want to watch movies" becomes "I need to learn about reverse proxies and container orchestration." Embrace it.
What's Next?
I'm currently learning web development so I can build custom dashboards and tools for my homelab. The goal is to eventually have a unified interface for managing everything, built by me, for me.
That's probably another 30 containers waiting to happen.
If you're interested in starting your own homelab journey, stay tuned. I'll be documenting the process, the mistakes, and hopefully some wins along the way.
See you in the next one.