{"id":382866,"date":"2026-10-25T12:44:21","date_gmt":"2026-10-25T12:44:21","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/drsite\/"},"modified":"2026-10-25T12:43:57","modified_gmt":"2026-10-25T12:43:57","slug":"drsite-backup","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/drsite-backup\/","author":23582003,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.1.2","stable_tag":"2.1.2","tested":"7.1.3","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"DRSite","header_author":"DRSite","header_description":"Asks for an API key on first run, then creates a restorable ZIP backup containing wp-content files + a full database dump. Restore from the admin UI or via the bundled REST API. Get your API key at https:\/\/drsite.app\/.","assets_banners_color":"455158","last_updated":"2026-10-25 12:43:57","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/drsite.app\/","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":47,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.1.2":{"tag":"2.1.2","author":"drsiteapp","date":"2026-10-25 12:43:57","revision":3764566}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3764585,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3764585,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3764585,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3764585,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.1.2"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[237040,151,153,152,7343],"plugin_category":[59],"plugin_contributors":[288441],"plugin_business_model":[],"class_list":["post-382866","plugin","type-plugin","status-publish","hentry","plugin_tags-api-key","plugin_tags-backup","plugin_tags-database","plugin_tags-restore","plugin_tags-zip","plugin_category-utilities-and-tools","plugin_contributors-drsiteapp","plugin_committers-drsiteapp"],"banners":{"banner":"https:\/\/ps.w.org\/drsite-backup\/assets\/banner-772x250.png?rev=3764585","banner_2x":"https:\/\/ps.w.org\/drsite-backup\/assets\/banner-1544x500.png?rev=3764585","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/drsite-backup\/assets\/icon-128x128.png?rev=3764585","icon_2x":"https:\/\/ps.w.org\/drsite-backup\/assets\/icon-256x256.png?rev=3764585","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Connects your WordPress site to DRSite (https:\/\/drsite.app\/). Backups, restores, the standby copy and health checks all run from your DRSite dashboard; the plugin itself only holds the connection.<\/p>\n\n<ol>\n<li>In DRSite, add the site, then open Backups \u2192 WordPress and copy the Plugin API key (it starts with drs_).<\/li>\n<li>Activate the plugin, go to Tools \u2192 DRSite, paste the key and save.<\/li>\n<li>In DRSite, click Check status on the site. Tools \u2192 DRSite then shows when DRSite last reached the site.<\/li>\n<\/ol>\n\n<p>DRSite calls the site's REST API with header <code>X-Drsite-Api-Key<\/code>; every call needs the saved key.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects the site to DRSite (https:\/\/drsite.app\/), a backup, monitoring and failover service run by Netcetera, the plugin's author. Without a DRSite account and API key the plugin does nothing.<\/p>\n\n<p>What is sent, and when:<\/p>\n\n<ul>\n<li>Backups: when DRSite asks for a backup (on the site's schedule, or when the site owner clicks Back up now in DRSite), the plugin creates a ZIP of wp-content, a database dump and a copy of wp-config.php, and uploads it to DRSite's storage with a one-time upload link that DRSite provides. DRSite's storage is S3-compatible object storage (IDrive e2 or Backblaze B2) used by DRSite on the site owner's behalf.<\/li>\n<li>Site health: when DRSite checks the site, the plugin returns WordPress, PHP and database versions, Site Health results, disk and database sizes, and its own version.<\/li>\n<li>Restores: when the site owner restores from DRSite, DRSite tells the plugin which backup to restore; the plugin restores it from the copy kept on the site. Nothing is sent.<\/li>\n<\/ul>\n\n<p>Nothing is sent unless DRSite calls the site with the site's own API key. The plugin does not track visitors or send personal data about them, other than any personal data stored in the site's own files and database, which is part of every backup.<\/p>\n\n<p>DRSite terms of service: https:\/\/drsite.app\/terms\nDRSite privacy policy: https:\/\/drsite.app\/privacy<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In WordPress, go to Plugins \u2192 Add New, search for DRSite and install it. Or upload the <code>drsite-backup<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate it.<\/li>\n<li>Open Tools \u2192 DRSite and save the API key from DRSite.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20are%20backups%20stored%3F\"><h3>Where are backups stored?<\/h3><\/dt>\n<dd><p>In DRSite's storage. The plugin makes each backup in <code>wp-content\/uploads\/drsite-backups\/<\/code> while DRSite collects it.<\/p><\/dd>\n<dt id=\"how%20do%20i%20restore%3F\"><h3>How do I restore?<\/h3><\/dt>\n<dd><p>From the site in DRSite: Backups \u2192 WordPress.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.1.2<\/h4>\n\n<ul>\n<li>Health check runs WordPress's Site Health tests (they were being skipped) and lists plugins, themes and WordPress core with an update waiting, for DRSite's care report.<\/li>\n<\/ul>\n\n<h4>2.1.1<\/h4>\n\n<ul>\n<li>Uploads to DRSite storage go through the WordPress HTTP API, still streamed from disk so large backups are not held in memory.<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Incremental backups when DRSite asks for them (Premium and Enterprise): only files changed since the night's full backup, plus the whole database. A restore puts the full back first, then the changes.<\/li>\n<li>Keeps only the last two days of backups on this server; DRSite keeps the rest.<\/li>\n<\/ul>\n\n<h4>2.0.2<\/h4>\n\n<ul>\n<li>Updates come from WordPress.org like any other plugin; DRSite no longer installs updates itself.<\/li>\n<li>Text domain and readme tidied for the WordPress.org directory, with an External services section.<\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Fixed: a backup requested by DRSite could stop with \"There has been a critical error on this website\" on sites where nothing else loads wp-admin's file functions (wp_tempnam).<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Slimmed down: Tools \u2192 DRSite only connects the site (API key and connection status). Backups, restores and health checks run from DRSite.<\/li>\n<li>Only DRSite keys (drs_ + 48 characters) are accepted; the old sk-live- generator is gone.<\/li>\n<\/ul>\n\n<h4>1.4.3<\/h4>\n\n<ul>\n<li>DRSite can update the plugin from its control panel (Backups \u2192 WordPress \u2192 Update plugin).<\/li>\n<\/ul>\n\n<h4>1.4.2<\/h4>\n\n<ul>\n<li>On Enterprise, a full backup a day also goes straight to the site's DRSite Cold Vault.<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>DRSite's key-protected routes keep working on sites that restrict the REST API to signed-in users (\"REST API restricted to authenticated users\"). Other routes stay restricted.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Uploads each backup straight to DRSite's storage with a one-time link, instead of DRSite downloading it from your site. Large backups no longer pass through DRSite's servers.<\/li>\n<\/ul>\n\n<h4>1.3.3<\/h4>\n\n<ul>\n<li>Sanitises the request URI, route and API key header before use.<\/li>\n<li>Plural form for the backup count; reviewer notes on intentional raw file and database calls.<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>Text domain matches the plugin slug (drsite-backup), so translations load.<\/li>\n<li>Tested with WordPress 7.1.<\/li>\n<li>Escapes the settings link in the admin notice; uses wp_delete_file().<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Backups leave out other plugins' backup folders (UpdraftPlus, All-in-One WP Migration, Duplicator, BackWPup, WPvivid and others), caches, Wordfence logs and debug.log, so they are smaller and faster.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>New key-protected REST route GET \/drsite\/v1\/download?file=\u2026 streams a backup ZIP, so DRSite can keep a copy off this server and use it for the standby copy.<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>Backup, restore, download, and API key forms post to Tools \u2192 DRSite instead of admin-post.php.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>A valid X-Drsite-Api-Key is accepted on \/drsite\/v1 even when the REST API is limited to logged-in users.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Added REST health endpoint <code>GET \/drsite\/v1\/health<\/code> with core Site Health checks, DB + disk stats, backup summary; added Site Health snapshot to the Tools \u2192 DRSite page.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added REST restore endpoint <code>POST \/drsite\/v1\/restore<\/code> (requires <code>file<\/code> + <code>\"confirm\": true<\/code>).<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: API key gate, backup ZIP, restore, REST endpoints.<\/li>\n<\/ul>","raw_excerpt":"Asks for an API key on first run, then creates a restorable ZIP (wp-content + database.sql + manifest).","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/382866","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=382866"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/drsiteapp"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=382866"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=382866"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=382866"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=382866"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=382866"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=382866"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}