2026-11-02
My 10-Inch Homelab Rack: Lenovo M720q, Raspberry Pis and UniFi in a 6U Lab Rax
A 10-inch rack lets you run real infrastructure — compute, networking, cellular backup — in a space that fits on a desk or a shelf. This is how I built mine around a Lenovo M720q running Proxmox and Raspberry Pi 5s, with UniFi networking and 3D-printed mounts holding it all together in a 6U Lab Rax frame.
What's Actually in the Rack
The rack is a 10-inch, 6U Lab Rax system. From top to bottom, it holds:
- UniFi Cloud Gateway Fiber — the router and UniFi controller
- UniFi USW Flex 2.5G 8 PoE switch — all ports PoE++, powering everything that takes PoE UniFi USW Flex 2.5G 8 PoE
- UniFi U5G — 5G cellular backup for WAN failover
- Lenovo ThinkCentre M720q Tiny — in a 3D-printed rack mount Lenovo ThinkCentre M720q Tiny
- Raspberry Pis — in a 3D-printed three-Pi rack mount
A UniFi U7 Pro XG access point sits outside the rack, powered by PoE from the same switch.
That's the whole lab. Six units, no wasted space.
The Lenovo M720q: Why a Refurbished Tiny PC
I paid £345 for the M720q refurbished in October 2026. That included 32 GB of RAM and a 1 TB Samsung PM9A1 NVMe — it came with Windows 11, which I wiped and replaced with Proxmox VE 9.2 (Debian 13 base).
The i5-9400T gives you six real cores at a 35 W TDP. There's one M.2 NVMe slot (occupied by the boot drive), one 2.5-inch SATA bay (empty — fits ~7 mm drives only), and a PCIe x8 slot available via an optional riser. Network is 1 GbE onboard (Intel I219-V); if you want 2.5 GbE, you'd need that PCIe riser plus a NIC.
Right now it runs an LXC Samba file server, an LXC Syncthing instance backing up phone photos (16 GB, 4,181 files), and a nightly pull-backup of the Pi that I've restore-tested.
Idle resources tell the story
Proxmox with those three services running uses 1.9 GB of RAM, leaving over 30 GB free. The CPU idles at 28 °C and only reached 39 °C after sustained load during benchmarks. That thermal headroom means I can keep stacking containers and VMs before I hit any limit.
The Raspberry Pi 5: Still Earning Its Keep
The Pi 5 (Model B Rev 1.1, 16 GB) boots from a Fanxiang S501Q 512 GB NVMe via the M.2 HAT on PCIe Gen 2. It runs Raspberry Pi OS / Debian 13 (trixie) and hosts 13 always-on services: trading bots, a content pipeline, monitoring, and a dashboard.
Power is PoE only from the switch — no wall PSU at all. I measured the 5V rail at 5.16 V with no undervoltage or throttle flags.
A lesson I learned the hard way: with the Pi on both PoE and its wall PSU, a breaker trip left it powered off when mains returned — the two sources raced on restore. Switching to PoE only fixed it. Now if I need to reboot the Pi, I just pull and re-insert the network cable and it boots by itself.
Idle temperature is 50.7 °C, rising to only 54.0 °C under sustained load. Not alarming, but noticeably warmer than the M720q.
Head-to-Head: Real Numbers from the Same Tests
I ran identical benchmarks on both machines — fio with 1M sequential and 4K random at QD32, direct I/O, 15 seconds each, plus the 7-Zip built-in benchmark. Here's what I got:
| Metric | Lenovo M720q (i5-9400T) | Raspberry Pi 5 | Ratio |
|---|---|---|---|
| Sequential read | 3,424 MB/s | 452 MB/s | 7.6× |
| Sequential write | 3,242 MB/s | 431 MB/s | 7.5× |
| Random 4K read (QD32) | 158,595 IOPS | 104,978 IOPS | 1.5× |
| 7-Zip single-thread | 5,473 MIPS | 4,463 MIPS | 1.2× |
| 7-Zip all-threads | 29,506 MIPS | 16,011 MIPS | 1.8× |
| CPU temp idle | 28.0 °C | 50.7 °C | — |
| CPU temp after load | 39.0 °C | 54.0 °C | — |
The sequential read gap is mostly the drive pairing — the Samsung PM9A1 on a full PCIe Gen 3 ×4 link versus the Fanxiang on the Pi's Gen 2 ×1. Random 4K is closer because at that block size, the NVMe controller matters more than raw bandwidth. CPU-wise, the M720q's two extra cores give it a clear multi-thread lead, while single-thread is only 23% ahead — the Cortex-A76 is a strong core.
Both machines sit on 1 GbE as configured, so network throughput is identical for now.
3D-Printed Rack Mounts
Both the M720q mount and the three-Pi mount were printed on a Bambu Lab P1S in PETG, using community designs downloaded from Bambu Lab MakerWorld (I didn't design them — credit goes to those communities). I didn't record the specific designer names or model links, print settings, infill, or print times.
Assembly is straightforward: nuts and bolts, no heat-set inserts. Everything clamps onto the 10-inch rack rails. The M720q mount holds the machine securely on its side; the Pi mount stacks three boards vertically in one rack unit.
PETG is commonly recommended for rack mounts because it handles heat better than PLA — most people print it around 230–250 °C with a 70–80 °C bed. I didn't do any formal strength or heat-deflection testing, but after months of continuous use with the machines running 24/7, nothing has sagged or deformed.
If you're assembling printed rack mounts, an assortment box of M3/M4 hardware saves repeated trips to the hardware shop: M3/M4 Metal Screw & Pin Assortment Box – 500 Pieces with Spanners.
The U5G: 5G Backup Internet
The UniFi U5G sits in the rack as WAN failover for the Cloud Gateway Fiber. If my fibre goes down, traffic routes through cellular automatically.
I haven't measured speeds, latency, signal strength, or failover time on my own connection — I don't have those numbers. What I can share from published specs: the U5G supports 5G RedCap (standalone only, no NSA) with LTE fallback, rated at up to 220 Mbps down / 120 Mbps up on 5G and 195 Mbps down on LTE. It has one Gigabit Ethernet port, powered by 802.3af PoE, and takes one nano-SIM or one eSIM (not both simultaneously).
One US reviewer testing on Google Fi with average indoor signal reportedly saw roughly 30–85 Mbps down and 1–3 Mbps up — well below the spec-sheet maximums. The U5G Max, which is a different and more expensive device, reportedly managed 300+ Mbps down in the same spot.
Practical notes from the wider community: turn off UniFi Automatic Speed Test if you're on a capped data plan, and switch cellular data off before changing SIMs. The U5G requires a UniFi gateway running Network 10.4.57 or later — it won't work with a third-party router. UniFi U5G Max
Who Should NOT Do This
- If you need raw compute density, a single mini-PC outperforms a Pi so heavily on multi-thread (1.8×) and storage (7.6× sequential) that running multiple Pis as a "cluster" for general workloads is hard to justify. A second refurbished TinyMiniM