{"id":336138,"date":"2026-07-09T11:10:16","date_gmt":"2026-07-09T11:10:16","guid":{"rendered":"https:\/\/en-au.wordpress.org\/plugins\/demfilz-backup\/"},"modified":"2026-07-09T11:09:59","modified_gmt":"2026-07-09T11:09:59","slug":"demfilz-backup","status":"publish","type":"plugin","link":"https:\/\/hat.wordpress.org\/plugins\/demfilz-backup\/","author":20035799,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0.1","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Demfilz Backup","header_author":"Demfilz","header_description":"Back up your whole WordPress site (database + files) into a single zip and store it safely in your own Google Drive. Restore any backup onto a new site \u2014 even on a different domain \u2014 with automatic, serialization-safe URL replacement. Schedule automatic backups and keep only the most recent copies.","assets_banners_color":"101523","last_updated":"2026-07-09 11:09:59","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/demfilz.com\/demfilz-backup","header_author_uri":"https:\/\/demfilz.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":33,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"demfilz","date":"2026-07-09 11:09:59"}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3601383,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3601383,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3601383,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3601383,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3601383,"resolution":"1","location":"assets","locale":"","width":1200,"height":760},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3601383,"resolution":"2","location":"assets","locale":"","width":1200,"height":760},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3601383,"resolution":"3","location":"assets","locale":"","width":1200,"height":760},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3601383,"resolution":"4","location":"assets","locale":"","width":1200,"height":760}},"screenshots":{"1":"Backup &amp; Restore screen with progress and your stored backups.","2":"Creating a backup to Google Drive.","3":"Restoring a backup.","4":"Settings: Google connection, what to include, schedule and retention."}},"plugin_section":[],"plugin_tags":[151,10698,10718,152,265189],"plugin_category":[59],"plugin_contributors":[268125],"plugin_business_model":[],"class_list":["post-336138","plugin","type-plugin","status-publish","hentry","plugin_tags-backup","plugin_tags-cloud-backup","plugin_tags-database-backup","plugin_tags-restore","plugin_tags-scheduled-backup","plugin_category-utilities-and-tools","plugin_contributors-demfilz","plugin_committers-demfilz"],"banners":{"banner":"https:\/\/ps.w.org\/demfilz-backup\/assets\/banner-772x250.png?rev=3601383","banner_2x":"https:\/\/ps.w.org\/demfilz-backup\/assets\/banner-1544x500.png?rev=3601383","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/demfilz-backup\/assets\/icon-128x128.png?rev=3601383","icon_2x":"https:\/\/ps.w.org\/demfilz-backup\/assets\/icon-256x256.png?rev=3601383","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/demfilz-backup\/assets\/screenshot-1.png?rev=3601383","caption":"Backup &amp; Restore screen with progress and your stored backups."},{"src":"https:\/\/ps.w.org\/demfilz-backup\/assets\/screenshot-2.png?rev=3601383","caption":"Creating a backup to Google Drive."},{"src":"https:\/\/ps.w.org\/demfilz-backup\/assets\/screenshot-3.png?rev=3601383","caption":"Restoring a backup."},{"src":"https:\/\/ps.w.org\/demfilz-backup\/assets\/screenshot-4.png?rev=3601383","caption":"Settings: Google connection, what to include, schedule and retention."}],"raw_content":"<!--section=description-->\n<p>Demfilz Backup makes a complete backup of your WordPress site \u2014 the database and your files \u2014 packaged into a single zip and stored safely in <strong>your own Google Drive<\/strong>. When you need it, restore that backup to bring your site back exactly as it was.<\/p>\n\n<p>It is built for real-world hosting: backups and restores run in small, resumable steps so large sites don't hit PHP time or memory limits, and uploads and downloads to Google Drive are chunked (resumable).<\/p>\n\n<h4>Back up<\/h4>\n\n<ul>\n<li>One click to bundle the <strong>database + files<\/strong> into a single <code>.zip<\/code>.<\/li>\n<li>Store the backup in <strong>Google Drive<\/strong> (your own account) or keep it on the server.<\/li>\n<li>Choose exactly what to include: database, uploads, themes, plugins, other wp-content, and (optionally) WordPress core.<\/li>\n<li><code>wp-config.php<\/code> and the plugin's own backup folder are always excluded.<\/li>\n<\/ul>\n\n<h4>Restore<\/h4>\n\n<ul>\n<li>Restore from a backup in Google Drive, from a local copy, or by uploading a <code>.zip<\/code>.<\/li>\n<li>Brings your database and files back as they were \u2014 a straightforward rollback \/ disaster recovery for the site.<\/li>\n<\/ul>\n\n<h4>Automatic, scheduled backups<\/h4>\n\n<ul>\n<li>Daily, weekly or monthly backups to Google Drive via WP-Cron.<\/li>\n<li>Retention: keep only the most recent N backups and prune the rest automatically.<\/li>\n<li>Optional email report after each scheduled backup.<\/li>\n<\/ul>\n\n<h4>Connect in one click<\/h4>\n\n<p>By default you connect Google Drive with a single <strong>Connect with Google<\/strong> click \u2014 no Google Cloud project, no copying keys. This uses a Demfilz sign-in helper that only brokers the Google authorization; your backups themselves always go <strong>directly from your server to your Google Drive<\/strong>. Only the <code>drive.file<\/code> scope is requested, so the plugin can see and manage only the backup files it creates.<\/p>\n\n<p>Prefer to use your own Google app? Switch to <strong>Advanced \u2192 Use my own Google app<\/strong> on the Settings screen and paste your own Client ID and Secret \u2014 then nothing passes through Demfilz at all.<\/p>\n\n<h4>Moving a site to a new domain<\/h4>\n\n<p>This plugin restores a backup onto its own site. If you want to <strong>move or clone a site to a different URL<\/strong>, the separate <strong>Demfilz Backup Pro<\/strong> add-on (available from https:\/\/demfilz.com\/demfilz-backup) adds serialization-safe cross-URL migration \u2014 it is a distinct plugin and is not required for backing up or restoring your site here.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin can connect to the following external services. Which ones apply depends on your settings.<\/p>\n\n<p><strong>Google Drive (always, once connected).<\/strong> Your backups are uploaded to, listed in, downloaded from and deleted from your own Google Drive account via the Google Drive API (<code>https:\/\/www.googleapis.com\/<\/code>). This only happens after you connect an account, and only for the plugin's own backup files (<code>drive.file<\/code> scope). See Google's Privacy Policy (https:\/\/policies.google.com\/privacy) and Terms (https:\/\/policies.google.com\/terms).<\/p>\n\n<p><strong>Demfilz Google sign-in helper (default \"Automatic\" connection method only).<\/strong> When you use the one-click \"Connect with Google\" button, the plugin contacts the Demfilz OAuth broker at <code>https:\/\/api.demfilz.com\/gdrive\/<\/code> to complete Google sign-in and to refresh access tokens. What is sent: your site URL and the OAuth codes\/tokens needed to complete the connection; the broker does not permanently store your tokens. This step exists because a public plugin cannot safely embed a Google client secret, so the secret-holding exchange happens server-side. If you instead choose <strong>Advanced \u2192 Use my own Google app<\/strong>, this service is not used at all and the plugin talks only to Google. Demfilz privacy policy: https:\/\/demfilz.com\/privacy .<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/demfilz-backup<\/code>, or install it through the Plugins screen.<\/li>\n<li>Activate it through the <strong>Plugins<\/strong> screen.<\/li>\n<li>Go to <strong>Backups \u2192 Settings<\/strong> and click <strong>Connect with Google<\/strong>, then approve access. (That's it \u2014 no Google Cloud setup.)<\/li>\n<li>Go to <strong>Backups \u2192 Backup &amp; Restore<\/strong> and click <strong>Back up to Google Drive<\/strong>.<\/li>\n<\/ol>\n\n<p><strong>Advanced (optional): use your own Google app.<\/strong> On the Settings screen open <strong>Advanced \u2192 Use my own Google app<\/strong>, create a Google Cloud OAuth client (type: Web application) with the Google Drive API enabled, register the redirect URI shown, paste your Client ID and Secret, save, then click <strong>Connect with Google<\/strong>.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20google%20cloud%20account%20or%20developer%20setup%3F\"><h3>Do I need a Google Cloud account or developer setup?<\/h3><\/dt>\n<dd><p>No. With the default connection method you just click <strong>Connect with Google<\/strong> and approve \u2014 your backups are stored in your own Google Drive. If you'd rather not use the Demfilz sign-in helper, you can switch to your own Google app under Advanced.<\/p><\/dd>\n<dt id=\"does%20my%20backup%20data%20pass%20through%20demfilz%3F\"><h3>Does my backup data pass through Demfilz?<\/h3><\/dt>\n<dd><p>No. Your backup files always go straight from your server to your Google Drive. In the default connection method, only the Google sign-in (authorization and token refresh) is brokered by Demfilz; choosing \"Use my own Google app\" removes even that.<\/p><\/dd>\n<dt id=\"can%20i%20move%20my%20site%20to%20a%20different%20domain%3F\"><h3>Can I move my site to a different domain?<\/h3><\/dt>\n<dd><p>Restoring onto a different URL (site migration) is provided by the separate <strong>Demfilz Backup Pro<\/strong> add-on, not by this plugin. This plugin backs up your site and restores it onto the same site.<\/p><\/dd>\n<dt id=\"will%20a%20big%20site%20time%20out%3F\"><h3>Will a big site time out?<\/h3><\/dt>\n<dd><p>Backups and restores run in small steps, and Drive transfers are chunked and resumable, so large sites are handled without exhausting PHP limits. If your host is very strict, lower \"Files per step\" and \"Database rows per step\" on the Settings screen.<\/p><\/dd>\n<dt id=\"does%20restoring%20overwrite%20my%20current%20site%3F\"><h3>Does restoring overwrite my current site?<\/h3><\/dt>\n<dd><p>Yes. Restoring replaces the current database and files with the contents of the backup. Always keep a fresh backup before restoring.<\/p><\/dd>\n<dt id=\"are%20my%20backups%20protected%20from%20public%20download%3F\"><h3>Are my backups protected from public download?<\/h3><\/dt>\n<dd><p>Yes. Backups are stored in a protected folder with server rules that block direct web access (Apache and IIS) and directory listing.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: one-click \"Connect with Google\" (or use your own Google app), full-site backup (database + files) to Google Drive, scheduled backups with retention, and restore.<\/li>\n<\/ul>","raw_excerpt":"Back up your whole WordPress site (database and files) to your own Google Drive, scheduled with retention, and restore it any time.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/336138","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=336138"}],"author":[{"embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/demfilz"}],"wp:attachment":[{"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=336138"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=336138"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=336138"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=336138"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=336138"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=336138"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}