Backup & Restore
Frappe's built-in bench backup exports a site's full state.
What gets backed up
| Component | Included? |
|---|---|
| Database (schema + data) | Yes — SQL dump |
| Site config | Yes — separate file |
| Public files | With --with-files |
| Private files | With --with-files |
| App code | No — apps live in git, restored separately |
Creating a backup
bench --site mysite backup --with-files
# Output: sites/mysite/private/backups/
Restoring
# Database
bench --site mysite restore /path/to/database.sql.gz
# Files (less common — usually you only restore DB)
bench --site mysite restore /path/to/database.sql.gz \
--with-public-files /path/to/files.tar \
--with-private-files /path/to/private.tar
Scheduled backups
Configure in Backup Manager:
- Frequency (daily / weekly)
- Number of backups to keep (older auto-deleted)
- Optional offsite upload — S3, Google Drive, Dropbox
Managed plans
Frappe Cloud and Prilk-managed run automated daily backups with offsite retention (typically 30 days, longer on enterprise plans). You can download a backup any time from the dashboard.
Disaster recovery
Test restore at least quarterly. A backup you've never restored from might be unusable for reasons you don't discover until it's too late. Common rehearsals:
- Restore last night's backup to a staging site
- Verify counts: invoices, customers, GL entries
- Spot-check one document opens correctly
Encryption
Frappe doesn't encrypt backup files by default. For sensitive data, encrypt the backup file at rest using gpg or your storage provider's encryption-at-rest features.
Last updated 3 days ago
Was this helpful?