KakapoWP KakapoWP
Help Center/Backup/Storing backups off-site

Storing backups off-site

Applies to: Kakapo Backup· 4 min read

A backup that only sits on the same server as the website is no help when that server fails. Every archive is therefore created locally first and can then be transferred to an external target — automatically after every run or at the push of a button.

Which destinations there are

  • FTP / SFTP — real transfer via the PHP extension ftp or ssh2 respectively; the card shows whether both are present on the server
  • Amazon S3 and S3-compatible services — signed according to AWS Signature Version 4; according to the card, MinIO, Wasabi, Backblaze B2 and BunnyCDN also work with it
  • Google Drive — via your own Google project and a real OAuth 2.0 flow with the scope drive.file
  • All three are in the “Storage” area, together with the display of the local inventory

Setting up an S3 destination

  1. In “Kakapo Backup” the path leads on the left under “Configuration” to the item “Storage”.
  2. On the “Amazon S3 & S3-compatible” card, click on “Store access data” and enter the “Access key (Access Key ID)” and the “Secret key (Secret Access Key)”.
  3. Fill in “Bucket” and “Region”; “Prefix” determines the subfolder in the bucket, empty means the bucket root.
  4. For an S3-compatible service you additionally enter the “Endpoint” and, with self-hosted services, usually switch on “Path-style addressing”.
  5. Click “Test connection” — a small test file is uploaded and deleted again.
  6. Switch on “S3 target active” and, if every new archive is to travel there by itself, also “Upload automatically after every backup”.

Connecting Google Drive

  • The “One-click connection” is marked on the card as “not available”, because it would need a broker service that is not part of the plugin
  • In self-hosted mode you create a project in the Google Cloud Console, enable the Google Drive API and create an OAuth client ID of the type web application
  • The address that has to be entered there as the authorized redirect URI is given in plain text on the card
  • You store the client ID and client secret via “Store access data”; after that the “Connect to Google Drive” button appears
  • “Folder ID (optional)” determines the target folder, empty means storage in “My Drive”
  • Once the connection is made, the switches “Drive target active” and “Upload automatically after every backup” appear
The “Delete archive locally after upload” switch in “Cloud-only mode” only takes effect once every active target has confirmed the upload. For restore, check and file browser the file has to be local again — for that the “Storage target overview” has the “Fetch back” button, which verifies the SHA-256 checksum from the manifest as it does so.

Two more cards belong to the storage area: “Bandwidth throttle” limits the upload rate via “Limit in KB/s”, where 0 means unlimited. “Cold Storage Tiering” moves older S3 objects into a cheaper tier by copying them with a new storage class, controlled via “Age in days” and “Target storage class”; without an active S3 target the card stays locked, and for Google Drive it does not exist. Objects in GLACIER or DEEP_ARCHIVE have to be thawed by the provider before a restore, which the plugin does not take care of. If PHP cURL is missing on the server, S3 uploads are only possible up to 24 MB.

Was this article helpful?