Skip to content

Tag: devops

All the articles with the tag "devops".

Stop Handing CI Jobs Root on Your Box

Stop Handing CI Jobs Root on Your Box

Self-hosted GitHub Actions, Forgejo, and GitLab runners can hand a forked pull request root on your box. Here is the isolation ladder that actually stops it.

Cluster API for Homelab k3s

Cluster API for Homelab k3s

Cluster API turns k3s cluster lifecycle into YAML: create, scale, and upgrade whole clusters as code with a management cluster, no more one off scripts.

RabbitMQ vs NATS: Pick a Message Bus

RabbitMQ vs NATS: Pick a Message Bus

RabbitMQ vs NATS for a self-hosted app: routing, delivery guarantees, Docker Compose setups, Python code, and which broker to run for background jobs.

Helm Without the YAML Soup

Helm Without the YAML Soup

Master Helm templating sanity. Values files, smart defaults, when to skip Helm entirely, and why nested variables aren't always the answer.

Garrul: The Audit Found My Rate Limiter

Garrul: The Audit Found My Rate Limiter

A security audit of Garrul, my Cloudflare Workers comment system, found 2 critical bugs. Both had the same root cause as one I had already fixed in June.

Bots Ate 90% of My Worker Quota

Bots Ate 90% of My Worker Quota

A WordPress login bot burned 90% of my Cloudflare Workers free tier in two hours attacking a site that has never run PHP. Here's what actually stopped it.

Your Agent Doesn't Need a Shell

Your Agent Doesn't Need a Shell

Coding agents get unrestricted shell access by default because it's easy, not because they need it. Here's the short list of what actually breaks without one.

Durable Objects: Stateful Serverless

Durable Objects: Stateful Serverless

Cloudflare Durable Objects solve the one thing serverless can't: coordination. Storage API, WebSocket hibernation, gotchas, and a working rate limiter build.