DevOps. Self-hosted. Security.
RSS FeedNotes on DevOps, infrastructure, self-hosting and cybersecurity — practical guides from real-world operations.
Read the posts below or head over to the About page.
Recent Posts

GPUs in Kubernetes without device plugins: how DRA changes accelerator allocation
Dynamic Resource Allocation (DRA) is the standard way to hand out GPUs since Kubernetes 1.34: a ResourceClaim instead of nvidia.com/gpu, attributes instead of counters, CDI instead of device mapping. We walk through the three new API objects, DRA mode in the NVIDIA GPU Operator, and what exactly breaks when you migrate.

A contact form on a static site: Cloudflare Turnstile + Pages Functions + D1 + Telegram — no backend of your own
A live contact form on a static Astro site, entirely inside Cloudflare's free tier: a Turnstile widget against bots, server-side token verification in a Pages Function, a message archive in D1 and an instant Telegram push. The whole "backend" is one TypeScript file — and the real traps were in configuration, not code.

The same architecture, self-hosted: rebuilding the part-1 AWS serverless diagram on your own VM for $0/mo (part 2/2)
We rebuild the part-1 serverless diagram on our own VM: Kong instead of API Gateway, Node.js instead of Lambda, PostgreSQL, MinIO, Keycloak, RabbitMQ, and Prometheus — the whole stack in one docker-compose.yml. What translates one-to-one, what has to be rewritten, and where the real difference between $0/mo and nearly-free serverless lies.

A minimal app architecture on AWS: a serverless stack — what every service does and how to read the diagram (part 1/2)
We take a reference serverless app diagram on AWS apart layer by layer: Route 53, CloudFront, S3, API Gateway, Lambda, DynamoDB, SQS, Cognito, CloudWatch — what each service does and why it hurts without it. A minimal SAM template rebuilds a copy of the diagram in one evening.