galaxy.rip · gadgetman.cloud
A production network that happens to be in my house.
Two physical sites, each with its own private ASN, peered over BGP across a residential
connection. Recycled enterprise hardware, open-source software, real monitoring, real
automation, and a public read-only view of the whole thing. It's how I stay current on the
infrastructure work that job descriptions ask for and most network roles never touch.
The physical sites
Two locations, one AS path
The Fort
Primary site. Edge firewall, the compute cluster, and the monitoring stack.
EdgeOPNsense with FRR, dynamic DNS, WireGuard to the second site
SupernetA /22 carved into per-purpose VLANs
ASNPrivate ASN, iBGP to the second site's edge
RunsProxmox hypervisors, Docker, Kubernetes, reverse proxying, game servers
Hawk House
Second site. Independent edge, independent addressing, same routing domain.
EdgeOPNsense with FRR, dynamic DNS, WireGuard back to primary
SupernetIts own /22 — no overlap, no NAT between sites
ASNIts own private ASN, advertising its prefixes over BGP
RunsSwarm nodes, notification services, off-site backup target
What's running on it
The stack
Routing & security
OPNsense on both edges with FRR handling BGP between sites, WireGuard tunnels carrying
inter-site traffic, Unbound for DNS, Suricata and CrowdSec on the perimeter, and Cloudflare
zero-trust access in front of anything that needs to be reachable from outside.
OPNsenseFRR
BGPWireGuardSuricata
CrowdSecUnbound
Compute
A five-node cluster — amp1, amp2, amp3, holodeck and dilithium — running Proxmox with
Docker and Kubernetes workloads on top, plus Traefik ingress, an OpenMediaVault NAS, and
the game servers that started the whole thing.
ProxmoxDocker
KubernetesDocker Swarm
TraefikOpenMediaVault
Observability
Prometheus scraping every node and network device, Grafana for the dashboards,
Alertmanager routing to Discord and ntfy, Blackbox Exporter probing the things that face
outward, VictoriaLogs for logs and smokeping watching the remote link.
PrometheusGrafana
AlertmanagerBlackbox
VictoriaLogssmokepingntfy
Automation
Ansible manages configuration on infrastructure that already exists — the realistic case,
rather than green-field provisioning. n8n handles the workflows: scheduled fleet updates
over SSH, alert enrichment, and the assistant that answers questions about the lab in Discord.
Ansiblen8n
BashPythonDiscord webhooks
Why it's public
Anyone can claim BGP on a résumé. Very few people will let you look. The lab page renders
real device state from the running network every 60 seconds — if something falls over, you'll
see it there before I've fixed it, and that's the point.
It is deliberately read-only: a server-side render with no control
interface and no management API exposed to the internet.
What it's taught me
Running your own infrastructure teaches the things enterprise roles insulate you from —
what breaks at 2am, what a bad alert threshold costs you, how much of reliability is
documentation, and why the boring automation matters more than the clever automation.
It's also where the SRE-shaped parts of my skill set actually come
from: SLOs I set for myself, alerts I have to live with, and a pager that's my own phone.
The published lab
lab.chancegearhart.com
PRIMARYOPNsense edge · core + 3 access switches · WLAN · Proxmox · Traefik ×2 · Prometheus / n8n · Grafana · Alertmanager · Blackbox · VictoriaLogs · NAS · workstation17
SECONDARYOPNsense edge · core + 2 access switches · WLAN · Docker Swarm ×3 · application host · ntfy11
REMOTEOPNsense edge · switch · smokeping probe host3
CLOUDVPS 01 automation · VPS 02 monitoring2
EDGEISP router (double-NAT) · internet · internet exchange3