Latest notes
Full archive2 Sep 2026After the merge: a DNS-01 lab, a UDP trap, and TXT that actually expires 23 Aug 2026From two containers to one: acme-dns and the operator UI in a single Nuxt process 23 Aug 2026From three containers to two: folding Certbot into the acme-dns client Draft 21 Aug 2026Synology setup that finally worked 15 Aug 2026TSDProxy without exposing containers to the hostTSDProxy does not need host port mappings. Put it on a named Docker network, attach the other stacks, and label the container port. Tailscale sees the service; the host does not. 14 Aug 2026A café on this blogI wanted a café on the blog — a place to linger after a post, or sit in the lobby with no article in mind. Not a comment thread. A small room that talks back. 14 Aug 2026The MoE Frontier: Evaluating Runtime Implementations for Consumer LLMsMoE sounds great on paper, but lives or dies on the runtime. This post looks at what it actually takes to run MoE models on consumer GPUs, and where projects like Swiftlet, Colibri, and Soup currently fit in. 12 Aug 2026Three Unsloth Studios on one AMD GPUThree Unsloth Studio containers on one Radeon 8060S — planner, builder, and a light daily driver — sharing one install, separate state, and different GGUFs. 7 Aug 2026Docker Images Do Not Bring a Kernel (and Synology Taught Me the Hard Way)Docker images are userspace only — they never ship a kernel. Building Bun on Synology DSM 4.4 fails; build on a modern host, pull and run on the NAS. 4 Aug 2026Why I like FileSystem-as-DatabaseContent lives as Markdown on disk. A query index sits on top when the app needs it. Why I prefer that setup, and where it gets awkward. 1 Aug 2026One Docker image for Bun, PHP 8.5, Laravel, and NodeTired of juggling Bun, PHP, Laravel, and Node separately, I packed them into one Docker image. Here is what is inside, how to run it, and the sharp edges along the way. Draft 1 Aug 2026Research Agent Session Notes (2026-08-01)