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
-
Blender MCP vs Headless bpy Scripts
Blender MCP is great for building one model with an agent watching screenshots. Headless bpy scripts win for batches, parallel agents, and automated checks.
14 min read -
Firewall Rule Audit: Find the Dead Rules
Find unused firewall rules on a Linux box with nftables counters, then retire them safely with a snapshot-and-diff routine, a jq script, and a systemd timer.
14 min read -
k3s Node Upgrades Without Downtime
Upgrade k3s without dropping workloads: the cordon and drain sequence, then system-upgrade-controller Plans that automate it, with PDB and Longhorn gotchas.
13 min read -
IoT VLANs That Don't Break Chromecast
Put smart plugs and TVs on an IoT VLAN, then fix Chromecast, AirPlay and Sonos discovery with an mDNS reflector and the right firewall rules. Configs included.
15 min read -
Cloud Gaming Latency: It's Not Just Ping
Ping is one stage of seven in a game stream's latency chain. Learn what else adds milliseconds, how to measure each stage, and which fixes pay off first.
13 min read -
Split-Horizon DNS for a Home Lab VPN
Make jellyfin.home.example.com resolve to a LAN IP at home and over WireGuard or Tailscale, and to your public IP elsewhere. Unbound and AdGuard Home configs.
13 min read -
Dify vs Open WebUI: Chat or App Builder?
Dify and Open WebUI both front your local LLMs, but they solve different problems. Compare footprint, RAG, auth, APIs and licenses, and see how to run both.
13 min read -
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