Infographic explaining One Server, Many PHPs: How I Run Per‑Site Nginx + PHP‑FPM Pools Without the Drama
Technology

One Server, Many PHPs: How I Run Per‑Site Nginx + PHP‑FPM Pools Without the Drama

9 November 2025

So there I was, staring at a server with a mix of WordPress, a legacy Laravel 5 app, and a shiny new Symfony project that really wanted PHP 8.2. Sound familiar? One client needed an old extension that wouldn’t compile beyond 7.4, another was excited about JIT on 8.x, and the third just wanted to…

Visual representation of Never Lose Your Cache Again: High‑Availability Redis for WordPress with Sentinel, AOF/RDB, and ...
Technology

Never Lose Your Cache Again: High‑Availability Redis for WordPress with Sentinel, AOF/RDB, and Real Failover

9 November 2025

So, a quick story. A few summers ago, I was babysitting a WooCommerce sale that was going way too well. The site was humming, Redis was happy, and the object cache was doing its thing—until the primary Redis process quietly vanished in the middle of a promo push. Suddenly, what felt instant started dragging. Queries…

Illustration depicting The Calm Way to Stop wp-login.php and XML‑RPC Brute Force: Nginx Rate Limiting + Fail2ban concept
Technology

The Calm Way to Stop wp-login.php and XML‑RPC Brute Force: Nginx Rate Limiting + Fail2ban

9 November 2025

So there I was, coffee in hand, reading through yet another noisy access log. Lines and lines of POST /wp-login.php requests, all from random IPs that had never bought a thing, never read a blog post, never even loaded the homepage. If you’ve ever managed a WordPress site for more than a week, I bet…

Visual representation of The nftables Firewall Cookbook for VPS: Rate Limiting, Port Knocking, and IPv6 Rules (Without the...
Technology

The nftables Firewall Cookbook for VPS: Rate Limiting, Port Knocking, and IPv6 Rules (Without the Drama)

9 November 2025

So there I was, a sleepy Sunday morning, coffee in hand, poking through a small VPS I use for side projects. A handful of weird SSH connection attempts popped up in the logs, then a few aggressive HTTP requests with random query strings—clearly not from my friends. You’ve probably had that moment too: you open…

Technology

How I Ship Safer Containers: Rootless Docker/Podman, Cosign Signatures, Trivy Scans, and Least‑Privilege Without the Drama

The Day Rootless Clicked For Me So there I was, late one Thursday, poking at a production node that kept throwing noisy alerts every time a container hiccuped. Nothing catastrophic—just the familiar death-by-a-thousand-papercuts feeling. You know the one: tiny permissions issues, weird port bindings, logs that look like a ransom note. In the middle of…

9 November 2025

VPS SSH Hardening Without the Drama: FIDO2 Hardware Keys, SSH CA, and Safe Key Rotation Step-by-Step

So there I was late one evening, watching a stream of failed SSH logins scroll by like a slot machine that never pays out, and it hit me: most of us treat SSH like a trusty old door lock. It works, we’re used to it, and we only think about it when something rattles. Then…

9 November 2025

Loki on a VPS: Label Design, Retention and Alerting

A design-focused guide to VPS logging with Loki, covering label cardinality, parsing, storage retention and actionable alerts, with Promtail marked as legacy and Alloy recommended for new deployments.

8 November 2025

Static Asset Caching: Cache-Control and Fingerprinting

Pair fingerprinted asset URLs with long-lived caching, keep HTML easy to refresh, and use stable validators. Includes header patterns, deployment ordering, and checks for browser and CDN behavior.

8 November 2025

My No‑Drama Playbook: Hosting WordPress on a VPS with Docker, Nginx, MariaDB, Redis, and Let’s Encrypt (with docker‑compose + Persistent Volumes)

So there I was again, staring at a sluggish WordPress site on a tiny VPS, thinking, there has to be a cleaner way to run this without it turning into a weekend project every time something needs updating. I’d done the classic LAMP installs, the one‑off tweaks, the frantic plugin audits after a spike in…

8 November 2025

Zero-Downtime MySQL Schema Migrations: The Blue/Green Dance with gh-ost and pt-online-schema-change

The Little Panic That Taught Me to Love Zero‑Downtime Migrations There’s a special kind of silence that happens when a checkout page stops working. I remember staring at a terminal, watching a migration hang on a tiny lock, and feeling the oxygen leave the room. It was a simple change, or so I thought. Add…

8 November 2025
↑