About
Who’s SumGuy?
A Linux sysadmin from the original days. Started as a tech, worked my way through DevOps, then pivoted into SMB consulting — security, compliance, PCI DSS for small and medium businesses, security audits, the whole thing. Somewhere along the way Docker became a daily driver, and AI/LLM went from interesting experiment to actual workload.
Large open source proponent and evangelist. Always have been.
What This Blog Is
Honest answer: it’s my testing ground.
When I’m figuring something out — a new tool, a better way to run containers, an LLM setup that doesn’t require a data center — I write it down. Not to show off, not to hit a word count, but because writing it forces me to actually understand it. And if it helps someone else avoid the same 2 AM rabbit hole I just climbed out of, even better.
Think of it as a living knowledge base. The kind of thing I wished existed when I was starting out — practical, opinionated, skipping the enterprise fluff and getting to what actually works on real hardware.
What You’ll Find Here
- Docker & containers — Compose, Podman, Swarm, registries, the works
- Self-hosting — because your data doesn’t need to live on someone else’s server
- AI & LLMs — local inference, model formats, agents, RAG, and what’s actually useful vs. hype
- Linux — from basics to kernel-level tuning, security hardening, and everything in between
- DevOps & infrastructure — Ansible, Terraform, monitoring, CI/CD, and the tools that make it stick
- Security — practical hardening, not compliance theater (though I know that world too)
No fluff. No “in this article we will explore.” Just the stuff that works.
Open Source Projects
Most of what I build ends up on GitHub. Here are a few that people actually use:
Garrul
The comment system running at the bottom of every post on this site. Self-hosted commenting for static sites and blogs, built on Cloudflare Workers, D1, KV, and Turnstile, so the comments live in your own Cloudflare account with no per-comment billing and nobody else mining your readers.
Threaded replies, Markdown, reactions, edit and delete windows, and either OAuth sign-in (GitHub, Google, Facebook, X, Discord) or anonymous posting. The embeddable widget is roughly 12 KB and uses Shadow-DOM isolation with custom CSS variables for theming, plus an iframe fallback for sites running a strict Content Security Policy. Operator side gets an admin UI, email digests, RSS feeds, generic/Slack/Discord/Telegram webhooks, and a Telegram bot so you can moderate from your phone while standing in line for coffee. The story behind it: Why I Built Garrul.
Hoist
One script that keeps Docker Compose containers current. It inspects what’s running, checks whether a newer image exists, then either recreates the container or just tells you about it. Which of those two it does is decided per container with Docker labels, so the database gets a notification and the reverse proxy updates itself. It’s an alternative to pullio and reads pullio’s labels too, so switching costs nothing.
Notifications go to Discord, Slack, Telegram, Gotify, ntfy, Microsoft Teams, Matrix, Healthchecks.io, or a plain webhook. The safety options are the reason I still run it: post-update healthcheck polling with automatic rollback to the previous image SHA when the check fails, semver constraints, pause windows, and execution groups so dependent services don’t all restart at the same instant. Also built-in scheduling with --cron, pre/post update script hooks, and parallel execution. Walkthrough here: Hoist: Label-Driven Docker Updates.
php-docker
Multi-architecture PHP Docker images — arm64/aarch64, amd64/x86_64, and armv7l. Built because the official PHP images either didn’t support the architecture I was running on, or didn’t ship with the extensions I needed. This one includes an extensive set of PHP extensions pre-compiled so you’re not spending the first 20 minutes of every Dockerfile fighting apt-get. Over 200 commits and still maintained.
FanOut
A Go-based HTTP request multiplexer. You send one request in, it fans out to multiple target endpoints simultaneously — useful for webhook mirroring, log aggregation, and anywhere you need the same payload to hit several services at once. Includes smart retry logic, configurable timeouts, and observability hooks. Written in Go, ships as a Docker image.
PingPanda
Dockerized Bash health checker. Monitors DNS resolution, ping responses, and HTTP status codes on a schedule. Detailed structured logging, retry mechanisms, and alerting hooks. The kind of lightweight monitoring you reach for when you don’t want to stand up a full Prometheus stack just to know if a service is up. Over 100 commits — it’s not as simple as it looks.
doxygen-docker
Doxygen in Docker. Alpine and Debian variants, multi-arch. Mount your source, output directory, and Doxyfile — done. No Doxygen install on the host required. Companion blog post at sumguy.com/install-use-doxygen-via-docker/.
Find Me
GitHub: github.com/KingPin
Support This Site
This place has run since 2012 with no ads and no paywall, and I’d like to keep it that way. If something here saved you a 2 AM rabbit hole, two ways to help: check out the gear I actually run (some links are affiliate links — I get a small cut, you pay nothing extra), or chip in directly. Either way, thanks for reading.
The Tagline
The art of wasting time. — Because half of what I run in my homelab has no business justification whatsoever, and I’m fine with that.