The 35-Watt Roommate (Part 1): From Memory Hunger to Mini Powerhouse
It all started innocently enough. A little Jellyfin for the movie collection here, a small Gitea instance for my code there. My Synology DS223 handled the job without complaint. But once you get a taste for automating your own software pipeline, you quickly end up wanting a Gitea Runner. And that’s exactly where things went sideways.
When Memory Runs Out
One runner here, one build process there, and suddenly my NAS web interface was telling me we had a massive memory problem. 2 GB of RAM is no luxury resort for containers. It’s more like a studio apartment with a shared kitchen. As soon as the Gitea Runner kicked off a build, the system started gasping for air. The OOM killer came knocking.
The conclusion was obvious: I need a real server. But without solar panels on the roof, the usual second-hand server monsters with their 200-watt power supplies were out of the question. My requirements:
- Performance: Enough CPU and RAM for Docker containers, CI/CD runners, and media streaming.
- Efficiency: 35 watts max under load, so the electricity bill doesn’t become a second hobby.
- Price: Under 400 euros all-in, including upgrades.
- Form factor: Compact enough to fit next to the NAS in the server cabinet.
Big Power, Tiny Box
After nights of browsing r/homelab and various forums, I stumbled upon the quiet favorite of the home lab community: the Lenovo ThinkCentre M920q. An off-lease unit for just 160 euros. It’s barely larger than a box of chocolates, but it has everything you could want:
- A real PCIe slot (for future 10GbE adventures)
- Two RAM slots with room to breathe (up to 64 GB DDR4)
- An M.2 slot for high-speed storage
- An Intel Core i5-8500T with six cores that quietly get the job done
The Shopping List
| Component | Cost |
|---|---|
| Lenovo M920q (Refurbished) | 160 € |
| 32 GB RAM Upgrade (2×16 GB DDR4) | 100 € |
| 1 TB NVMe SSD (WD SN770) | 100 € |
| Original 8 GB RAM (sold on eBay) | −28.87 € |
| Original 256 GB M.2 SSD (sold on eBay) | −26.16 € |
| Total (net) | 304.97 € |
I sold the original components on eBay right away, bringing the total cost down to just under 305 euros. For that money you get a machine that delivers more performance per watt than many a tower server. And it’s quieter than the cooler box sitting next to it.
The Foundation: Proxmox, Docker & Portainer
I went with Proxmox VE as the operating system. My first order of business after installation: an Ubuntu Server VM with Docker and Portainer as the container management UI.
I immediately made a rookie mistake here: I installed the Portainer Community Edition (CE). Only after some digging did I find out that as a private user you can use the Business Edition (BE) completely free for up to three nodes. The BE offers access control, Git-based stack deployments, and automatic updates. All features you learn to appreciate as your setup grows. More features for zero euros? Yes please!
Tip: On the Portainer website you can grab a free BE license for up to 3 nodes. Just register and enter the license key during installation.
What’s Next?
The M920q is now humming away in my server cabinet, drawing just ~10 watts at idle, barely more than an LED bulb. Under full load it’s around 35 watts. But a server that only works behind closed doors is only half the fun.
In Part 2 I’ll show how I really put my fiber connection to work: what containers are running on the Lenovo and how I securely expose everything to the internet using Cloudflare Tunnels. For me and my friends, without any port forwarding on the router.
Stay tuned!