SumGuy's Ramblings
The art of wasting time.
Docker, self-hosting, AI/LLM, Linux, and DevOps — explained by someone who learned the hard way. No fluff, no enterprise jargon, just practical stuff that actually works on real hardware.
Recent Posts
-
Local LLM JSON Output That Doesn't Lie
Constrained decoding makes local LLMs emit valid JSON in llama.cpp, Ollama, and vLLM. It guarantees syntax, not truth. Working curl, Pydantic, and retry code.
13 min read -
AppArmor Profiles for Docker, Step by Step
Docker puts every container under the docker-default AppArmor profile. See what it blocks, then build a tested nginx profile with audit deny and complain mode.
15 min read -
Catch Your Self-Hosted Apps Phoning Home
Self-hosted is not silent. Audit outbound calls with DNS query logs, watch live connections, block egress with Docker networks, then flip telemetry opt-outs.
13 min read -
Btrfs Send/Receive: Incremental Backups
Back up btrfs with send and receive: full and incremental streams over SSH, parent snapshots, restores, failure modes, and btrbk to automate the whole loop.
13 min read -
Docker Build Cache in CI: Make It Hit
Docker layer cache works on your laptop but CI starts cold. Fix it with registry cache or type=gha, set scope and mode=max, and debug why hits still miss.
14 min read -
Sync Game Saves Without a Cloud Account
Sync game saves between PC, Linux, and Steam Deck without a cloud account. Ludusavi backs up the saves, Syncthing moves them, and Proton paths get sorted out.
14 min read -
Pre-Commit Hooks That Catch Secrets
A secret that reaches git push is already gone. Compare gitleaks, TruffleHog, and detect-secrets as pre-commit hooks, with working configs you can copy.
14 min read -
zstd vs lz4 vs gzip vs xz: Measured
zstd -3 compresses 4 to 6x faster than gzip -6 with smaller files. At the top end, xz -6 beat zstd -19 on speed. 19 configs, 4 public data sets, measured.
18 min read -
Grafana Dashboard Sprawl: 50 Panels to 10
Your Grafana dashboard is a wall of 50 panels nobody reads. Use USE and RED to cut it to ten, move the rest to drill-downs, and keep the result in git.
13 min read -
Crawl4AI: Feed Your RAG From the Web
Crawl a docs site to clean markdown with Crawl4AI, embed it with Ollama, store it in Qdrant, and query it. A working local RAG ingest pipeline, with politeness.
13 min read -
nginx vs Caddy: Measured on 2 Cores
We pinned nginx 1.31 and Caddy 2.11 to 2 CPU cores and measured both. nginx wins per core, but a bare proxy_pass started returning 502s after 28,231 requests.
19 min read -
Solar Plus Battery for Your Home Lab
Grid-tied solar shuts off in an outage. The battery keeps your lab alive. Size it first, then the panels, with real prices for a power station vs a 48V build.
14 min read