All persistent state lives in two places:
/opt/mailcow-dockerized/data/— bind-mounted volumes (configs, certs, Rspamd state, Redis dumps).- Docker named volumes — the heavy stuff (Vmail, MariaDB, Postfix queue, Solr index).
Critical volumes:
| Volume | What's inside |
|---|---|
vmail-vol-1 |
All mailbox content (the biggest one) |
mysql-vol-1 |
Account DB, ACLs, transports |
redis-vol-1 |
Bayes tokens, fail2ban state |
postfix-vol-1 |
Queue (transient but worth grabbing) |
crypt-vol-1 |
Certificates + DKIM keys |
Don't try to back up live Docker volume directories. Use Mailcow's built-in helper:
./helper-scripts/backup_and_restore.sh backup all
It pauses writers, snapshots everything to /var/backup/mailcow_backup_<ts>/, and restarts. Run nightly via cron, then push to S3 / B2 / Wasabi with rclone.
Sign in to keep track of what you have read.