Berkay Bulut
Posts

Never Lose Your Cache Again: High‑Availability Redis for WordPress with Sentinel, AOF/RDB, and Real Failover
So, a quick story. A few summers ago, I was babysitting a WooCommerce sale that was going way too well.…

The Calm Way to Stop wp-login.php and XML‑RPC Brute Force: Nginx Rate Limiting + Fail2ban
So there I was, coffee in hand, reading through yet another noisy access log. Lines and lines of POST /wp-login.php…

The nftables Firewall Cookbook for VPS: Rate Limiting, Port Knocking, and IPv6 Rules (Without the Drama)
So there I was, a sleepy Sunday morning, coffee in hand, poking through a small VPS I use for side…

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…

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…

VPS Log Management Without the Drama: Centralised Logging with Grafana Loki + Promtail, Retention, and Real‑World Alert Rules
So there I was, nursing a lukewarm coffee while an API decided it would spit 500s only when I wasn’t…

Stop Fighting Your Cache: The Friendly Guide to Cache-Control immutable, ETag vs Last‑Modified, and Asset Fingerprinting
Ever ship a tiny CSS tweak and watch it stubbornly refuse to show up for half your users? I’ve been…

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…

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…
