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
-
Idle Watts Audit: Halve Your Lab's Draw
Find what pins your home lab at high idle power: ASPM, package C-states, disks, NICs, and chatty containers. Measure at the wall and fix one blocker at a time.
16 min read -
One PC, Many Players: Steam Headless
Run several Steam Headless v2 containers on one Linux box so a household can play at once, each seat streamed with Moonlight. Compose file, numbers, gotchas.
19 min read -
Database Connection Storms, Explained
Why apps fall over under load: pool size times replicas versus Postgres max_connections, restart herds, retry storms, timeouts, and the configs that fix them.
13 min read -
Agent Memory Without a Vector DB
Give a local LLM agent long-term memory with Markdown files or SQLite FTS5. Working code, token math, and the point where you finally need embeddings.
15 min read -
Uptime Kuma vs Gatus vs Cachet
Uptime Kuma, Gatus, and Cachet all make a status page, but only two of them check anything. Here is which one to run in a home lab, with Compose files for each.
13 min read -
What Actually Fills Your Loki Storage
Your Loki volume hit tens of GB and you don't know why. Find the noisy streams with logcli and LogQL, then trim them in Alloy and set per-stream retention.
13 min read -
Windmill vs Activepieces
Windmill runs your scripts, Activepieces wires your apps. Compose files, licenses, webhooks, and sandboxing compared so you can pick one for your homelab.
12 min read -
Sizing 7 Days to Die and Other RAM Hogs
Size RAM for a 7 Days to Die server and other hogs (Palworld, Valheim, modded Minecraft). Measure real use, cap it in Docker, and restart on a schedule.
13 min read -
Home Lab Threat Model: What's Exposed
Mass scanners find a new home lab IP within hours. Audit what the internet can reach, from UPnP to Docker ports to IPv6, then build a threat model that fits.
15 min read -
Kyverno: K8s Policy Without Rego
Kyverno on k3s: validate, mutate, generate, verify signed images, handle exceptions, and test policies in CI. Plus the CEL policy types replacing ClusterPolicy.
12 min read -
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