◆ Case Study · Sysadmin · Marketing agency

Knox Marketing Agency — managed VPS fleet

Twenty-four hardened servers running twenty-plus client sites for a growing agency: Linux provisioning, monitoring, backups and SSL — done once, done right, and invisible to the people who actually pay for it.

24nodes under management
20+client sites hosted
99.98%uptime, 18 months
214dlongest uptime streak
$ ansible knox-fleet -m status # every node, one command 22 healthy · 1 warning (knx-web07, load) · 1 in maintenance backups: last night 03:00 UTC — 24/24 verified ✓ $ uptime --pretty 214 days, no reboots, no surprises

The brief

Knox Marketing Agency had grown faster than its infrastructure. Twenty-plus client sites — landing pages, e-commerce shops, campaign microsites — lived on a scatter of rented servers from three different providers: different panels, different backup habits, and one box that had already failed twice during campaign launches. When a client's product launch coincided with a server crash two hours before the deadline, the agency decided the hosting had to stop being their problem.

They wanted one person to own the whole layer: provision new servers as campaigns came in, keep the old ones patched and monitored, and never again explain to a client why their launch page was down.

The build

I consolidated the scattered fleet into a single managed estate on a cloud provider the agency could budget for, then rebuilt everything to one standard: hardened Debian and Ubuntu images, identical configs, Ansible-managed. Every node is tracked in monitoring, every backup is verified, every certificate is renewed by automation instead of a calendar reminder.

  • 24-node fleet — 12 web nodes, a MySQL primary with replica, mail, two staging nodes and an edge cache node, all provisioned from one Ansible baseline.
  • Hardening baseline — firewall defaults-deny, SSH keys only, fail2ban, unattended security updates, minimal installed packages. Every new node reaches this state in under 20 minutes.
  • Monitoring with Grafana — CPU, memory, disk, network and per-site response times on one dashboard, with alerts that reach me before they reach the client.
  • Verified backups — nightly at 02:00 and 03:00 UTC, with a monthly restore drill that treats a backup as valid only if it actually restores.
  • SSL rollout — automated issuance and renewal across 20+ domains, A-grades on every client site.
  • Staging workflow — dedicated staging nodes where agency developers deploy campaign changes first; production only after a checklist sign-off.
  • Campaign surge handling — new nodes spin up from the Ansible baseline in under 20 minutes when a campaign launch needs capacity beyond the baseline.
Debian 12 / Ubuntu 22.04AnsibleNginx MySQL 8 replicationGrafanaPostfix Fail2banAutomated SSL

The result

Eighteen months in production: 99.98% uptime across the fleet, with the longest single-node uptime streak at 214 days. Campaign launches that used to be a coin flip are now routine — new nodes spin up from the Ansible baseline in under 20 minutes, staging catches mistakes before production sees them, and the one load warning in the last 24 hours was acknowledged before it became an incident. The agency stopped losing nights to hosting emergencies, and their clients never learn that any of this exists.

"The hosting stopped being our problem the day TDS took the fleet. Campaign launches used to be a coin flip — now we don't even think about the servers."

— Head of Production, Knox Marketing Agency

Servers behaving badly?

One person owning the whole layer: provisioning, monitoring, backups, SSL. Done once, done right.

Contact TDS Designs → See other work