S3 Backup
Vinza Store S3 Backup
S3 Backup
Premium Backup
s3awsbackuprestorecloudcloudflare-r2
Get this app
Free with Profesional & Enterprise · See plans
$39.00
One-time — permanent license, 1 server.
Rp 585.000 charged
$3.99/mo
Cancel anytime.
Rp 59.000/mo charged

Keeps off-server copies of your backups in any S3-compatible bucket (AWS S3, Cloudflare R2, MinIO, Wasabi, Backblaze B2, IDCloudHost Object Storage…) and downloads objects back again. The S3 work is done by a shipped Go engine that implements SigV4 signing and a streaming, concurrent multipart upload directly — no AWS SDK — so memory stays around 50 MB whatever the archive size. Credentials are stored in PluginData encrypted with Fernet (keyed from the panel's SECRET_KEY), decrypted only in-process, and passed to the binary through its environment; the secret key is never returned to the browser, only whether one is set.

Settings cover bucket, region, endpoint, key prefix and access key, which is enough for AWS S3, Cloudflare R2, MinIO, Wasabi or Backblaze B2. A test-connection action actually lists the bucket rather than just validating the form. Every transfer reports live progress (percent, speed, time left), shown here and on the Backups page. Each upload request carries a Content-MD5 and the final ETag is compared with the bytes read. Uploads run as a detached background job that returns a job id immediately; the job's completion is determined by the result file the engine writes, not by probing the PID, which avoids both the zombie-reads-as-alive and recycled-PID failure modes.

Restore downloads a single object into a folder on the server as a background job that does every filesystem step as the destination's owner (website owners: as their own account, inside their own website folders or backups folder), resumes a dropped download and verifies it against the object's checksum. The file is not extracted, and an existing file is never overwritten. An archive restored into a backups folder is listed on the Backups page again, ready to restore. Website owners get a reduced action set: they may back up only paths that resolve (after symlink resolution) inside a docroot they own, into a per-tenant S3 prefix they cannot escape, and may list and poll only their own backups — the bucket name, region and credentials stay admin-only.

Off-site copies of scheduled backups: pick S3 as the destination of an automatic backup (Backups → Automatic Backups) and every archive the panel makes — website files, database dumps, folders — is uploaded in the background after it is written, then copies beyond the schedule's off-site limit are pruned. Uploads run as a detached job that opens the archive with its owner's identity, so they work for every account's backups without reading anything that account could not. The uploaded payload itself is not encrypted (only the stored credentials are).

Storage options (admins): the storage class uploads are stored with (AWS S3 classes on AWS; STANDARD on other providers), an optional expiry rule for the key prefix added to the bucket's lifecycle configuration without touching its other rules, an upload bandwidth limit (MB/s) and, on buckets created with Object Lock, immutable copies retained in GOVERNANCE or COMPLIANCE mode for N days. Locked copies cannot be deleted before their retention ends; pruning skips them until then.

The page has four tabs. Backups lists the panel's own backups with an Upload to S3 button per row; Back up now makes a fresh backup of a website, database, home folder or folder (website owners: only their own) and copies it to S3 when the archive is finished; Bucket files lists and restores objects; Settings holds the bucket and keys (admins only). All panel-backup copies go through the same background off-site uploader as scheduled backups.

Availability: Included at no extra cost with the Profesional and Enterprise plans. On the Free and Starter plans it is available per server as a monthly subscription ($3.99/month) or a one-time purchase ($39).

Min Panel Version
1.0.0
Platform
Ubuntu 20.04+ / 22.04+ / 24.04+
License
Paid license required
VinzaPanel handles installation automatically via the Vinza Store. Make sure the panel agent has internet access to download dependencies.
1.4.5 — Confirmation prompts use the panel's own dialog (with a title and a clear action button) instead of the browser's confirm() box. 1.4.4 — Storage options (Settings): a storage class per bucket (STANDARD, STANDARD_IA, ONEZONE_IA, GLACIER_IR, INTELLIGENT_TIERING on AWS S3; STANDARD on other providers), an optional bucket lifecycle rule that expires objects under the key prefix after N days (the panel adds and changes only its own rule; every other rule on the bucket is kept), an upload bandwidth limit in MB/s enforced by the engine across all parallel parts, and Object Lock retention (GOVERNANCE or COMPLIANCE, N days) on buckets created with Object Lock — detected before it can be turned on. Pruning skips copies still under retention (and removes them on a later run once it ends, version included); deleting a locked copy says until when it is locked instead of hiding it behind a delete marker. 1.4.3 — Uploads also sign Content-MD5 and Content-Type, as the AWS SDKs do, so stricter S3-compatible stores no longer refuse them with "headers present in the request which were not signed". 1.4.2 — Files in a tenant's home (e.g. WordPress Manager database dumps) upload: they are read as their owner through the agent into a private staging copy (was "permission denied"). New is_configured() check, and a Disconnect / clear action for the S3 settings. 1.4.1 — Settings check the bucket name, endpoint URL and region before saving; invalid values were saved and only failed at the first backup. 1.4.0 — Live progress for every transfer: off-site uploads show percent, bytes, speed and time left (on this page and on Backups), restores and direct uploads too, with a 'stalled' note when the connection stops moving. Integrity: every upload request carries a Content-MD5 and the object's ETag is checked against the bytes read; restores verify the download the same way. Restores now run as a background server job that writes as the destination's owner, so they work into home folders and website folders (the panel user could not write there), resume a dropped download, check free disk space first and never overwrite an existing file. An archive restored into a backups folder appears on the Backups page again, ready to restore — including 'Website and DB' archives, whose details now travel with the object. Bucket files: search, pages, select and delete (website owners: their own copies only), and a restore dialog with destination choices. Settings: provider presets (AWS, Cloudflare R2, Wasabi, Backblaze B2, IDCloudHost, MinIO) and a connection test that proves list, write, read and delete. Keys with spaces or symbols upload and restore correctly; clearer S3 error messages. 1.3.0 — Tabbed page (Backups · Back up now · Bucket files · Settings). Backups lists the panel's existing local backups with an Upload to S3 button per row; the copy is queued to the off-site uploader, which reads the archive as its owner (the panel cannot read a 0750 home), and each row shows Queued / Uploading / Uploaded / Failed + Retry until it settles. Back up now makes a fresh panel backup of a website, database, home folder or folder — the same sources and ownership rules as the Backups page, website owners limited to their own — and copies the archive to S3 once it is finished (never a half-written one). Website owners also see their off-site copies under Bucket files and can restore them. Manual copies are stored under offsite/<account>/manual/ so schedule pruning never removes them. The last tab is remembered; the layout fits phone screens. 1.1.2 — Clearer message when off-site backup is not configured. 1.1.0 — Restore: download any backup object back to a folder on the server (admins to any writable path; website owners into their own docroots only), as a non-blocking job with progress polling — the raw archive is fetched, not auto-extracted, so a restore never clobbers a live docroot. Corrected the metadata to match the code: dropped the inaccurate 'encrypted upload', 'multi-bucket', 'database dump', 'retention' and 'schedule' claims (stored credentials ARE encrypted at rest, but backup payloads are not; those other features are not implemented yet). 1.0.0 — Initial release: S3-compatible multipart + concurrent upload engine (custom SigV4, no SDK), per-tenant prefix sandboxing, encrypted credential storage, background upload jobs.

Use VinzaPanel's REST API to download and install this app programmatically.

Download app files
HTTP
POST /plugins/api/download/s3-backup/
Content-Type: application/json

{
  "panel_version": "1.0.0"
}
Example response
JSON
{
  "success": true,
  "plugin_id": "s3-backup",
  "version": "1.4.5",
  "download_url": "..."
}