Restore a backup
Get a site or database back from a backup snapshot — local, S3, Backblaze, or a manual SQL dump. ~5 minutes for a typical site.
What kind of backup do you have?
How you restore depends on where the backup came from:
- NovaPanel-managed snapshot — local, S3, Backblaze, or SFTP destination set up in admin. Easiest path; one-click restore from the UI.
- Manual
tar.gz+.sqlfile — usually from another host, or a backup made before NovaPanel existed. Two-step manual restore. - WordPress / app-specific backup plugin — UpdraftPlus, BackupBuddy, etc. Restore through the plugin's own UI after the site is back up.
Restoring from a NovaPanel snapshot
Find the snapshot
Customer panel → Backups. The list shows every snapshot with timestamp, size, and destination (local / S3 / etc). Click the one you want.
Pick what to restore
A snapshot can include site files, database, mail, or any combination. Click Restore and tick which components you want pulled back. Common cases:
- "Site got hacked, roll back files only" — just files. Database stays as-is.
- "Bad database migration, roll back DB only" — just database. Files untouched.
- "Full disaster, restore everything" — all components. The panel will atomic-replace the current site directory and drop+recreate the DB.
Confirm the warning
The panel pops a confirmation. Read it. Restoring overwrites whatever's currently live — there's no "undo" beyond restoring a different snapshot afterwards. Tick the confirmation and click Restore.
Restore time scales with snapshot size — a 100 MB site comes back in ~10 seconds, a 5 GB site in a few minutes. Progress is logged live to a panel notification.
Restoring from a manual tarball + SQL dump
This is what you do when you have site.tar.gz + db.sql from another host (e.g., you migrated from cPanel / Plesk and have their backup files).
Files
Upload the tarball via the customer panel's File Manager or SCP it directly:
scp site.tar.gz user@your-host:/tmp/
ssh user@your-host
sudo -u <customer-user> tar xzf /tmp/site.tar.gz \
-C /home/<customer-user>/sites/<domain>/public/ Then make sure ownership is right (sometimes tarballs preserve the wrong UIDs):
chown -R <customer-user>:<customer-user> \
/home/<customer-user>/sites/<domain> Database
Customer panel → Databases → <db> → Import. Drag in the .sql file, click Import. Or via SSH:
mysql -u <db-user> -p <db-name> < /tmp/db.sql
If the dump references a different DB name, fix that in the USE line at the top of the file before importing.
Common issues
"Restore button is greyed out"
The site doesn't exist on this panel anymore. Restore from a snapshot only works if the destination site row still exists in the DB. To restore a fully-deleted site: re-create it first (Sites → Add site, same domain), then run the restore.
"Restore complete but the site looks broken"
Almost always permissions. Run chown -R <customer>:<customer> /home/<customer>/sites/<domain> from SSH, then check the site again. PHP-FPM running as the wrong user is the most common cause.
"S3 destination shows empty list"
Either the AWS / Backblaze credentials in admin → Backups → Destinations are wrong, or the bucket policy doesn't grant ListObjects. Test the credentials with the AWS CLI: aws s3 ls s3://your-bucket/ --endpoint <endpoint>.
Setting up automatic backups
Customer panel → Backups → Schedule. Pick a destination (local for free; S3 / Backblaze / SFTP need Pro), retention policy (7 daily + 4 weekly + 3 monthly is sensible), and enable. Snapshots run nightly with optional encryption-at-rest.