My Entire Home Lab &
Automation Ecosystem
Over the past year I've built out a complete home lab and smart home ecosystem โ not from a single kit or guided tutorial, but piece by piece, project by project. This post is the overview: what everything is, how it connects, and why I built it the way I did.
Each section below gets its own deep-dive post with real screenshots and config details. This is the map before the individual journeys.
In this post
๐ฅ๏ธ The Foundation โ Proxmox on HP Mini PCs ๐ก The Network โ Unifi U7 Pro + VPN ๐ซ DNS & Ad Blocking โ Pi-hole ๐ Smart Home โ Tiasha Home on Home Assistant ๐ Monitoring โ Grafana + InfluxDB ๐ค The Glue โ Claude AI throughout๐ฅ๏ธ The Foundation โ Proxmox on Two HP Mini PCs
Everything runs on two HP EliteDesk mini PCs, each with an Intel i5, 32GB RAM, and NVMe storage. They run Proxmox VE in a two-node cluster โ giving me a combined 64GB RAM and 12 CPU cores in a setup that draws about 25W idle and fits on a small shelf.
Proxmox is the hypervisor layer. It runs both KVM virtual machines (for things that need their own kernel โ Home Assistant OS, Windows VMs) and LXC containers (for lightweight services โ Pi-hole, Unifi controller, monitoring stack). Everything in this post lives inside Proxmox.
- Two-node cluster โ live VM migration between nodes, no downtime for maintenance
- Proxmox Backup Server running nightly snapshots of everything
- Isolated VLANs enforced at the VM/CT network bridge level
- All IoT devices on their own VLAN โ no route to main LAN
๐ก The Network โ Unifi U7 Pro + OneTouch VPN
The home network runs on Ubiquiti Unifi U7 Pro access points โ Wi-Fi 7, tri-band, PoE powered. They're managed by a self-hosted Unifi Network Application running as an LXC container on Proxmox.
The network is segmented into VLANs: main LAN, IoT, lab, and guest โ each with its own SSID and firewall rules. IoT devices can reach the internet but not my computers. Lab VMs are fully isolated.
For remote access, I use Unifi Fabrics OneTouch VPN โ WireGuard-based, set up with a QR code scan. When I'm working from a cafรฉ, I'm on my home network. Pi-hole DNS follows me so I'm still ad-free everywhere.
๐ซ DNS & Ad Blocking โ Pi-hole
Every device on my network โ phones, laptops, iPads, smart TVs โ blocks ads at the DNS level. I didn't install anything on any of them. One Ubuntu LXC container on Proxmox runs Pi-hole, and every DNS query from every device passes through it first.
If the domain is in a blocklist (ads, trackers, malware C2 servers), Pi-hole returns nothing. The request never leaves. On an average day, about 28โ32% of all DNS queries on my network get blocked.
I point my Unifi DHCP server to Pi-hole's IP โ so every device that gets a lease automatically uses it. Zero per-device config. The blocklists include URLhaus malware domains, so it doubles as a lightweight security layer.
๐ Smart Home โ 'Tiasha Home' on Home Assistant
Tiasha Home is the name of my Home Assistant dashboard โ named after my daughter. It runs as a full HAOS virtual machine on Proxmox, isolated on the IoT VLAN. An iPad mounted on the wall shows the dashboard 24/7 in kiosk mode.
The dashboard uses Home Assistant's sections layout with card-mod CSS theming. Warm amber tones for living areas, purple for media, green for kitchen and balcony. All three Google Cast devices โ JBL Bar 500, Google TV Streamer, and the Nest Mini on my desk โ controllable from the same screen.
Most of the YAML was written with Claude AI. I'd describe what I wanted, Claude generated the config, I pasted it in. The header card shows a dynamic greeting that changes based on time of day using Jinja2 templates.
- iPad kiosk: iPadOS 17.7.10, Guided Access triple-click lock, Auto-Lock disabled
- Google Cast: JBL Bar 500, Google TV Streamer, Nest Mini โ one integration
- Kiosk Mode (HACS): hides header and sidebar for clean tablet UI
- Card-mod (HACS): custom CSS per card, colour-coded by room
๐ Monitoring โ Grafana + InfluxDB
I can tell you exactly how many DNS queries Pi-hole blocked yesterday, what signal strength my phone had at 3am, and whether any of my Proxmox VMs spiked CPU overnight. That visibility comes from a Grafana + InfluxDB stack running in a Docker container on Proxmox.
The data pipeline looks like this: Unifi-Poller pulls metrics from the Unifi controller (AP stats, client counts, WAN throughput) and writes to InfluxDB every 30 seconds. Grafana reads from InfluxDB and renders the dashboards. Pi-hole has a built-in InfluxDB exporter too.
Live dashboard โ sample metrics
The numbers above are real โ that's roughly what my dashboard shows on a typical evening. The visual is what matters: everything in one place, time-series so you can look back at trends, and alert rules you can set so Grafana notifies you if something goes wrong.
๐ค The Glue โ Claude AI Throughout
If there's one thread through all of this, it's Claude AI. I used it for:
- Writing Home Assistant YAML and card-mod CSS from plain-English descriptions
- Debugging Jinja2 template errors in the dashboard
- Writing the Docker Compose stack for the Grafana/InfluxDB/Unifi-Poller setup
- Generating Pi-hole blocklist recommendations and whitelist fixes
- Writing these blog posts (yes, including this one โ then I edit for accuracy and tone)
The projects that would have taken a weekend of documentation-reading and trial-and-error took a few hours with Claude in the conversation. That's not a shortcut โ it's the new baseline for how solo builders work.