← projects
Home Lab

Home Lab

Builder & Operator

2007 — present

4 servers · 88 CPU cores · 800GB RAM · 64GB VRAM

ProxmoxHP ProLiantNVIDIA V100GrafanaClickHouseOpenTelemetryWireGuardHome AssistantFrigateDockerOpenWrt
2x DL380 G7 (24 cores each, 144GB RAM)
1x DL380 G9 (44 cores, 384GB RAM, 2x V100 32GB)
1x Mini PC (Home Assistant + Frigate)
Full observability stack

Why a home lab?

Cloud is fine until the AI box is on all day and the bill is the project. I run Rivet here, try local models, keep my own graphs, run the house. I want the hardware, the data, and a bill I can predict.

The stack cost under $3,000. Enterprise-surplus HP ProLiants. eBay and patience.

The servers

pve1 and pve2, DL380 G7. Two-node Proxmox. We called them CORTANA and JARVIS during a zero-downtime IP move. Dual Xeons, about 144GB RAM, mirrored SSDs each. pve1 has infra LXCs: monitoring, Postgres, canary agents. pve2 has the Rivet mesh, Opus, Grok, Gemini, local, plus CI and old archives.

pve3 / GERTY, DL380 G9. Dual E5-2699 v4, 44 cores, 384GB RAM, two Tesla V100 32GB. vLLM for Deckard-40B, embeddings, anything that wants tensor cores. Driver 580.x, CUDA 12.8. Full 240V PDU check is still on the list.

Mini PC: Home Assistant and Frigate, Coral TPU. Cameras and the house.

Networking

OpenWrt on a Linksys WRT3200ACM. WireGuard back to the production box and phones. Flat 10.4.20.0/24. Servers static, clients DHCP. Names like rivet.home, grafana.home, cam-driveway.home.

philtompkins.com comes back over WireGuard so monitoring can scrape it. DDNS keeps the VPN endpoint alive when the home IP moves.

Monitoring

One container: Grafana, ClickHouse, OpenTelemetry Collector. Node exporters on every host. iLO exporters on the G7s for fans, temps, watts.

Logs to Loki. Alerts to Discord. The stack sits on about 4GB of RAM.

Smart home

Home Assistant: Tesla charging through Fleet API and a self-hosted auth proxy, ecobee, Frigate cameras, an Eufy lock, a Bambu. Seven automations. Charge schedule, welcome home, battery.

Frigate on the mini PC with a Coral USB. Driveway and front door, 24/7, record on motion, Discord if it sees a person or a car.

GPU compute

The V100 pair is local inference through vLLM / 1Cat-vLLM. Volta is picky about FP8 and compressed-tensors. W4A16 and speculative decoding are what actually work. Eval artifacts live on shared storage so Rivet can compare runs without pulling weights again.

Later: local embedders for RivetOS memory, more eval harnesses on CT114, less cloud spend on batch jobs.

What's next

X5690s for pve1 when they show up. 240V PDU for the GPUs. More local model work. Tesla Solar Roof if I ever want to offset the draw. A DL380 G11a with H200s is the fantasy. A few product cycles away.