Linux Server Hardening on a Small VPS: The Baseline I Run First
A ten-minute baseline for linux server hardening on a small VPS: key-only SSH, a deny-by-default firewall, fail2ban and updates, plus the Docker and ufw trap.
A ten-minute baseline for linux server hardening on a small VPS: key-only SSH, a deny-by-default firewall, fail2ban and updates, plus the Docker and ufw trap.
pg_ivm keeps a Postgres materialized view current without cron refreshes. What the README says about indexes, aggregates, locks and pg_dump, and what I'd test first.
A restic backup setup for a small VPS: encrypted snapshots off-server, Postgres dumps piped straight in, sane retention, a systemd timer, and a restore test.
How I deploy to a single VPS without dropping requests: Docker Compose health checks, a second replica, and Caddy dynamic upstreams. Script and test loop…
Docker's new agent sandboxes put each agent in its own microVM. Here is why I'm removing docker.sock mounts from agent containers, and the hardening I'd…
depends_on only waits for a container to start. Here is how Docker Compose healthcheck, service_healthy and up --wait fix cold-start failures, plus the restart gap.
Caddy vs nginx for a small VPS: how certificates, reverse proxy config and health checks differ, and the cases where I would still pick nginx…
I used to open a port every time I needed to show a client a staging dashboard. Here's the Cloudflare Tunnel setup that replaced that…
I installed Coolify and Dokploy on identical Hetzner boxes and moved a client's staging server to one. Here's where they actually differ, not just on…
The Postgres tuning parameters I adjust on every VPS I run, plus what PostgreSQL 19 Beta 4 changes for autovacuum, REPACK, and checkpoint tuning.