Backups and restore
Oct 15, 2026
What you must back up
| What | Why |
|---|---|
| The database | Clients, orders, invoices, settings, everything |
.env |
Holds the APP_KEY. Without the same key, encrypted values (gateway keys, SMTP password, server passwords, 2FA secrets) cannot be read |
storage/app/private |
Ticket attachments, email attachments, license keys (licensing), downloads, receipts |
public/cms-uploads, public/branding-uploads and page-builder uploads |
Images you uploaded |
| Any folder you set in File Storage | Files kept outside the app |
plugins/ |
Only if you added plugins by hand. Store plugins can be re-installed. |
Make a database backup
-
Automatic before updates: the updater makes one. See Updating.
-
Offsite and automatic: install S3 Backup.
-
By hand with mysqldump:
mysqldump --single-transaction -u USER -p DATABASE | gzip > whbmp-$(date +%F).sql.gz -
cPanel: Backup or phpMyAdmin > Export.
Restore
-
Put the files back (the same version of WHBMP, your
.env,storage/app/private). -
Create an empty database and point
.envat it. -
Import the dump:
gunzip < whbmp-2026-10-14.sql.gz | mysql -u USER -p DATABASEor use WHBMP's own command for the backups the updater made:
php artisan whbmp:restore-database -
Run
php artisan optimize:clear. -
Check System > System Health, then press Check Now on the License page.
How often
- Database: at least daily, more often if you take many orders.
- Files: daily or weekly.
- Keep several generations and test a restore now and then.
Keep backups safe
Backups contain client data. Store them encrypted and away from the server. S3 Backup can encrypt before upload.