MANGROVE_DATA_DIR; /var/lib/mangrove/data in a setup.sh install):
mangrove.db: projects, deployments, settings, users, and every secret, encrypted.master.key: the key those secrets are encrypted with.
master.key, every stored secret
(variables, GitHub tokens, webhook secrets) is unrecoverable, even with
the database intact.
Take a backup
Owners only:MANGROVE_API_URL),
so the backup lands wherever you run it, not on the box it protects. It
won’t overwrite an existing file.
The archive holds:
mangrove.db: a consistent snapshot, taken safely while Mangrove is running.master.key.BACKUP_INFO.txt: when it was taken, and how to restore it.
Schedule it
There’s no built-in schedule or cloud upload. Use cron on another machine:mangrovectl reuses the session saved by mangrovectl login. Sessions last
30 days, so log in again before it expires, or run cron as a user who
does. See Sign-in and sessions.
What isn’t in it
- Your apps’ data. Database contents and files in volumes need their own backups. See Databases and Storage.
- Images and running containers. You redeploy after a restore.
- Caddy’s routes. Redeploying pushes them again.
Restore on a new box
-
Install Mangrove (
setup.shor by hand), but don’t let it start for the first time. If it already did,systemctl stop mangrove. -
Put the two files into the data directory:
-
systemctl start mangrove, and sign in with any account from the backup. - Redeploy every deployment. That rebuilds images, starts containers and restores routes.
- Restore your apps’ data from their own backups.