My homelab, as code. A small Proxmox VE cluster + Synology NAS, provisioned end to end by a build engine I wrote (Fallout) driving API clients I wrote (ProxmoxSharp · UnifiSharp · SynoSharp). GitOps all the way down — if it isn't in a repo, it doesn't exist.
graph TB
Internet(["🌐 Internet"]) --> CF["☁️ Cloudflare · chrison.dev<br/>(tunnels + Pangolin ingress)"]
subgraph NET["📡 UniFi · Cloud Gateway Ultra"]
direction LR
GW["🛡️ Gateway<br/>192.168.178.1"] --- SW["🔌 US-24-PoE"] --- AP["📶 U7LR APs"]
end
CF -. cloudflared .-> NET
subgraph PVE["🖥️ Proxmox VE cluster"]
direction LR
NUC["<b>nuc-01</b><br/>always-on · edge/control"]
HPE["<b>hpe-01</b><br/>always-on · media/home"]
DESK["<b>desktop-01</b><br/>Wake-on-LAN · dev/CI"]
end
NET ==> PVE
NAS[("🗄️ Synology DS1813+<br/>NFS datastore")]
NAS == NFS ==> PVE
classDef store fill:#fef3c7,stroke:#d97706;
classDef edge fill:#ede9fe,stroke:#7c3aed;
class NAS store;
class NET,GW,SW,AP edge;
| Repo | What it is |
|---|---|
| Homelab | The hub — the C#-native engine, shared infra, networking, docs, and the CI/CD that deploys the lab. Start here. |
| Homelab.Stacks.SmartHome | IoT / Home Assistant support layer — MQTT · Matter · ESPHome · Leapmotor Mate. |
| Homelab.Stacks.DevOps | Self-hosted source control + CI/CD — Forgejo + runners. |
| Homelab.Stacks.BuildLab | A Windows build VM for testing the Fallout toolchain matrix (VS 2019/2022/2026). |
| Homelab.Stacks.Azure | A local Azure environment (Topaz emulator). |
The reusable C# API clients — ProxmoxSharp, UnifiSharp, SynoSharp — and my other open source live in the sibling Chrison-dev org and ship to nuget.org.
A commit triggers a self-hosted runner (in the lab, for LAN reach) that runs the
Fallout build → the engine reconciles declared shapes (stack.yaml) against live
state via the *Sharp clients. Everything is idempotent, reversible, and
add-only — dry-run first, apply second. Full write-up + diagrams in the
Homelab hub.
Hardware photos coming soon.
Built with ❤️ and far too many LXCs · chrison.dev