Home Lab NAS + Proxmox: Zero to Hero in 4 Hours
Your old PC gathers dust in the corner, its fans whirring uselessly while family photos rot on your phone and movie nights devolve into buffering hell. One power outage later, and poof—your irreplaceable backups vanish, leaving you scrambling through cloud storage fees that eat your wallet.
The Fastest Path to the Solution
Grab a refurbished Dell OptiPlex (like the 7060 with i7, 32GB RAM, ~$300 on eBay), slap in a 4-bay NAS like TrueNAS Scale 24.04, and virtualize with Proxmox VE 8.2 on a 10Gbe network. Total setup: 4 hours. Core stack: Proxmox host → TrueNAS VM (8 cores, 16GB RAM) → VMs for Plex, Home Assistant. Skip consumer NAS—self-host for control. Budget: $800. Outcome: 50TB redundant storage + isolated apps, accessible anywhere.
Full Walkthrough
Assess Your Hardware Needs
Before buying, audit what you have—I’ve resurrected many “dead” rigs this way.
- Check CPU: Needs VT-x/AMD-V. Run `lscpu | grep Virtualization` on Linux or CPU-Z on Windows.
- RAM: Minimum 32GB ECC (e.g., DDR4-3200). Allocate 16GB to NAS VM.
- Storage: 4x 8TB HDDs (Seagate IronWolf, ~$180 each) in RAIDZ1 via HBA card (LSI 9211-8i, $30 used).
- Network: 2.5Gbe NIC minimum; upgrade to Mellanox ConnectX-3 10Gbe ($20).
Pro Tip: Skip NVMe for bulk storage—HDDs are 10x cheaper per TB. Use a 500GB NVMe boot drive only.
Assemble and Prep the Hardware
Build like a server, not a gamer PC.
- Install HBA: Flash LSI to IT mode with `sas2flash` (download from Broadcom).
- Wire drives: SAS/SATA to HBA, no backplanes for beginners—direct cables reduce failure 30%.
- Add NIC: PCIe slot for 10Gbe. Boot to BIOS, enable VT-d/IOMMU.
Install Proxmox VE 8.2
Proxmox hypervisors beat VMware/ESXi for home labs—free, Debian-based, ZFS native.
- Download ISO from proxmox.com, burn to USB with Rufus.
- Boot, install to NVMe: Select ext4, set static IP (e.g., 192.168.1.100/24).
- Access web UI: https://192.168.1.100:8006. Create admin@pam user.
Post-install: Update and enable repos
apt update && apt full-upgrade -y pveam update echo “deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription” > /etc/apt/sources.list.d/pve-install-repo.list
Create TrueNAS Scale VM for NAS
TrueNAS Scale (Debian + ZFS) crushes Synology for power users—Kubernetes-ready.
- In Proxmox UI: Create VM → 8 vCPUs, 16GB RAM, 64GB virtio disk.
- Add PCI passthrough: HBA card to VM (Options → PCI Device → All Functions).
- Download TrueNAS Scale 24.04 ISO, attach to VM CD drive.
- Boot VM, install to virtio disk. Set IP 192.168.1.101.
In TrueNAS shell, post-install:
zpool create tank raidz1 /dev/sd[a-d] zfs set compression=lz4 tank zfs create tank/media zfs create tank/backups
Configure ZFS Pools and Shares
ZFS is your redundancy superpower—beats RAID cards.
- Web UI (192.168.1.101): Storage → Pools → Create RAIDZ1 with 4x8TB.
- Add datasets: `tank/plex`, `tank/backups` with quota=2TB.
- Shares: SMB for Windows (`smb://192.168.1.101/tank`), NFS for VMs.
Pro Tip: Scrub weekly—`zpool scrub tank`. It caught a failing drive for me after 6 months, saving 24TB.
Set Up Virtualization Workloads
Run apps in VMs/CTs—isolation > Docker sprawl.
- LXC Container for Plex: Proxmox → CT → Ubuntu 24.04 template, 4GB RAM.
“` pct exec 101 — apt install plexmediaserver # Mount: pct set 101 -mp0 /tank/media,mp=/mnt/media “`
- VM for Home Assistant: 4GB RAM, pass USB Zigbee stick.
- Network: Bridge vmbr0 to 10Gbe, VLAN 10 for lab traffic.
Secure and Network Everything
Don’t expose to WAN yet—I’ve seen labs hacked via UPnP.
- Router: pfSense VM or Ubiquiti UDM. VLANs: 10 (lab), 20 (IoT).
- Firewall: Proxmox `iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT`.
- Tailscale VPN: Install on Proxmox/TrueNAS for remote access.
“` curl -fsSL https://tailscale.com/install.sh | sh tailscale up –authkey=tskey-yourkey “`
Test and Optimize
Verify end-to-end.
- Copy 100GB: `rsync -av /local/ tank/backups/`. Expect 100MB/s on 2.5Gbe.
- Plex stream: 4K to phone via Tailscale.
- Backup: TrueNAS snapshots → Proxmox PBS (free backup server).
Comparison: Common Approaches
| Approach | Cost (4-bay) | Ease (1-10) | Performance | Scalability | Best For |
|---|---|---|---|---|---|
| TrueNAS Scale (Proxmox VM) | $700 | 7 | 10Gbe, ZFS | High (clusters) | Power users |
| Synology DS923+ | $900 | 9 | 2.5Gbe max | Medium | Set-it-forget-it |
| Unraid | $59 license + $600 hw | 8 | Good, parity | High | Media hoarders |
| OMV on bare metal | $500 | 6 | Variable | Low | Budget tinkerers |
| ESXi + FreeNAS | $500 | 5 | High | Medium | VMware fans |
TrueNAS wins for integration—I’ve migrated from Unraid twice.
Mistakes & How to Recover
Mistake 1: Passthrough fails. IOMMU groups wrong. Fix: `dmesg | grep IOMMU`, update BIOS, blacklist drivers (`echo ‘blacklist vfio’ >> /etc/modprobe.d/vfio.conf`).
Mistake 2: ZFS pool won’t import. Wrong IT mode on HBA. Recovery: `sas2ircu 0 DISPLAY` to verify, reflash.
Mistake 3: Network bottlenecks. MTU mismatch. Set 9000 on NICs: `ifconfig vmbr0 mtu 9000`.
The mistake I made first time? RAIDZ2 on 4 drives—too slow writes (40MB/s). Switched to RAIDZ1 + mirrors.
Real failure story: A buddy’s flood killed his basement NAS. Lesson: Offsite via Docker Zero-to-Hero: Build & Launch Your First App Fast container backups to cloud.
Advanced Techniques
- Ceph for hyper-converged: Distribute storage across 3 nodes. Start: `ceph osd pool create lab 128`.
- Kubernetes on TrueNAS: `kubectl apply -f plex-values.yaml` for Helm charts.
- GPU passthrough: For Plex transcoding. `qm set 101 -args ‘-device vfio-pci,host=01:00.0’`.
- Power tuning: `powertop –auto-tune` drops idle from 80W to 40W.
Link scripting skills via Git & GitHub Mastery: Zero to Pro Project in 1 Hour for IaC.
Wrapping Up
You now have a bulletproof lab: ZFS redundancy, virtualized apps, 10Gbe speed—all for $800. Key takeaways: Passthrough HBA early, test scrubs religiously, VLAN everything.
Challenge: Deploy a Pi-hole LXC this weekend, block ads lab-wide. Share your pool stats in comments—beat my 110MB/s rsync?