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
-
Shlink vs YOURLS: Self-Hosted Short Links
Shlink or YOURLS for your own short-link domain? Docker Compose setups for both, tested, plus API, analytics, multi-domain, backups and a clear verdict.
13 min read -
K8s Requests vs Limits in a Home Lab
What Kubernetes requests and limits actually do on a small k3s cluster: QoS classes, OOMKills, CPU throttling, node reservations, and the settings I'd pick.
14 min read -
sudo vs doas vs run0 on Linux
sudo, doas, and run0 all get you root. We compare how each one works, the config syntax, the attack surface, and which one belongs on your home-lab server.
12 min read -
Self-Hosted Excalidraw, Minus the Cloud
Run Excalidraw on your own server in two minutes. Then see what the stock image still sends to excalidraw.com, and how to host real collaboration yourself.
16 min read -
Docker's Embedded DNS: Inside 127.0.0.11
Docker's embedded DNS at 127.0.0.11 resolves container names, aliases and replicas, then forwards everything else upstream. How it works and how to debug it.
14 min read -
Monolith vs Microservices, Measured
One Go shop app as a monolith and as gRPC microservices on the same pinned CPU cores. The monolith won every throughput test, and Postgres capped some loads.
15 min read -
Lynis: Reading a Hardening Audit Report
Run Lynis 3.1.7, read the warnings, suggestions, test IDs and hardening index, fix the findings that matter, silence the rest, and track the score weekly.
14 min read -
coredumpctl: Debug a Crash-Looping Service
Your service dies and restarts forever. Read the core dump instead of the restart log: coredumpctl, gdb, debuginfod, storage limits, and Docker containers.
16 min read -
systemd-tmpfiles: Runtime and Cache Dirs
Service dies after reboot because /run/myapp vanished? Learn tmpfiles.d line types, Age cleanup, overrides, and when RuntimeDirectory= is the better pick.
14 min read -
git bisect: Find the Commit That Broke It
Find the commit that broke your code in about 7 steps. Manual git bisect, automated git bisect run, exit code 125 skips, and the gotchas that waste hours.
13 min read -
Recording Rules: Faster Prometheus Panels
Prometheus recording rules precompute the expensive queries behind your Grafana panels. Learn naming, chaining, testing with promtool, and when to skip them.
14 min read -
A Terminal Built for AI Coding Agents
Run Claude Code, Codex CLI, or Aider in parallel with one git worktree per agent, one tmux window each, and a bell that tells you which agent is waiting.
15 min read