In today’s world of SaaS everything β where every tool comes with a monthly subscription πΈ β I often find myself asking: “Why pay for all of this when powerful, open-source alternatives exist? π§” Having worked with open-source software from the very beginning of my career, I’ve always believed that owning your data and infrastructure is the way forward. ποΈ
For a long time, I dreamt of building my own NAS (Network Attached Storage) ποΈ. Like many hobbyists, I started with the world’s tiniest computer β the Raspberry Pi π₯§. I paired it with open-source NAS operating systems like TrueNAS and OpenMediaVault, experimenting for a few years. But while these setups were fun and educational, they fell short when it came to performance and reliability. β‘οΈβ
Eventually, I realized that what I truly needed was a dedicated, energy-efficient, and stable machine with built-in RAID support. After weighing the pros and cons of building a custom PC (spoiler: high power consumption was a deal-breaker πβ‘οΈ), I turned to pre-built NAS systems.
That’s when I found the sweet spot: Synology π. With its own battle-tested OS, native support for RAID, and the ability to run Docker containers out-of-the-box, it ticked all the boxes. I finally landed on the Synology DS923+, a powerful 4-bay NAS that’s capable of not only storing my data, but running my self-hosted stack β from media servers to music libraries, all without depending on third-party cloud services. βοΈπ«
π§± Building the Stack: What I’m Running on My Synology NAS
Once my Synology DS923+ was up and running, the next challenge was clear: How do I bring all the self-hosted pieces together? Thankfully, Synology’s built-in support for Docker (via the Container Manager package) gave me a solid launchpad.
I quickly realized I needed more control and visibility over my containers β and that’s where Portainer came in.
π§© Stack Overview
Here’s a look at what powers my self-hosted ecosystem:
β Portainer: My Container HQ
The very first thing I deployed was Portainer, a lightweight container management UI that makes spinning up and managing Docker stacks incredibly simple.
Rather than writing and tweaking endless docker-compose.yml
files via SSH, Portainer gives me a clean web UI to manage containers, volumes, networks, and even registries β all from the browser.
π₯οΈ SSH Access (I live in the terminalβso SSH access was non-negotiable.)
Of course, I couldn’t resist enabling SSH access to my NAS. While Portainer handles most container lifecycle tasks, I often find myself jumping into the terminal for:
- Troubleshooting logs
- Volume mounts and permissions
- One-off container commands
- Syncing with external storage (e.g.
rsync
,rclone
)
π Tailscale: Zero-Config VPN
To securely access my self-hosted stack from anywhere in the world, I set up a Tailscale VPN node on my NAS.
π My Current Stacks in Portainer
π ** What’s Next in the HaaS Series?**
This post is just the beginning! In my HaaS: Homelab as a Service series, I’ll be diving deep into my own homelab journeyβsharing how I set up each open-source, self-hosted stack, one service at a time. From media servers to automation tools, I’ll break down the why, the how, and the lessons learned along the way.
π Stay tuned if you’re curious about building your own private cloud, want to take control of your data, or just love tinkering with open-source tech!
Feel free to leave a comment or reach out if there’s a particular stack or topic you’d like to see covered next. Let’s build our homelabs together! π‘π»π