Hardware
This document outlines the hardware setup for our Homelab — a cluster designed for data platform hosting, AI workloads, home automation, and general experimentation.
Server Rack
All cluster hardware (except the UPS and developer laptop) is mounted in a DeskPi RackMate T1-Plus — a compact, open-frame desktop rack designed for mini-PCs and SBCs.
DeskPi RackMate T1-Plus
| Form factor | Desktop open-frame rack |
| Rack units | 6U |
| Compatibility | Mini-ITX, SBC clusters, 1U accessories |
| Source | DeskPi RackMate T1-Plus |
The T1-Plus sits on a shelf and holds the full cluster in a compact footprint. Its open-frame design provides good passive airflow across the SBCs and mini-PCs. Layout from top to bottom:
| Slot | Device |
|---|---|
| Top | CHUWI UBox (AMD64 worker) |
| 2nd | HORACO 2.5GbE Managed Switch |
| 3rd | OrangePi stack (4 boards on acrylic standoffs — control plane + 3 ARM64 workers) |
| 4th | CWWK X86-P5 (NAS + AMD64 worker) |
| Bottom | PDU / power strip |
The CyberPower UPS sits beside the rack on the same shelf.
Architecture
graph TD
Internet(["🌐 Internet"])
Router["Home Router"]
Tailscale["Tailscale VPN"]
Internet --- Router
Internet -. "zero-trust" .- Tailscale
Router -->|"1 GbE"| Switch["HORACO Managed Switch\n2.5GbE 8-port + 10G SFP+"]
Switch -->|"1 GbE"| CP["OrangePi 4 LTS\nControl Plane · 4 GB"]
Switch -->|"1 GbE"| W1["OrangePi 5B #1\nARM64 Worker · 16 GB"]
Switch -->|"1 GbE"| W2["OrangePi 5B #2\nARM64 Worker · 16 GB"]
Switch -->|"1 GbE"| W3["OrangePi 5B #3\nARM64 Worker · 16 GB"]
Switch -->|"2.5 GbE"| AMD["CHUWI UBox\nAMD64 Worker · 32 GB"]
Switch -->|"2.5 GbE"| NAS["CWWK X86-P5\nNAS + AMD64 Worker · 16 GB"]
Switch -->|"1 GbE"| Laptop["Developer Laptop\nWSL2"]
UPS["CyberPower UPS"] -->|"NUT · graceful shutdown"| NAS
Tailscale -. "remote access" .- Switch
The cluster has evolved over time as hardware was added and replaced. The current generation combines a lightweight ARM control plane with x86 mini-PCs as the primary compute workhorses.
- Control Plane — OrangePi 4 LTS (4 GB RAM)
- Hosts the K3s control plane; low resource requirements make it a good fit.
- Connected to the home network switch as the cluster entry point.
- ARM64 Workers — OrangePi 5B × 3 (16 GB RAM each)
- RK3588 SoC — 8-core ARM Cortex-A76/A55, integrated NVMe storage.
- Original worker nodes; suitable for lightweight and multi-arch workloads.
- AMD64 Worker — CHUWI UBox (AMD 6600H, 32 GB RAM)
- High-performance mini-PC; used for compute-heavy jobs (Spark, Trino, LLM inference).
- NAS + Worker — CWWK X86-P5 (Intel N305, 16 GB RAM, RAID 3×1TB HDD + 128 GB NVMe)
- Acts as the NFS file server and a Kubernetes worker simultaneously.
- RAID array provides bulk storage for media and backups.
- CyberPower UPS
- Protects the cluster against power outages and ensures a clean, graceful shutdown.
- Integrated with TrueNAS via the NUT protocol — when power is lost TrueNAS triggers a coordinated cluster-wide shutdown.
- Power metrics are exported via a Prometheus exporter and visualised in Grafana.
- HORACO 2.5GbE Managed Switch (8-port 2.5GBASE-T + 10G SFP+)
- The NAS (CWWK X86-P5) and the AMD64 worker (CHUWI UBox) both have 2.5GbE NICs and connect at full speed.
- OrangePi nodes connect at 1 GbE; port isolation ensures the NAS sustains 2.5 GbE throughput to multiple 1G clients simultaneously without bottlenecking.
- VLAN support segments cluster traffic away from the home router network.
- Developer Laptop (WSL2)
- Connected to the cluster over the local network; used as a dev/overflow worker node.
Networking
- Local Network
- All cluster nodes connect via the HORACO managed switch with static IP addresses configured at the OS level.
- The NAS and AMD64 worker run at 2.5 GbE; OrangePi nodes run at 1 GbE.
- VLANs isolate cluster-internal traffic from the home router network, preventing unnecessary broadcast traffic from reaching the rest of the LAN.
- Communication Flow
- Intra-cluster traffic stays on the local switch.
- External access is handled by Tailscale VPN — no port forwarding required.
- Traefik routes HTTP/HTTPS traffic to the correct services via IngressRoutes.
Storage
- SD Card / eMMC
- OS is stored on microSDXC Class 10 (OrangePi) or eMMC (mini-PCs).
- NVMe SSD
- Each OrangePi 5B has an internal NVMe SSD for data and Longhorn storage.
- The CWWK NAS has an additional 128 GB NVMe for fast metadata storage.
- RAID Array
- The CWWK NAS provides 3×1 TB RAID storage, shared via NFS for media and large files.
- Kubernetes Storage Services
- Longhorn provides distributed block storage across worker nodes.
- Garage provides S3-compatible object storage for the data lake and backups.
Hardware Components
The current hardware used in the cluster. The list has evolved since the initial setup — see Lessons Learned for context on hardware choices.
Servers
| Device | Specs | Role |
|---|---|---|
| OrangePi 4 LTS | 4 GB RAM, RK3399, microSD | Control Plane |
| OrangePi 5B × 3 | 16 GB RAM, RK3588, internal NVMe | ARM64 Workers |
| CHUWI UBox | AMD 6600H, 32 GB RAM | AMD64 Worker |
| CWWK X86-P5 | Intel N305, 16 GB RAM, 3×1 TB RAID HDD + 128 GB NVMe | NAS + AMD64 Worker |
Networking & Power
| Device | Notes |
|---|---|
| HORACO 2.5GbE Managed Switch 8-port + 10G SFP+ | 2.5 GbE to NAS and AMD64 worker; 1 GbE to OrangePi nodes; VLAN support |
| CyberPower UPS | Protects against power outages; NUT integration with TrueNAS for graceful shutdown; monitored via Prometheus + Grafana |