DeclinedStudios
← All devlogs

I Turned My Gaming PC Into a Proxmox Node — and Got the Games Back Through a Stream

Aug 21, 2026· 5 min read ·Homelab

For years my homelab ran on a three-node Proxmox cluster, which sounds impressive until you learn that one node did all the work and that node was built in 2011. ClusterD — an i7-2600K old enough to have opinions about Minecraft beta — was carrying the databases, my AI assistant Luna, her camera, an image generator, and every dev box I own. I had promised that machine's tenants roughly 69 CPU cores. It has 8. That's not virtualization, that's subletting.

In August it crashed twice in one day and took an overnight AI training run with it. Meanwhile, under my desk, a Ryzen 3700X gaming PC with an RTX 2070 Super sat around holding 900 GB of games I wasn't playing. You can see where this is going: the gaming PC becomes the server, and the games come back as a stream.

The plan (write it down first, seriously)

Before touching a screw I wrote a plan, a runbook, and a checklist. The short version: the gaming PC becomes devbox, a fourth Proxmox node — that's an operating system whose entire job is running other computers inside it. It gets both good graphics cards: the RTX 2070 Super handed exclusively to a Windows VM via GPU passthrough — VFIO, the trick where you tell Linux a card doesn't exist so Windows can own it completely — and the RTX 3060 (pulled out of the old server) shared by the AI stuff. Every service moves over. The 2011 machine keeps only the databases and retires to a quiet life. And an idle mini-PC leaves the cluster to become my actual desktop, which will stream the Windows machine over Moonlight when I need it — Netflix, except the show is my own PC in a rack.

Proxmox web UI showing the devbox node running six Linux containers, the Windows VM, and its storage pools
The new node, post-move: six Linux containers, one Windows VM with its own GPU, and a stack of storage. All of this used to live on a machine from 2011.

Moving day: eight computers, one command each

Here's the part that still feels like cheating. Each service lives in a container — think of it as a computer in a box — and Proxmox moves a box between physical machines with one command: pct migrate. The AI models, the search engine, the box that runs a client's production site — each one packed itself up, travelled across the network, and woke up on the new machine with the same address, like a fish tank moved between houses without the fish noticing. The image generator took 67 minutes because it hoards 198 GB of models. The funniest one was the container running the AI coding assistant that was helping with the migration — moving it kills it, so it wrote me a step-by-step "here's what YOU type" doc, I ran its own migration from my desk, and it came back up on the other side and read its own instructions.

The part where the hardware fights back

Software moves were boring (good). Hardware was not. Highlights from the incident log:

Moving the 3060 into the new machine renumbered every address on the motherboard — five boots with no network, because the network card was suddenly living at a different address and nothing had been told. Worse: the Windows VM's graphics card was assigned by address too, and at its old address there was now the disk controller. Had that VM auto-started, it would have yanked the hard drives out from under the running server. It didn't, barely. Everything is pinned by name and ID now, and the runbook has a new commandment.

Also in the collection: a BIOS setting where "Auto" secretly means "Off", a graphics card that is secretly four devices in a trenchcoat and all four must be handed to the VM together, and a GPU whose firmware couldn't produce a boot screen until I fed it a cleaner copy of its own brain downloaded from the internet. Every one of those is now one line in the runbook.

nvidia-smi on devbox showing ComfyUI and two Ollama model servers sharing the RTX 3060
The 3060 earning its keep on the new node: the image generator and two AI model servers sharing one card.
ComfyUI's node graph running on the migrated container
ComfyUI, the 198 GB tenant, back on the air after its 67-minute move.

The genuinely hard one: headless game streaming

Moonlight streaming from Apollo (a fork of Sunshine) worked perfectly — as long as a monitor was plugged into the server. Unplug it and the stream went black, because Windows, reasonably, refuses to draw a desktop nobody is looking at. The modern fix — Apollo's built-in virtual display driver — turned out to need a Windows newer than the ancient 1903 image I'd installed. The actual fix was gloriously old tech: usbmmidd, a fake USB monitor driver from the pre-modern era, convinces Windows that a 1080p screen exists; VB-Audio's virtual cable convinces it that speakers exist; and the 2070 Super does the real rendering and NVENC video encoding like nothing happened. Auto-logon, two scheduled tasks, reboot-tested, cold-boot-tested. The machine now boots headless in a rack, hallucinating a monitor, and streams games to my little Linux desktop beautifully.

Aftermath: the quiet victory lap

The old server's load average went from 672 (a number that means "send help") to 0.4. The cleanup also caught the silent stuff that hurts you six months later: the backup job was pinned to the old node and had been politely skipping every machine that moved — no error, no backups. Fixed, plus a weekly copy to the NAS.

Live terminal-style dashboard for devbox: 16 threads barely busy, RTX 3060 loaded with models, all containers running
devbox on the live monitor: sixteen threads mostly napping, GPU loaded with AI models, six containers happy.
ClusterD's live monitor reporting HEALTHY — nothing is bogging ClusterD down
And the 2011 machine, now a quiet database box. The monitor's verdict says it all: "Nothing is bogging ClusterD down." First time in years.

Would I do it again?

Yes, and faster, because the notes exist now. The software part of moving eight computers was almost boring; everything that hurt was hardware telling the truth in its own dialect. Net result: the real workloads run on a machine from this decade, the old node hums along at 4% CPU, my desktop is a tiny Linux box that borrows a real GPU when it needs one — and the games still work.

The gaming PC didn't retire. It got promoted.

Enjoy watching other people's servers suffer? We turned exactly this hobby into Silicon Pirates, a browser game about running racks like these. And if you'd rather someone else eat the five failed boots — homelab and server builds are one of the things you can hire us for.