wpmgr
Backups and restore

Incremental WordPress backups with point-in-time restore

Schedule full and incremental backups for every site in your fleet. Restore to any snapshot with the site staying online, all without touching a shared password.

A full backup every night wastes time and storage

Most WordPress backup plugins copy the entire site on every run. When something breaks at 2 am, that nightly archive is hours old, and restoring from a giant zip on a live server takes down the site for everyone. A smarter approach records only what changed, keeps the full history in an expandable chain, and lets you restore to any point without going offline.

How it works

Under the hood

The steps that make it work, and what each one does.

1

Schedule backups per site

Set a daily or weekly schedule per site, or run a manual backup on demand before a risky change. WPMgr queues the job and the lightweight agent plugin handles the export on the site's own server with no SSH and no shell access required.

2

Increments pack only changed files

The first run is a full base snapshot. Every subsequent run packs only files that changed since the last base or increment. Database dumps use a pure-PHP streaming archiver that works on locked-down managed hosts without mysqldump.

3

Stored to the destination you choose

Completed archives are streamed to your configured backup destination: S3-compatible storage, SFTP, or local disk. Image bytes and file data move directly from the site to storage using short-lived presigned URLs, never through the control plane.

4

Restore to any snapshot

Pick any base or increment in the chain and restore. The site stays online through the restore, the previous state is preserved as a restore point, and you can revert the revert if something still looks wrong.

Backup chain7 snapshots
BaseJun 15218 MB
-
+1Jun 164.2 MB
-
+2Jun 176.8 MB
-
+3Jun 182.1 MB
-
+4Jun 198.4 MB
-
+5Jun 205.7 MB
-
+6Jun 213.2 MB
Fleet backup health
shop.example.com
2h agoprotected
blog.example.com
1h agoprotected
staging.example.com
3d agostale
client-a.example.com
4h agoprotected

What's included

Every capability ships in the open-source release.

Incremental backup chains

Base plus increments in one expandable chain. Increments pack only files that changed, so storage costs stay proportional to what actually changed, not the full site size every time.

Point-in-time restore

Restore to any snapshot in the chain, full or incremental. The site stays reachable during restore. Disconnect and reconnect history is preserved so a full history is never lost.

Fleet backup browser

See every site's backup status across the fleet: protected, stale, or unprotected. Sort and filter to find sites that have not run a successful backup in the last 24 hours.

Client-side encrypted backups

Enable end-to-end encryption and the control plane stores only ciphertext. It never holds the decryption key, so even a compromised control plane cannot read your backup data.

No shell access required

The agent uses a pure-PHP streaming dump and archiver. Backups work on managed and locked-down WordPress hosts without mysqldump, shell access, or FTP credentials.

Automatic pre-update snapshot

Fleet update runs take an automatic snapshot before applying changes. If a health check fails post-update, the site auto-reverts to the snapshot and reports the failure.

FAQ

Questions answered

Common questions about this feature.

How are incremental backups stored?

WPMgr uses a content-addressed chunk store. A full base snapshot is taken on the first run and on a configurable cadence thereafter. Every subsequent run identifies changed files and packs only those into an incremental archive. The dashboard shows the full base-plus-increments chain so you can restore to any point.

Can I restore to a specific point in time?

Yes. Every base snapshot and every incremental archive is listed in the dashboard. Pick any one and restore. The site stays reachable during the restore, and the previous state is preserved as a revert point.

Does it work on managed WordPress hosts that restrict shell access?

Yes. The agent uses a pure-PHP streaming dump and archiver. There is no dependency on mysqldump, shell access, or cron-level permissions beyond what WordPress itself uses.

Where are backups stored?

You configure the destination: S3-compatible object storage, SFTP, or local disk on the control plane host. File data moves directly from the site to storage using short-lived presigned URLs and never passes through WPMgr's control plane.

Can backups be encrypted?

Yes. Client-side encryption is opt-in per site. When enabled the control plane stores only ciphertext and never holds the decryption key. The key stays on your infrastructure.

Run your whole fleet from one dashboard.

Free and open source. No per-site fee. The full release is on GitHub.