Breaking

About This Homelab Build

About This Build

A Homelab Built From Scratch, Documented As It Happened

Every post here reflects how it actually happened — built, broken, debugged, and rebuilt.

The Project

This blog documents a self-hosted home media server built on TrueNAS Community Edition, running a full Docker-based media automation stack. Everything covered here was built, broken, debugged, and rebuilt — the posts reflect how it actually happened, not a polished tutorial written after the fact.

The goal was a fully automated pipeline: request a movie or TV show, and it appears in Plex without any manual steps. Along the way that meant solving real problems — VPN kill switches, Cloudflare tunnel quirks, iptables race conditions, and config files that overwrite themselves on shutdown.

Why Write It Down

Most homelab write-ups skip the parts that actually cost time — the silent permission failure, the container that “works” until a reboot, the config that only breaks under load. This is a record of those parts too, written close to when they happened so the debugging steps are still accurate.

If you’re building something similar, the guides is the running log, and the guide below is the best place to start.

The Stack

What’s actually running under the hood

🗄️

Storage

TrueNAS Community Edition, ZFS pool, NFSv4 ACLs on every app dataset.

📦

Containers

Everything runs in Docker, managed through Dockge.

🔒

VPN

ProtonVPN via Gluetun, with a full kill switch on the download clients.

📡

External Access

Cloudflare Tunnel + Traefik. No ports forwarded on the router.

🔐

SSO + 2FA

Authentik with mandatory TOTP across every service, one login, one session.

🎬

Media Automation

Radarr, Sonarr, Prowlarr, SABnzbd, qBittorrent, Plex, and Seerr — request to playback, no manual steps.

Start Here

You missed