Intel NUC5i7RYB
Knowledge graph and a task-scheduler app, each in its own container.
Ten machines carrying live work — sites, routing, monitoring, storage, and the boring recovery paths that keep those surfaces usable. It is where I find out whether something I believe about a system is actually true.
Hover or focus a machine to see what it is and what it carries.
Intel NUC5i7RYB
Knowledge graph and a task-scheduler app, each in its own container.
Intel D53427RKE
The always-on core: primary DNS, this website, a fantasy-football projection UI, a weekly competitive-intelligence pipeline, and the print server.
Intel NUC5i5RYB
Media playback — film, television and music servers — plus backup DNS and the internal HTTPS proxy that fronts every LAN service.
ECS mini PC
Media library storage and processing, kept off the public network entirely.
Lenovo ThinkCentre M710q
Runs the origin-health sentinel — the watchdog that checks services from behind the edge rather than in front of it.
Lenovo ThinkCentre M710q
Reserve capacity. Deliberately unassigned so there is somewhere to move a workload in a hurry.
Lenovo ThinkCentre M710q
Client site hosting: the edge proxy and the web server behind it.
Lenovo ThinkCentre M93p
Scraping and data-collection jobs, and the push-notification server that alerts me when one of them stops.
Dell OptiPlex
Staging and odd jobs — currently a time-tracking app that never found a permanent home.
HP ProDesk 600 G3 SFF
Storage. Network shares for media, backups and a lab scratch area.
Roles move around; this is written by hand and checked when the page is edited. Uptime Kuma holds the live view. A table that admits it is hand-maintained beats a dashboard that looks live and is not.
| Service | Job |
|---|---|
| AdGuard Home | Primary and backup DNS, on separate machines |
| Caddy | Public edge, TLS, and the internal HTTPS proxy |
| Nginx | Client sites |
| Uptime Kuma | Monitoring |
| ntfy | Push alerts when something stops |
| Proxmox Backup Server | Nightly, written to a different machine than the one it backs up |
| Postgres | Knowledge graph behind the agent tooling |
| SearXNG | Private metasearch for the scraping jobs |
| CUPS | Print server bridging two VLANs |
The useful part is not the node count. It is clear separation between machines, services and public surfaces, so a change is easy to reason about and a failure is easy to isolate.
It is also where the quiet failures happen. One service spent weeks returning nothing because its configuration pinned an address the machine no longer held — everything was up, nothing errored, and the results were simply empty. The fix was to stop referring to that machine by number at all.
Another taught the same lesson from the other direction: a workload that has to leave the house through a specific interface must be bound to that interface by name. Restarting things in the right order is a habit, and a habit works right up until the moment it does not.
Email is the best way to reach me — [email protected].