Context
Mail and sites were accumulated hosts. Failure was discovered by a user. Backup was a file on the same disk. Migration meant hope.
System boundary
In scope
- web hosting
- mail (Mailcow)
- Docker deployments
- backup
- restore tests
- monitoring
- migration
Out of scope
building the hosted applications themselves
Architecture
Edge (Cloudflare/Nginx) in front of application containers and mail. Backups leave the machine. Monitoring is a separate channel from the thing it watches.
- Cloudflare
- Nginx
- App containers
- Mailcow
- Storage
- Off-site backup
- Monitoring
- Edge → compute → store
- Monitoring is off the host
- Cloudflare
- Nginx
- App containers
- Storage
- Off-site backup
- Mailcow
- Monitoring
Counts from the published record. They describe structure, not a measured result.
What is watched away from the host?
edge
- externalCloudflare
- interfaceNginx
runtime
- serviceApp containers
- serviceMailcow
persistence
- storeStorage
resilience
- storeOff-site backup
observation
- interfaceMonitoring
- CloudflareNginx
- NginxApp containers
- NginxMailcow
- App containersStorage
- MailcowStorage
- StorageOff-site backup
- NginxMonitoring
- MailcowMonitoring
Critical flows
DNS/edge
reverse proxy
app or mail container
storage. Backup jobs copy off-box. Alerts fire from health checks, not from the app’s own uptime page alone.
Stages
Decisions
Mail is a system
It gets isolation, backup, and monitoring like anything else that can take a company down.
Backups that have never been restored are not backups
Restore tests are scheduled work, not folklore.
Monitoring off the host
A box cannot be the only witness to its own death.
When it fails
| Condition | Detection | Response |
|---|---|---|
| Disk fill | Filesystem alerts | Shed logs; block non-essential writes |
| Mail queue explosion | Queue depth | Rate-limit outbound; inspect relay |
| Failed restore test | Scheduled restore job | Page; treat backup as broken |
| Certificate or DNS lapse | Expiry monitors | Renew path; status page |
Infrastructure
- Dedicated servers
- Docker
- Nginx
- Mailcow
- off-site backup
- Cloudflare
- uptime and log monitoring
Outcome
Hosting and mail run as operated systems: isolated, backed up, watched, and movable.
Current state
In production. Migrations and capacity work follow the same topology.