What I Use (/uses)
A practical look at the single-box Proxmox server, split-horizon network, and self-hosted services behind HOME-LAB.net.
Welcome to the /uses page for HOME-LAB.net—a plain-English rundown of the hardware, network setup, and software stack behind my homelab, listed in the spirit of uses.tech.
Like a lot of homelabs, this setup originally sprawled into a three-node Threadripper cluster with enterprise MikroTik 10G/40G switches—until I did the math on what ~370W of continuous idle draw was doing to our home solar and battery system overnight. Today, everything is being consolidated onto a single standalone Proxmox VE host (with native ZFS storage right on the box) and a UniFi network core, sipping an estimated 105W combined when running private search, photo backups, GitLab, and self-hosted email with zero open ports on the home router.
Jump to category
At a Glance
- Server Host ~85W Idle
- Proxmox VE 8 · Native OpenZFS
- CPU, Board & RAM 12C / 24T
- Threadripper 2920X · ASRock X399M · 64GB ECC
- Network Core ~20W Idle
- UniFi Core · Unbound DNS · Caddy
- Cloud Bridge ap-northeast-1
- AWS Lightsail WireGuard · SES & S3 Relay
- Public Edge 0 Open Ports
- AWS CloudFront · S3 Multi-Region (MRAP)
A living inventory of the server hardware, network setup, and self-hosted tools running behind HOME-LAB.net—updated as hardware is consolidated or new services come online.
01 · The Server Host
Single-Box Proxmox VE & Native ZFS
Everything inside the homelab runs on a single standalone tower server. Proxmox VE manages both the virtualized workloads and the underlying ZFS storage pools directly on the host—no separate NAS box required.
Proxmox VE 8 · Native OpenZFS
Hypervisor & StorageProxmox VE 8.x · Host-Managed ZFS Pools · LXC & KVM
Runs all internal services as lightweight unprivileged LXC containers or VMs. ZFS is built right into the Proxmox host: fast NVMe mirrors handle databases and container disks, while bulk drives connected through an LSI SAS HBA store media and backups.
Threadripper 2920X · ASRock X399M · 64GB ECC
CPU, Board & RAM12 Cores / 24 Threads · Quad-Channel DDR4 ECC · Noctua NH-U9
A compact Micro-ATX TR4 board populated with 64GB of quad-channel ECC memory and plenty of PCIe lanes for NVMe storage and an LSI HBA, cooled quietly by a Noctua tower cooler in a desktop chassis.
Solar & Battery-Friendly Power Budget (~105W Estimated)
Power Efficiency~85W Proxmox Host + ~20W UniFi Core · ~2.5 kWh / day
Being consolidated down from a 3-node Threadripper cluster and three MikroTik rack switches (~370W idle) that used to drain our home solar battery before midnight. At an estimated ~105W total, the stack uses under 1.5 kWh overnight.
APC Smart-UPS (750W)
Power Protection750W Pure Sine-Wave · Line-Interactive UPS
A 750W APC Smart-UPS keeps the Proxmox host and network core riding smoothly through brief power blips and triggers a clean shutdown.
02 · Network, DNS & Cloud Bridge
Split-Horizon Routing Without Port Forwarding
The network is built around one simple rule: zero inbound ports open on the home router. Public visitors hit AWS edge caches, while local and WireGuard devices—depending on their VLAN—route directly to the Proxmox host.
UniFi Network Core
Gateway & SwitchingUnified Routing & VLANs · ~20W Idle · Retired MikroTik Rack
Replaced a noisy stack of MikroTik 10G SFP+ and PoE+ switches (CRS326 & CRS328) with a unified UniFi network core that handles inter-VLAN firewall rules, network segmentation, and local switching under one clean interface.
Unbound Local DNS (On Proxmox)
Split-Horizon DNSRecursive DNSSEC Resolver · Local *.home-lab.net Overrides
Runs in a lightweight container on the Proxmox host. Resolves outbound queries directly against root nameservers and answers *.home-lab.net queries with the local Caddy proxy IP for trusted VLANs and WireGuard clients.
Caddy Reverse Proxy (DNS-01 Wildcard TLS)
Local HTTPSLet's Encrypt Wildcard (*.home-lab.net) · Route 53 DNS-01
Terminates HTTPS for every internal service on the Proxmox host. By validating certificates over the Route 53 API instead of HTTP, everything gets valid TLS without ever opening ports 80 or 443.
AWS Lightsail WireGuard Relay (ap-northeast-1)
VPN & Zero-Port IngressStateless WireGuard Hub · Outbound Homelab Tunnel · On-Demand Roaming
A lightweight stateless WireGuard relay in Tokyo. The Proxmox host maintains an outbound tunnel to Lightsail, allowing phones and laptops to roam onto the home network via WireGuard On-Demand—without publishing the home IP or opening a single port on the home router.
AWS SES, Lambda & S3 Store-and-Forward
Serverless IngestionSES Inbound Mail → S3 · Future Lambda Umami Ingestion → S3
Managed AWS services that buffer external traffic in encrypted S3 buckets until the homelab pulls it over outbound HTTPS—handling inbound @home-lab.net emails via Amazon SES today, and public Umami analytics events via Lambda in the future.
AWS CloudFront & S3 Multi-Region Access Point
Public Showcase4 AWS Regions · SigV4a Origin Access Control · CloudFront Functions
Serves this public static version of HOME-LAB.net from S3 buckets in the US, Europe, Tokyo, and Sydney—completely isolated from the home network.
03 · Hosted on Proxmox
Self-Hosted Services & Local AI
Every service below runs inside containers or VMs on the Proxmox VE host, backed by local ZFS datasets and fronted by Caddy and Authelia.
Internal Astro Cockpit & SearXNG (home-lab.net)
Start Page & SearchDynamic Node SSR (:4331) · Embedded SearXNG (search.home-lab.net)
The private version of this site serves as my default browser start page on LAN—combining a private SearXNG search bar (with !g, !gh, and !aw bangs), service launchers, and host status.
Nous Hermes 3 Local AI (ai.home-lab.net)
Future Project · Local AIPlanned M5 Ultra Mac Studio (To Be Spec'd)
A future project involving an upcoming M5 Ultra Mac Studio (still to be spec'd out) for running local inference, log triage, and shell command assistance without sending internal data to third-party cloud APIs.
Stalwart Mail Server & Roundcube (mail.home-lab.net)
Email & WebmailSingle-Binary Rust MTA · S3 HTTPS Pull · SES Outbound Relay
Self-hosted email without the port-25 headache. Stalwart pulls encrypted inbound messages from our AWS S3 relay bucket over outbound HTTPS, stores mailboxes on local ZFS, serves Roundcube webmail, and sends outbound mail through Amazon SES.
Immich Photo Library (photos.home-lab.net)
Photos & VideoDirect ZFS Dataset Mount · Mobile WireGuard Background Sync
Our self-hosted Google Photos replacement. Phones back up raw photos and videos automatically over WireGuard straight onto a dedicated ZFS dataset on the Proxmox host.
GitLab CE & GitLab Runner (gitlab.home-lab.net)
Code & CI/CDRepositories · Container Registry (registry.home-lab.net) · CI Runner
Keeps infrastructure code, Terraform configs, and container images in-house, and runs the pipelines that build both the public S3 static site and the internal LAN cockpit.
Authelia SSO & Decoupled Umami Analytics
Auth & TelemetryWebAuthn Passkeys (auth.home-lab.net) · S3-to-Local Umami Pull
Authelia protects internal apps behind a single passkey login. For public site analytics, a CloudFront/Lambda endpoint writes events to S3 and a 5-minute systemd timer inside an LXC container pulls them into a local Umami instance.
04 · Workstation & Workflow
Daily Driver & Tooling
The laptop, web stack, and command-line tools I use day-to-day to build and look after the lab.
MacBook Pro (Apple Silicon)
WorkstationmacOS · WireGuard On-Demand · Seamless Split-DNS
Main daily computer. Uses an iOS/macOS WireGuard On-Demand profile that stays off on home Wi-Fi and quietly connects through the Tokyo relay whenever I'm working away from home.
output: static (Public S3) + @astrojs/node SSR (Internal LAN)
A single codebase that compiles into two different sites depending on the build target: a fast static showcase for the public web, and a live SSR dashboard for the home network.
Terraform & Systemd Timers
AutomationDeclarative AWS Edge · LXC Pull Workers
Terraform manages the AWS side (CloudFront, S3 MRAP, Route 53, SES, IAM), while simple systemd timers and Node/Rust workers inside LXC containers pull queued mail and analytics from S3.
Terminal & Editor Stack
CLI & Editorzsh · tmux · VS Code / Neovim · btop · lazygit
Clean, keyboard-driven setup with hardware-backed SSH keys for jumping into the Proxmox host and containers.
Architecture & Stack FAQ
Frequently Asked Questions
Quick answers on how the split-horizon setup, power budget, and store-and-forward relays work in practice.
Split-Horizon & Zero Open Ports
How the public website and private homelab share the same domain safely.
Are any ports forwarded on the home router?
*.home-lab.net straight to the Proxmox host's local Caddy proxy. Every connection between the homelab and AWS (for WireGuard, mail, and analytics) is initiated outbound from inside the LAN.How do internal services get valid HTTPS certificates without port 80/443 open?
*.home-lab.net and home-lab.net. Because verification happens over DNS, no inbound HTTP check is ever needed.What happens to incoming @home-lab.net email or analytics if the server is rebooting?
.eml files in an S3 bucket (with a 7-day auto-expiry safety net). Public analytics events follow the same pattern via Lambda and S3. As soon as the Proxmox host is back up, Stalwart and the local Umami sync timer pull the queued items over outbound HTTPS.Hardware & Consolidation
Why everything runs on one Proxmox box instead of a multi-node rack cluster.
