Use two backup layers:
- Omada UI automatic backups for application-level recovery.
- Authenticated MongoDB dumps for disaster recovery.
make backup stops the Omada controller, runs mongodump with the dedicated MongoDB backup user, restarts the controller, and retains the newest BACKUP_RETENTION_COUNT dump directories.
Backups are written under:
backups/mongodb/<timestamp>/
The default flow intentionally stops the controller to avoid dumping while Omada is writing.
Before upgrades or major configuration changes, also export a backup from the Omada UI. The UI backup is the easiest way to restore sites, devices, and controller configuration into a clean install.
- Stop the stack:
make down. - Preserve current volumes before replacing data.
- Start MongoDB only or use a temporary restore container.
- Run
mongorestorewith the desired dump. - Start the full stack.
- Verify login, devices, sites, and logs.
For migrations from other images, prefer Omada UI backup/restore first.
Do not wait for an outage to test recovery. After the first successful deployment, create a backup, restore it into a temporary clean stack, and verify that the controller login, sites, and device inventory are present.
MongoDB image init variables only apply to empty /data/db. Changing .env after first boot does not update existing users.
Use:
make rotate-mongo-password USER=omada NEW_PASSWORD='new-secret'
make rotate-mongo-password USER=omada_backup NEW_PASSWORD='new-backup-secret'