← All posts

Self-hosting

Jul 13, 2026
July 13 - putting my notes under version control without breaking the sync that copies them everywhere
My entire knowledge base had no undo, and adding one turned out to be a real distributed-systems puzzle because the same files live on four machines at once.
Jul 11, 2026
July 11 - Loupe's machine-learning pipeline runs entirely on your own hardware
For an app that looks at your private photos, the machine learning cannot phone home, so every model in Loupe runs on your own machine, on a single consumer graphics card.
Jul 10, 2026
July 10 - how Loupe decides what to keep: labels nominate, scores order, people protect
Culling a hundred-thousand-photo library should never come down to one mysterious score, so I split the decision into three plain roles that each answer a different question.
Jul 9, 2026
July 9 - the dashboard learned to reach my phone: an installable app with tiered alerts
Turned the fleet dashboard into an installable phone app with alerts tiered by urgency, a critical channel that survives the app itself failing, and a dead-man's switch that can announce its own death.
Jul 9, 2026
July 9 - a compute box hitting 115°C, and the safety net that let it run hot but safe
My busiest compute machine was cooking itself under real load, so instead of just turning the work off, I built layers of protection that let it keep running without frying.
Jul 8, 2026
July 8 - searching my notes by meaning, not by keyword
I taught my notes to answer questions by meaning, so I can ask what I decided about X and why and land on the right note even without remembering a single word from it.
Jul 7, 2026
July 7 - a knowledge base that rebuilds and reorganizes itself every night
I write a lot of scattered notes across a lot of projects, and instead of ever organizing them by hand, I built a pipeline that rebuilds and reorganizes the whole thing every night while I sleep.
Jul 6, 2026
July 6 - running my own models so the routine work costs nothing
A lot of the small jobs I was paying a hosted model to do did not need a frontier model at all, so I started running open-weight models on my own GPU box and let the routine work run for free.
Jul 5, 2026
July 5 - handing a job to whichever machine should run it, then walking away
I stopped doing my machines' work at the keyboard and built a way to hand a task to whichever machine should run it, let it run on its own, and pick up the result later.
Jul 4, 2026
July 4 - the night my control-plane machine died and I failed the homelab over to a standby
I caused an outage by running a heavy job on the one machine that holds everything together, then spent the night proving my failover plan actually works.
Jul 3, 2026
July 3 - a dashboard that became a second brain: fleet health, my notes, and search over my own work
Pulled fleet health and my entire notes vault onto one gated dashboard, then added semantic search over my own work by borrowing an embedding model already running elsewhere on the network.
Jul 2, 2026
July 2 - reads that fell from 96 to 12 MB/s on a link that swore it was fine
Every cheap health check told me my storage link was perfectly healthy while it was actually running at a tenth of its speed, and the real work was proving which piece was lying.
Jul 2, 2026
July 2 - every machine can now reach every other, with no passwords and no key juggling
Turned the fleet into a full mesh where every machine can reach every other one directly, passwordless, without hand-managed keys, laying the groundwork for running work anywhere in the fleet.
Jun 30, 2026
June 30 - moving the front door off the busy machine so a reboot cannot take the site down
Moved the public tunnel entrance off the busy compute box onto its own dedicated Raspberry Pi with its own uplink, so a reboot of any other machine can no longer take the whole public site down.