Boring security
The good kind of boring: sane permissions, small attack surfaces, and no mystery ports waving at the internet.
CODE · COFFEE · CTRL+C · CTRL+V
I make self-hosted tools for servers with trust issues—and humans who prefer sleeping through the night.
01 / THE HUMAN
Hi, I'm Will. I build self-hosted tools because ‘just leave the server alone’ has never worked for me. I spend an unreasonable amount of time persuading usage logs, network traffic, Linux boxes, and backups to behave. My favorite software is secure by default, honest when it breaks, easy to Docker up, and still readable six months later—especially by Future Me, who remembers absolutely nothing.
Things I occasionally convince to cooperate:
The good kind of boring: sane permissions, small attack surfaces, and no mystery ports waving at the internet.
If something breaks, the logs should tell the story without requiring a séance.
docker compose up is a love language. Twelve manual steps are not.
02 / SIDE QUESTS
Four pinned repositories. Each began with “this should be simple” and at least one suspiciously late cup of coffee.
CLIProxyAPI was producing usage data like confetti, so I gave it an SQLite apartment and a dashboard. Now requests, tokens, costs, cache hits, quotas, and service health all have somewhere to sit.
A fresh Debian or Ubuntu server arrives knowing almost nothing. Bootstrap teaches it SSH, UFW, Docker, CrowdSec, time sync, and basic manners—dry-run first, because bravery and recklessness are different things.
sing-box traffic is fascinating until it becomes 8,000 anonymous numbers. FlowLens adds live speed, history, connection attribution, data-quality clues, and verified SQLite backups so the packets can finally introduce themselves.
rsync is powerful, fast, and occasionally terrifying. SyncWarden takes a verified ZIP snapshot before destructive changes, then leaves a paper trail for the inevitable ‘wait, where did that file go?’ moment.