Server Operations: 47 Sites on Three Servers

Running what this portfolio is made of: three servers, 47 websites, databases, certificates, backups and protection. Not as a side task but as work in its own right — everything else is only reachable because of it.

What was done

  • One Nginx as the shared entrance in front of every site; each site in containers of its own
  • Nightly backup of databases, files and configuration to Google Drive, verified by size rather than trusted blindly
  • Let’s Encrypt certificates renewed and deployed to Nginx automatically
  • All configuration lives in Git: every change is traceable and reversible
  • Checks every five minutes: if a site goes down, a message reaches Telegram immediately

Result

  • Attack on the WordPress login: 4,178 attempts from 539 addresses in one day
  • After four layers — Cloudflare rules, refusal of requests that bypass Cloudflare, an automatic block list, a hardened login — what arrives is single requests per hour
  • An out-of-memory outage used to take hours to notice; now it announces itself in five minutes

Stack: Docker Compose, Nginx, Traefik, Caddy, MariaDB, PostgreSQL, Redis, Cloudflare, certbot, rclone, Git

Description