Skip to content
ponderance / anmol

Things I worked out, written down before I forgot them.

34 notes · est. 2026
napkin math & half-proofs

most recent

Stale, not blank

My homelab dashboard has one rule that outranks every metric on it: when a source goes down, the card goes stale, not blank. A monitor that wipes itself the moment something breaks is worse than no monitor, because it fails exactly when you need it.

Read the note → 2026-06-23 homelab · engineering

"Rigorous limits, and a full life folded inside them."

— from the marginalia
series · 13 parts

discofin-server

13 notes

01The torrent client with no IP of its own

Putting the torrent client inside the VPN container's network namespace gives you a kill-switch you can't forget to turn on, and it breaks port mapping in a way that finally taught me what a container's network identity actually is.

2026-04-22 · homelab · security

02Your firewall isn't protecting your containers

I had ufw on, default-deny, the whole posture. Docker published a port straight past it, because the two of them are fighting over iptables and Docker writes its rules first. The firewall I trusted was guarding a door the traffic never used.

2026-05-02 · security · homelab

03The auth I deliberately didn't add

The reflex advice for any exposed service is 'put SSO in front of it.' Twice I started to, and stopped, because the gate would have broken the thing without making it any safer. More auth doesn't automatically mean more secure, and learning that took unlearning the reflex.

2026-06-09 · security · homelab

04The reverse proxy that ignored my edits

I changed the config, reloaded, and nothing happened. The file on disk was right. The reload said success. The proxy kept serving the old routes. Three facts that can't all be true, except they were, and the culprit was an inode.

2026-05-12 · engineering · homelab

05Quarantine, don't trust :latest

Auto-pulling :latest quietly hands an unattended supply chain the decision of what runs on your box tonight. I pulled that out and put a scan in its place: pull the candidate, scan it twice, and only promote it if it isn't a known-bad.

2026-06-15 · security · homelab

06A reboot is the one thing I can't automate

Almost everything on this box self-heals. The reboot stays half-manual, not because it's hard to script, but because a reboot destroys the one thing that could tell me it worked.

2026-05-20 · homelab · engineering

07How a subtitle format chose my whole media pipeline

A 4K stutter traced all the way back to image-based subtitles being burned into video in real time. Killing that one thing rippled backward through six services, and ended up rewriting what the box is even allowed to download.

2026-06-11 · homelab · engineering · ml

08Semantic search over my own photos

I can search my self-hosted photo library for 'red bicycle in the snow' and it finds the shot, with no caption and no tag. It works because the photo and the words end up in the same space, and the database just measures a distance.

2026-06-02 · ml · homelab

09Teaching Home Assistant to watch my 3D printer

I wanted the house to tell me when a print finished. One line of automation. Getting to that one line was a tour of every place a 'simple' integration hides a sharp edge, starting with the discovery that 'printing' is spelled running.

2026-06-22 · homelab · engineering

10MQTT is the nervous system my house runs on

Every smart thing in my house that isn't a screen talks to exactly one other thing, a message bus. None of them know about each other. They know about the bus, and that's the whole reason the system can keep growing without turning into a tangle.

2026-06-18 · homelab · engineering

11One domain, two systems that trust each other zero

My portfolio and my homelab share a single domain and trust each other exactly zero. Keeping that boundary honest, with separate pipelines, no shared credentials, and a hard look at the permissions you can't actually scope down, is the least flashy work in this series and the part I'd defend hardest.

2026-06-20 · security · homelab

12The filesystem was the bug

A null byte in my .env finally made me look at the filesystem under the whole stack: exFAT, fine for six terabytes of write-once movies and quietly hostile to a directory of small databases rewritten every few seconds. Moving just that hot little part off it, without touching the media on the same disk, came down to two traps, a volume rename hiding inside the folder name and Docker's habit of inventing an empty config directory when you point it at the wrong path.

2026-06-29 · homelab · engineering

13The socket is root

I wanted a button in my phone app that restarts a wedged container, and the obvious way to build it, handing the app the Docker socket, quietly hands a public-facing web app root on the host. The version I trust instead is built out of refusals: a proxy that forwards only the verbs I name, a write key that never travels with the read key, and a short list of containers the control plane is forbidden from ever touching, starting with its own plumbing.

2026-06-29 · security · homelab
series · 6 parts

Sonobe geometry

6 notes

Physics & math

5 notes

Security & homelab

1 note

ML & evals

3 notes

Engineering & origami

5 notes