What
A repurposed desktop PC running Proxmox VE 8.x as a bare-metal hypervisor. It hosts all the VMs and LXC containers that make up the rest of my homelab — routers, monitoring stacks, an EVE-NG appliance, and utility servers.
Hardware:
- CPU: Intel Core i7-8700 (6c/12t)
- RAM: 32 GB DDR4
- Storage: 512 GB NVMe (OS + VM disks) + 2 TB HDD (backups)
- NIC: Intel I350-T2 dual-port (one for LAN, one for management VLAN)
Why
Running everything on bare metal is inflexible — you rebuild the OS if you break something. Proxmox gives me fast snapshots, easy rollback, and the ability to clone environments for testing. It also mirrors what I see at work: production ISP infrastructure is almost entirely virtualized.
How
- Installed Proxmox VE from USB onto the NVMe drive.
- Configured a dedicated management VLAN (VLAN 99) on a separate interface so the Proxmox web UI is isolated from lab traffic.
- Set up a local ZFS pool on the HDD for VM backups (Proxmox Backup Server is a future upgrade).
- Created VM and CT templates:
- Debian 12 (minimal, cloud-init ready) — base for all Linux VMs
- Alpine Linux — for lightweight containers
- Windows Server 2022 — for AD lab (not always running)
# Example: clone a template and start a new VM
qm clone 9000 101 --name router-test --full
qm start 101
Challenges
- PCIe passthrough for the dual NIC required IOMMU groups that didn’t align well; ended up using a managed switch with 802.1Q trunking instead.
- Noisy fans — the stock CPU cooler sounds like a jet at full load. Installed a Noctua NH-U12S and it’s silent now.
- Power — the box idles at ~65 W, which is acceptable but I’d like to move to a mini-PC in the future.
Tech Used
| Component | Tool |
|---|---|
| Hypervisor | Proxmox VE 8.x |
| VM OS | Debian 12, Alpine 3.19 |
| Storage | local-lvm (NVMe), ZFS (HDD) |
| Networking | Linux bridges + 802.1Q VLANs |
| Automation | Ansible (playbooks for provisioning) |