{"id":365707,"date":"2026-09-09T13:44:47","date_gmt":"2026-09-09T13:44:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/vps-snaps\/"},"modified":"2026-09-09T13:44:33","modified_gmt":"2026-09-09T13:44:33","slug":"vps-snaps","status":"publish","type":"plugin","link":"https:\/\/it.wordpress.org\/plugins\/vps-snaps\/","author":23562581,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.1","stable_tag":"0.1.1","tested":"7.1","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"VPS Snaps","header_author":"VPS Snaps","header_description":"Off-site backups for WordPress sites that have no SSH access. Connects this site to your VPS Snaps account and runs backups on a schedule.","assets_banners_color":"101126","last_updated":"2026-09-09 13:44:33","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/vpssnaps.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":32,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.1":{"tag":"0.1.1","author":"vpssnaps","date":"2026-09-09 13:44:33","revision":3688400}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3688400,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3688400,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3688400,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3688400,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.1"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[151,10725,4155,152,217],"plugin_category":[59],"plugin_contributors":[279941],"plugin_business_model":[],"class_list":["post-365707","plugin","type-plugin","status-publish","hentry","plugin_tags-backup","plugin_tags-cloud-storage","plugin_tags-migration","plugin_tags-restore","plugin_tags-s3","plugin_category-utilities-and-tools","plugin_contributors-vpssnaps","plugin_committers-vpssnaps"],"banners":{"banner":"https:\/\/ps.w.org\/vps-snaps\/assets\/banner-772x250.png?rev=3688400","banner_2x":"https:\/\/ps.w.org\/vps-snaps\/assets\/banner-1544x500.png?rev=3688400","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/vps-snaps\/assets\/icon-128x128.png?rev=3688400","icon_2x":"https:\/\/ps.w.org\/vps-snaps\/assets\/icon-256x256.png?rev=3688400","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>VPS Snaps backs up WordPress sites that cannot run a shell \u2014 the shared hosting where\n    exec() is disabled, there is no <code>mysqldump<\/code>, and nobody can add a cron job.<\/p>\n\n<p>Backups are written to <strong>your own<\/strong> cloud storage (S3, Cloudflare R2, Backblaze B2,\nDigitalOcean Spaces, Wasabi, or any S3-compatible bucket). The plugin never holds your\nstorage credentials: it asks VPS Snaps for a short-lived, single-object upload link each\ntime it needs one, so a break-in on this site cannot reach the rest of your bucket.<\/p>\n\n<h4>What this plugin sends to an external service<\/h4>\n\n<p>This plugin requires an account at <a href=\"https:\/\/vpssnaps.com\">vpssnaps.com<\/a> and does not work\nwithout one. There is a free tier that covers one site, one backup job and one storage\ndestination, which is everything this plugin needs; paid plans exist for people running\nmore than one site. Nothing in this plugin is switched on or off by which plan you are on.<\/p>\n\n<p>You paste a site token from your dashboard into the plugin, and the plugin then talks to\n    https:\/\/vpssnaps.com to:<\/p>\n\n<ul>\n<li>register this site \u2014 its URL, WordPress version, and plugin version;<\/li>\n<li>ask whether there is a backup or restore to run;<\/li>\n<li>report progress and results;<\/li>\n<li>request a temporary upload or download link for one file at a time;<\/li>\n<li>report a fatal error raised by this plugin's own code, so a backup that has\nsilently stopped working can be found and fixed. This is sent only when the\nplugin itself fatals, and carries the error message, the file name and line,\nyour PHP and WordPress versions, and nothing else. Fatal errors from other\nplugins and from WordPress are not sent.<\/li>\n<\/ul>\n\n<p>Your site's content is uploaded to the storage bucket <strong>you<\/strong> configure in your VPS Snaps\naccount. It does not pass through vpssnaps.com.<\/p>\n\n<ul>\n<li>Terms: https:\/\/vpssnaps.com\/terms<\/li>\n<li>Privacy: https:\/\/vpssnaps.com\/privacy<\/li>\n<\/ul>\n\n<h4>Security<\/h4>\n\n<p>Every instruction this plugin receives is signed with your site token and verified before\nanything runs. An instruction that does not verify is refused and reported, not executed.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>In your VPS Snaps dashboard, create a site token.<\/li>\n<li>Go to <strong>Settings \u2192 VPS Snaps<\/strong>, paste the token, and save. The page will tell you\nimmediately whether the connection worked.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20ssh%20or%20a%20cron%20job%3F\"><h3>Do I need SSH or a cron job?<\/h3><\/dt>\n<dd><p>No. That is the point of this plugin. If your host <em>does<\/em> let you add a real cron job,\npointing one at <code>wp-cron.php<\/code> makes scheduling more reliable \u2014 see below.<\/p><\/dd>\n<dt id=\"will%20backups%20run%20exactly%20on%20schedule%3F\"><h3>Will backups run exactly on schedule?<\/h3><\/dt>\n<dd><p>Not exactly. WordPress runs scheduled tasks when someone visits the site rather than on a\nclock, so on a quiet site a check can run late or be skipped. Treat backup times as\napproximate. A real cron job calling <code>wp-cron.php<\/code> every minute removes the guesswork.<\/p><\/dd>\n<dt id=\"where%20are%20my%20backups%20stored%3F\"><h3>Where are my backups stored?<\/h3><\/dt>\n<dd><p>In the bucket you configured in your VPS Snaps account. You keep ownership and access.<\/p><\/dd>\n<dt id=\"is%20multisite%20supported%3F\"><h3>Is multisite supported?<\/h3><\/dt>\n<dd><p>Not in this version.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>All requests now go through the WordPress HTTP API. Large uploads attach the archive\nthrough the http_api_curl hook rather than holding it in memory, and refuse to send\nrather than silently upload nothing if that hook is unavailable.<\/li>\n<li>Reports fatal errors raised by this plugin's own code, so a backup that has stopped\nworking is visible instead of silent. See the external service section above.<\/li>\n<li>Text domain corrected to match the plugin slug.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>First release: connects a site to VPS Snaps, verifies signed instructions, and reports\nresults. Backup and restore execution are in progress.<\/li>\n<\/ul>","raw_excerpt":"Off-site backups for WordPress sites with no SSH access. Backups go to your own cloud storage, through your VPS Snaps account.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/365707","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=365707"}],"author":[{"embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/vpssnaps"}],"wp:attachment":[{"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=365707"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=365707"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=365707"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=365707"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=365707"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/it.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=365707"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}