Why I wrote this

After the storage migration, I ran into the next very normal sentence that secretly means "your weekend is gone":

Can we deploy this on our own Linux server?

Not "can we deploy it to AWS". Not "can we use ECS". Not "please make a Terraform module and call it a day". The ask was two separate apps, two separate client-owned machines, and the same hard constraint underneath: keep it off managed AWS infrastructure.

This changed the shape of the problem immediately. ECS was out. RDS was out. ALB was out. CloudWatch was out. All the boring managed pieces I usually lean on became my problem again: process restarts, logs, ports, database connectivity, Redis, TLS, health checks, static assets, long-running requests, file permissions, and the tiny Linux details that wait until 2 AM to become interesting.