The Open Source Stack That Runs My Homelab
A NUC, a NAS, and zero licence fees. The battle-tested open source stack that runs my homelab — from containers and DNS to dashboards and backups — and what each tool actually earns its place.
Every homelab starts with a hardware purchase and ends with a software religion. Mine is firmly open source: a NUC with 32GB of RAM, a NAS for storage, and a stack that costs exactly $0 in licences. Here’s what actually runs it — and the honest job description of each piece.
The foundation
- Debian — boring, stable, everywhere. If a package exists, it exists for Debian. The “boring” is the feature.
- Docker Compose — everything is a
compose.yaml. One file per service, onedocker compose up -dto resurrect the whole lab after a rebuild. Portability beats performance at this scale. - Nginx Proxy Manager — reverse proxy with a web UI for subdomains, automatic Let’s Encrypt certificates, and access lists. Twenty minutes to set up, zero maintenance since.
The daily drivers
- Home Assistant — the automation brain: lights, sensors, and a Zigbee dongle. It’s opinionated, but nothing else ties 30 random devices together this cleanly.
- Immich — Google Photos replacement for the family photo library. Face recognition, albums, timeline view — all self-hosted, all free. The killer app of modern self-hosting.
- Vaultwarden — a compatible Bitwarden server in a single container. Password manager for the whole household, syncs everywhere, weighs almost nothing.
- Paperless-ngx — document scanning, OCR, tagging, and search. Every bill and receipt in one searchable archive. The one service you’ll thank yourself for after tax season (IRD, I’m looking at you).
The glue
- AdGuard Home — network-wide ad and tracker blocking at the DNS level. Every device on the LAN gets cleaner, faster browsing with zero configuration per device.
- Uptime Kuma — uptime monitoring with a slick dashboard. It emails me the moment a service dies — usually before I’ve noticed the family has lost Plex.
- Grafana + Prometheus — metrics for the lab: CPU, disk, temperature, container health. The dashboard is also a great way to justify the whole hobby to guests.
- Duplicati — encrypted, deduplicated backups to an external drive and an off-site location. A homelab without backups is just a data-loss timer.
What I learned the hard way
- Pick boring, not shiny. Every service should have a clear job and a maintainer community that’s still alive. A dead project is a security hole with a logo.
- Pin your images.
image: service:v2.3.4, not:latest. One unattended update broke my setup for a weekend; now updates are deliberate, tested, and scripted. - Document as you go. A
README.mdper service (ports, volumes, restore steps) means a rebuild that used to take a weekend now takes an evening. - Watch the disk. Logs, container images, and database WALs eat space silently. A monthly
docker system pruneand a disk-usage alert in Grafana keep the NAS from filling up at 11pm.
The full bill
Hardware: one NUC, one NAS, a few SSDs — bought once. Software: $0. The services replaced: Google Photos, Bitwarden Premium, a VPN subscription, and roughly three SaaS dashboards.
Open source isn’t just cheaper — it’s yours. When a service misbehaves, you can read the logs, check the GitHub issues, and fix it yourself. That feeling doesn’t come with a licence fee.
Written by
JellyPuff Media
Editor-in-Chief
Auckland-based publisher covering AI, self-hosting and tech in New Zealand.
Keep reading
Related articles
Genuinely Free Tools That Beat Paid Alternatives
Not 'free trial' free — actually free. The password manager, photo backup, design suite, and analytics stack that are not just free but genuinely better than what you're paying for.
Building the Perfect NAS Dashboard with Homepage
Turn a wall of bookmarks into a living control room. Build a gethomepage.dev dashboard with live Docker container cards, resource widgets and a status board that actually updates.
Docker Compose for Real Life: The Stack That Never Breaks
Stop copying Compose files from blog posts and praying. Real-world patterns for healthchecks, volumes, restart policies and logging that keep a homelab stack alive for years.