Blog · Lișneanu Dumitru-Cristian · page 3 of 7

Notes from the lab.

Notes from a sovereign lab on one machine: self-hosted AI, infrastructure, security, and the books written from its library.

RSS · Atom · JSON Feed

  1. The cleanup job that deleted 239,000 live search chunks

    A nightly orphan-chunk sweep in my Elasticsearch library deleted 239k live chunks from 19.4k documents for four weeks. Why its liveness check was wrong, how I recovered, and the count-first circuit breaker that followed.

  2. 13 hours of question marks: a canary for LLMs that look healthy

    After a llama.cpp router restart my main model answered every request with question marks for 13 hours while every health check stayed green. A known-answer canary now catches it within 10 minutes.

  3. How small local models finish hour-long agent tasks

    Left alone, my 9B agent closed tasks without doing them and invented a 10 KB report from an empty sub-agent result. Scaffolded task trees, evidence checks and deterministic gathering let it finish 66-minute projects.

  4. DNS is not a firewall: splitting Traefik into LAN and public

    My internal services had no public DNS, yet anyone could reach them by sending the right Host header to my public IP. How I proved it over Tor, split Traefik into LAN and public entry points, and the two test mistakes I made.

  5. A provenance ledger for a home library, anchored in Bitcoin

    How I fingerprint every file in my research library (CIDv1 + SHA-256), log them in a signed append-only Merkle tree, anchor each daily root in Bitcoin with OpenTimestamps, and verify it all offline.

  6. A post-reboot check script for a one-machine home lab

    A cold boot of my lab produced 37 failed jobs; three were real defects hidden for up to two weeks. Here is the read-only OK/FAIL script I now run after every reboot, and the failures it catches.

  7. One GPU, many LLMs: the VRAM guards that stopped a driver deadlock

    With 33.9 of 34.2 GB of VRAM in use, a desktop app triggered a 24.7 GB eviction and froze my GPU driver. Here is the VRAM budget and the two guards that now enforce it.

  8. Agent skills as SKILL.md playbooks, not plugins

    My agent's plugin folder auto-loaded code as ungated tools. I moved procedures to SKILL.md playbooks in one git library: validated in CI, root-owned, read-only to the agent, and promoted only after review.

  9. NetworkPolicy gotchas: hostNetwork Traefik and Docker DNAT

    A hostNetwork ingress shares the node IP with everything on the host, and Docker rewrites destinations before kube-router filters egress. What that broke on my k3s cluster, how a forged header created an admin, and how to write exact policies.

  10. Velero said Completed. It had backed up a RAM disk.

    Velero's Kopia backup skipped my main Postgres because it used hostPath, saving only an in-memory temp volume; 13 of 17 databases had no backup anywhere. PV fixes, two OOM kills, and a byte-exact restore.

  11. Local AI study guides for thousands of books, capped on purpose

    Hosted study guides cost 80k tokens per part, so I moved to a local 4B model. What broke, the guardrails that fixed it, the 100-chunk and 60-section caps, and why breadth beat depth.

  12. From Ollama to a llama.cpp router: 49 models down to a few presets

    I replaced Ollama with a llama.cpp router on my home-lab GPU: on-demand presets, sleep timers, embedding parity tests, and a log-driven retirement that freed about 400 GB.