=== Movebase – Backup, Restore & Migration ===
Contributors: 5ivecode
Tags: backup, restore, migration, cloud backup, s3
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.1
Stable tag: 1.2.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Back up, restore and migrate WordPress with verified backups, safe one-click restore and cloud backup to IDrive e2, MEGA S4 and S3 storage.

== Description ==

**Movebase is a WordPress backup, restore and migration plugin built to be easy to trust.** Create a full backup in one click, restore it safely, or migrate your site to a new host or domain. Every backup is checked before it can replace anything.

= Back up WordPress in one click =

* Full backups of the database, uploads, themes and plugins.
* Large sites are split into numbered ZIP parts so downloads and uploads stay reliable.
* Work runs in small saved batches. If the host pauses or you close the page, it continues from the last saved point instead of starting over.
* Download any backup, keep it on your server, or save it to cloud storage.

= Restore safely =

* Restore a saved backup straight from your server, without uploading anything.
* Or upload the ZIP parts from your computer, use parts uploaded through your host's File Manager, or bring a backup back from cloud storage.
* Every backup is verified before your website changes.
* You confirm the destination before content and users are replaced.
* The previous website is kept as a recovery copy, so you can undo the restore.

= Migrate or clone your site =

Move WordPress to a new host, a new domain or a staging site. Restore a Movebase backup on the new installation: site addresses (including serialized data) and standard table prefixes are converted automatically.

= Cloud backup =

* Back up to **IDrive e2**, **MEGA S4** or any **S3-compatible** storage with your own access keys.
* Direct-to-cloud backups that need far less space on your host.
* Move storage settings to another site with a password-protected connection file.

= Clear progress, honest status =

* See the current step, whether your host is responding, and exactly what to do next.
* A background-processing check shows whether backups keep running after you close the page.
* Activity logs with Copy and Download report. Passwords, storage keys and site content are never written to logs.
* Searchable help for every common message.

Movebase supports single-site WordPress.

== Installation ==

1. In WordPress, go to **Plugins → Add New**, search for **Movebase**, then install and activate it.
2. Open **Movebase → Backups** and choose **Create backup**.
3. Optional: open **Movebase → Storage** to connect cloud storage.

Requirements: 64-bit PHP 8.1 or newer with the ZIP extension, and a MySQL or MariaDB database using InnoDB tables. SQLite3 is used when available but not required.

== Frequently Asked Questions ==

= My host has a low PHP memory limit. Will restores work? =

Yes, in most cases. While it works, Movebase raises the PHP memory limit to the one WordPress uses for its admin screens (256M by default). Some hosts lock the limit. The memory required depends on the site and restore method; a low limit can pause a restore or cloud transfer. If PHP does run out of memory, Movebase pauses and keeps your progress. Ask your host to raise memory_limit, then click Continue from saved progress. Settings shows the memory available for backups and restores.

= What does a backup include? =

The database, uploads, themes and regular plugins. WordPress core, wp-config.php, must-use plugins, drop-ins and files outside wp-content are not included.

= Can I migrate my site to a new domain or host? =

Yes. Install Movebase on the new WordPress site, then restore your backup there: upload the ZIP parts, use your host's File Manager, or connect the same cloud storage. Site addresses are updated automatically.

= Where are backups stored? =

In a protected folder on your server: wp-content/movebase-storage, with web access blocked. If your server shows that folder to visitors (for example on Nginx), Movebase uses a private folder outside your website instead. Versions before 1.2.0 kept files in the server's temporary folder, which many hosts empty. Movebase now moves them to a permanent folder by itself and checks every file; if the host had already emptied it, Movebase starts a new folder and tells you once on the Overview screen. If Movebase ever needs your help (for example, the folder was removed by your host), Movebase opens a short screen explaining what to do, with details you can send to your host. Your host can also set a private location with MOVEBASE_STORAGE_DIR in wp-config.php. Keep important backups off-site too.

= Can I close the page while a backup runs? =

If your host allows background requests, yes. **Movebase → Settings → Background processing** tells you. If your host blocks them, keep the page open; the task pauses safely if you leave and continues when you return.

On LiteSpeed servers, Movebase adds a small, clearly marked block ("Movebase background tasks (LiteSpeed)") to your site's .htaccess while a task runs, so LiteSpeed does not stop background work early. It is emptied when the task finishes and removed when you deactivate Movebase. Other servers are not affected.

= Can I cancel a restore? =

Yes. Choose **Cancel restore** while it runs. If your website has not been changed yet, nothing changes. If files or the database were already replaced, Movebase puts your website back exactly as it was.

= Why are there several ZIP files? =

Large backups are split into numbered parts so downloads and uploads stay reliable. Every part is needed to restore. Do not rename or extract them.

= Who do I sign in as after a restore? =

Restoring replaces WordPress users with the source website's users. Sign in with an administrator account from the source website.

= How do I undo a restore? =

Use **Recover previous destination** under More options on the task card. If WordPress cannot open, run this from the WordPress folder with WP-CLI:
`wp eval-file wp-content/plugins/movebase-backup-restore-migration/recover.php JOB_ID --skip-plugins --skip-themes`

= What happens when I uninstall Movebase? =

Movebase stops its scheduled tasks. Saved backups, recovery copies and the (encrypted) storage connection stay in Movebase's private folder so an interrupted restore can still be recovered, along with a few small Movebase options in the database. Delete backups in Movebase before uninstalling if you no longer need them, or remove that folder afterwards.

= Does Movebase support multisite? =

Not yet. Movebase supports single-site installations.

== External services ==

Movebase connects to external services only when you choose to use them.

**Your S3-compatible storage (IDrive e2, MEGA S4 or another provider)**
Used only after you connect storage under Movebase → Storage. Backup files, backup catalogs and folder listings are sent to and read from the endpoint and bucket you enter, authenticated with your access keys. Your keys are stored encrypted on your server and are never written to logs.

* IDrive e2: [Terms of Service](https://www.idrive.com/s3-storage-e2/terms), [Privacy Policy](https://www.idrive.com/s3-storage-e2/privacy_policy)
* MEGA S4: [Terms of Service](https://mega.io/terms), [Privacy Policy](https://mega.io/privacy)
* Other S3-compatible providers: the terms and privacy policy of the provider you choose.

**Movebase Cloud (optional, run by Movebase)**
Used only after you click Connect Movebase Cloud (or enter a connection key) under Movebase → Storage. Movebase Cloud is an optional paid storage service; every Movebase feature works without it.
* When you connect: this site's address, name and site icon address (if one is set), the address of its Movebase screen (to return to after you approve), and a one-time security challenge are sent to the service. You approve the connection in your Movebase account at movebase.net.
* While connected: the site sends its WordPress, PHP and Movebase versions and its site icon address when it checks your plan and storage, and the site key that identifies it. Your WordPress password, users and content are not sent.
* Cloud backups: the site asks the service for the list of backups in your account (grouped by website, searched and paged by the service). Search words you type are sent to find matching websites.
* Disconnect at any time under Movebase → Storage, or from your Movebase account at movebase.net.
* Service: https://movebase.net ([Terms of Service](https://movebase.net/terms), [Privacy Policy](https://movebase.net/privacy))

**Feedback to Movebase (optional, run by Movebase)**
Sent only when you press Send in "Send feedback" inside Movebase, or choose "Send and deactivate" in the optional box shown when you deactivate the plugin. It sends the reason you picked and what you wrote, your Movebase, WordPress and PHP versions and your admin language. Your email address and this site's address are sent only if you add them. Choosing "Skip and deactivate" sends nothing.
* Service: https://movebase.net/api/v1/feedback ([Terms of Service](https://movebase.net/terms), [Privacy Policy](https://movebase.net/privacy))

Movebase also sends loopback requests to the WordPress AJAX endpoint generated by admin_url() so work can continue in the background. These requests target your own website; depending on its hosting configuration, they may pass through its proxy or CDN.

== Screenshots ==

1. Overview: protection status, recent backups and shortcuts.
2. Backups: create a backup, then download or restore saved backups.
3. Restore: upload, verify and confirm, step by step.
4. Confirm the restore: see what gets replaced before anything changes.
5. Storage: Movebase Cloud or your own S3-compatible storage.
6. Cloud backups for every website in your account, with search.
7. Logs: review activity and share a report.

== Changelog ==

= 1.2.0 =
* New: Overview screen with your protection status at a glance: last backup, copy off this server, background work, saved backups and shortcuts.
* New: Cloud backups are grouped by website, with this site first and search for accounts with many sites. Backups from other sites are clearly marked, and restoring one asks first.
* New: Backup status widget on the WordPress Dashboard.
* New: transfer steps (Create, Upload, Verify, Done) on storage transfers.
* New: What's new, and Send feedback inside Movebase. Optional feedback when deactivating; nothing is sent unless you choose Send.
* Gentle, dismissible reminders on the Dashboard and Plugins screens when there's no recent backup, or no copy off this server.
* On the Movebase screen, notices from WordPress and other plugins wait in one tray instead of covering it. Error notices start open.
* A refreshed design that matches movebase.net, with bundled fonts (no outside requests) and shorter text.
* New: Movebase menu in the WordPress toolbar for quick actions (Back up now, Restore, Cloud backups and more).
* Clearer last steps when restoring: one simple confirm form with a copy button for the website address, and a checklist once the website is restored.
* New: a timer shows how long a backup has been running, and how long it took once it's ready.
* Fix: restoring a backup no longer disconnects this website from Movebase Cloud or forgets its storage settings.

= 1.1.0 =
* New: optional Movebase Cloud. Connect this site by approving it in your browser, or with a one-time connection key, and see your plan and storage on the Storage screen. Once connected, Back up to storage, Cloud backups and restore use Movebase Cloud, with no keys to manage.
* Backups and restores now raise the PHP memory limit automatically, the same way WordPress does for its admin screens, so sites with a low limit no longer need manual changes.
* Restores need much less free memory than before and work on hosts with a locked 56M limit.
* If PHP still runs out of memory, Movebase retries with smaller batches, then pauses with a clear message instead of retrying forever. Progress is kept.
* Settings shows how much PHP memory backups and restores get, with a warning when it is low.
* Faster recovery of the previous site after a cancelled or failed restore.
* Removed Google Drive. Cloud backup uses IDrive e2, MEGA S4 and S3-compatible storage.

= 1.0.0 =
* First public release.
* One-click backups split into verified multipart ZIPs, with resumable saved progress.
* Restore from the server, an upload, File Manager or cloud storage, verified before anything changes, with a recovery copy of the previous site.
* Migration to a new host or domain with automatic URL and table-prefix conversion.
* Cloud backup to IDrive e2, MEGA S4 and any S3-compatible storage.
* Clear task status, background-processing check, activity logs and searchable help.
* Emergency recovery through WP-CLI.

== Upgrade Notice ==

= 1.2.0 =
New Overview, Cloud backups grouped by website, a toolbar menu, clearer restore steps and a refreshed design. Also fixes restores disconnecting Movebase Cloud.

= 1.1.0 =
Restores work on hosts with low PHP memory. Google Drive was removed; reconnect storage with IDrive e2, MEGA S4 or S3-compatible keys.

= 1.0.0 =
First public release.

== Credits ==

Icons from [Lucide](https://lucide.dev) (ISC License). Fonts: Inter and Bricolage Grotesque (SIL Open Font License 1.1), bundled in assets/fonts with their licenses. Provider logos are trademarks of their owners and are used only to identify storage services.

== Source code ==

The complete, human-readable source code is included in this plugin. PHP source is in the plugin root, includes/ and views/. Editable JavaScript and CSS source is in assets/. WordPress loads these JavaScript and CSS files directly; there are no separate compiled bundles or required build steps. To modify the plugin, edit the bundled source files directly. No npm installation, transpiler or bundler is required.

The JavaScript is distributed unminified. Formatting does not require a runtime dependency.

Third-party icon data is a subset of Lucide v0.460.0, bundled in assets/icons.js and includes/icons.php. Upstream source: https://github.com/lucide-icons/lucide/tree/0.460.0 . The bundled ISC license and attribution are in assets/ICONS-LICENSE.txt. Storage-provider logo sources and notices are in assets/providers/NOTICES.txt.
