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
-
fstrim vs discard: Keeping SSDs Fast
Run fstrim.timer, skip the discard mount option on ext4 and XFS, then check LUKS, VMs, and LVM for layers that silently swallow TRIM. Measured demo included.
10 min read -
Penpot: Self-Host an Open Source Figma
Penpot 2.19.1 on your own server: the Docker Compose stack, what it costs in RAM, what it does better than Figma, and where it still lags. Verdict inside.
14 min read -
Homebox: Self-Hosted Home Inventory
Run Homebox in Docker, give every box a QR label and asset ID, attach receipts and warranties, and know when Grocy, Snipe-IT, or a spreadsheet fits better.
12 min read -
Compose include, extends, and YAML Anchors
Your compose.yaml hit 600 lines. YAML anchors, extends, and include each fix a different kind of repetition. What each one does, where it bites, which to use.
12 min read -
promptfoo: Unit Tests for Your Prompts
Write a YAML test suite for your LLM prompts with promptfoo, run it against a local model, and fail the CI build when a prompt tweak quietly breaks the output.
13 min read -
kube-vip: HA k3s Control Plane
Three k3s servers survive a dead node, but your kubeconfig still names one IP. Add a floating API address with kube-vip, and see how it compares to HAProxy.
16 min read -
rsync --link-dest: Snapshot Backups
Build dated, browsable snapshot backups with rsync and hard links, then let a systemd timer run and prune them. Includes a tested script and the traps.
13 min read -
systemd Path Units: React to New Files
Run a job the moment a file lands. A systemd .path unit plus a oneshot service, tested triggers, the retrigger loop that kills it, and when inotifywait wins.
13 min read -
inotifywait: Scripts That React to Files
Use inotifywait to run shell scripts when files change, and entr to rerun a command on save. Tested gotchas: half-written files, rename saves, watch limits.
15 min read -
Langfuse vs Phoenix: Self-Host LLM Tracing
Langfuse v4 runs six containers and idles near 1.1 GiB of RAM. Phoenix v21 runs two and idles near 0.5 GiB. Here is what each traces and what each costs you.
12 min read -
Your Admin Panel Has a Side Door
Admin blocks on nginx, Caddy, and Traefik let 2 or 3 of 13 spellings through. A forged Remote-User fooled all three. Caddy's open admin port took a new config.
17 min read -
Postgres in Docker: The shm_size Gotcha
Docker gives Postgres a 64MB /dev/shm. A big parallel query then dies with 'could not resize shared memory segment'. Here is the fix and the trap behind it.
7 min read