← David Lorow
Featured Build

Proxmox Homelab

One machine, three workloads. A single-node Proxmox VE hypervisor consolidating a gaming desktop (with full GPU passthrough), a production-mirroring dev server for my SaaS, and a self-hosted media stack with VPN-enforced networking. The Proxmox host and every VM are on Tailscale, so the whole box is remotely accessible with zero exposed ports.

Proxmox VE VFIO / IOMMU WireGuard Tailscale Docker
Host Specs

One physical Ryzen box running everything below concurrently.

VM Loadout

Three guests running in parallel on the same host. Every one of them is on Tailscale, as is the Proxmox host itself.

Windows 11

GPU Passthrough

Full desktop virtualized with the RX 6700 XT passed through via VFIO/IOMMU, giving bare-metal graphics performance inside a VM.

vCPU4 / 24
RAM10 / 40GB
DISK1TB · dedicated NVMe
  • VFIO
  • IOMMU
  • OVMF/UEFI

Debbie

Media + Services

Debian VM running Jellyfin and always-on services, with a fail-closed WireGuard killswitch. If the VPN drops, traffic halts.

vCPU2 / 24
RAM2 / 40GB
DISK1TB · shared pool
  • Jellyfin
  • WireGuard
  • iptables

Reaper Dev

SaaS Staging

Mirrors my SaaS production environment, a three-container Docker stack, so builds and deploy scripts are tested before they touch CI/CD.

vCPU4 / 24
RAM4 / 40GB
DISK50GB · shared pool
  • Docker
  • Ubuntu
  • CI/CD
Overview

The goal was to replace a standalone gaming PC and several would-be cloud instances with a single machine running Proxmox VE, a Type 1 hypervisor built on KVM/QEMU. Everything below runs concurrently on one Ryzen 9 5900X with 40GB of RAM and two NVMe drives (1TB dedicated, 2TB shared pool).

Windows 11: GPU Passthrough VM

The hardest problem in this build was giving a VM true graphics performance. Consumer GPUs can't be shared between host and guest, so the RX 6700 XT is handed exclusively to the Windows VM using VFIO:

The result is a "desktop" that performs like bare metal but lives alongside server workloads, and can be snapshotted or rebuilt like any other VM. One fun failure mode this surfaced: Windows Boot Manager once hijacked the UEFI boot order and knocked the whole hypervisor offline, a good lesson in why guest OSes should never share boot priority with the host.

"Debbie": Debian Services VM

A lightweight Debian VM (2 cores, 2GB RAM, 1TB storage) running the always-on services:

The 2GB allocation was deliberate: these are I/O-bound services, and keeping the footprint small leaves headroom for the other guests.

Resume Reaper Dev Server

A 4-core / 4GB VM that mirrors the production environment of my SaaS (a DigitalOcean droplet running a three-container Docker stack: main API, PDF generation engine, and a usage-billing microservice). Having a production-like environment locally means I can test container builds, compose changes, and deployment scripts before they ever touch CI/CD, without paying for a staging droplet.

Resource Allocation
GuestvCPURAMStorageRole
Windows 11410GB1TB (dedicated NVMe)Desktop/gaming, GPU workloads
Debbie (Debian)22GB1TBMedia + services
Reaper Dev44GB50GBSaaS staging
Proxmox hostremainderremainder2TB poolHypervisor

CPU is intentionally not fully committed. The 5900X's 24 threads leave room for host overhead and future guests, and none of the workloads peak simultaneously.