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
-
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 -
Train a Tiny GPT, Part 5: Fine-Tuning
A 5.8M-parameter GPT scores 1.626 bits per byte on Holmes. Gemma 4 E4B scores 0.953 untrained, and a 34-minute QLoRA run on an 8 GB GPU gets it to 0.865.
17 min read