Backup ≠ restore. Test the restore path before an incident.
Quarterly drill:
- Spin up a fresh VPS with the same hostname (or use
/etc/hostsoverrides on a workstation). - Install Mailcow as if new.
- Run
./helper-scripts/backup_and_restore.sh restoreand point at your snapshot. - Log in, verify mailboxes mount, send a test message in and out.
Point-in-time recovery options:
- ZFS / BTRFS snapshots at the host level — atomic, hourly, near-zero cost.
- MariaDB binlogs — set
MYSQL_BINLOG=yinmailcow.confto replay individual transactions. - S3 versioning on rclone-pushed backups — ransomware insurance.
RTO/RPO targets:
| Setup | RPO | RTO |
|---|---|---|
| Daily rclone push | 24 h | 1–2 h |
| Hourly ZFS + nightly off-host | 1 h | 30 min |
| Synchronous DRBD/replicated vmail | Seconds | 5 min |
For most small teams, daily off-host with quarterly drills is plenty.
Sign in to keep track of what you have read.