Panellicense

Add Wasabi as a JetBackup 5 destination on cPanel

Step-by-step guide to add Wasabi as an S3-compatible destination in JetBackup 5, including bucket, endpoint, access key, and a first test backup.

5 min readUpdated 2026-05-16jetbackup-5 · wasabi · s3 · destinations
schema: HowToschema: FAQPage

Wasabi is the cheapest S3-compatible target most cPanel hosts can justify — flat $6.99/TB/month with no egress fees, which works out to roughly a third of S3 Standard once you factor in restores. JetBackup 5 talks to it via the standard Amazon S3 (compatible) destination type, so setup is a bucket, an access key, and four fields.

The one trap: Wasabi charges for a 90-day minimum retention even if you delete the object on day one. Plan job frequency accordingly — see the retention note at the end.

Create the Wasabi bucket and sub-user

In the Wasabi console, Storage → Create Bucket. Pick the region closest to your cPanel server — egress within a region is free, cross-region costs the same as the public internet on either side, so this matters for restore speed too.

  • Bucket name: globally unique, e.g. acme-cpanel-backups.
  • Region: match the server. US East 1 (us-east-1) is in N. Virginia; EU Central 2 (eu-central-2) is in Frankfurt.
  • Public access: leave fully blocked.
  • Bucket versioning: off — JetBackup handles its own retention, versioning would double-bill you.
  • Object lock: off, unless you have a compliance reason. It interacts badly with JetBackup's prune.

Then in Access Keys → Create New Access Key, choose Sub-user rather than root. Attach a bucket-scoped policy so the key cannot touch other buckets if it leaks:

{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Allow",
    "Action": ["s3:*"],
    "Resource": [
      "arn:aws:s3:::acme-cpanel-backups",
      "arn:aws:s3:::acme-cpanel-backups/*"
    ]
  }]
}

Save the access key and secret somewhere safe — Wasabi only shows the secret once.

Add the destination in JetBackup 5

In WHM open JetBackup 5 → Destinations → Create Destination. Pick Amazon S3 (compatible) as the type (not "Amazon S3" — that one assumes AWS endpoints).

Fill in:

  • Namewasabi-eu-central or similar, this is just a label.
  • Endpoints3.<region>.wasabisys.com. For us-east-1 it is s3.us-east-1.wasabisys.com; for eu-central-2 it is s3.eu-central-2.wasabisys.com. The leading https:// is added automatically.
  • Region — the region code, e.g. us-east-1. Must match the endpoint.
  • Bucket — the bucket name from the previous section, no path prefix.
  • Access Key ID — from the sub-user.
  • Secret Access Key — from the sub-user.
  • Path style addressingenabled. Wasabi supports both, but path-style avoids DNS issues with hyphenated bucket names.
  • Use SSL — enabled.

Click Test Connection. JetBackup writes a small test object, reads it back, and deletes it. A green tick means you are done; a red error usually means region/endpoint mismatch or path-style addressing disabled.

Attach the destination to a job

In JetBackup 5 → Backup Jobs, open an existing Accounts job (or create one). Under Destinations, tick the Wasabi destination. Save.

The first sync runs from /usr/local/jetapps/usr/jetbackup5/repository/ and uploads every account's current snapshot. On a 50-account server with 10 GB per account, expect 4-8 hours over a 100 Mbps link. Watch progress in Queue:

jetbackup5api -F getQueueItems -D '{"limit": 20}'

Subsequent runs are incremental — only changed files transfer, so the daily delta is usually under 1 GB even on a busy server.

Retention strategy with Wasabi's 90-day minimum

Wasabi bills storage in 90-day chunks. Delete a 1 GB object after one day, you pay for 90 days of 1 GB anyway. This kills any plan to run hourly backups with short retention — every pruned snapshot keeps billing until day 90.

Two retention patterns that work:

  • Daily for 30, weekly for 12 — keeps storage roughly flat after week 12, no early-delete penalty after the first 90 days.
  • Daily for 90, then nothing — simplest. Set Retention to 90 days flat, never prune sooner.

Do not run hourly snapshots to Wasabi. Keep hourly on local disk, sync only the daily to Wasabi. Configure this with two destinations on the same job: local for hourly retention, Wasabi for daily.

# Verify a backup actually landed in the bucket
aws --endpoint-url https://s3.us-east-1.wasabisys.com s3 ls s3://acme-cpanel-backups/ --recursive | head
Why does the JetBackup test connection fail for Wasabi?+
Almost always region/endpoint mismatch or path-style addressing disabled. Both fields must agree (e.g. region us-east-1, endpoint s3.us-east-1.wasabisys.com), and path-style must be enabled.
How much does Wasabi cost for cPanel backups?+
$6.99 per TB per month flat, no egress fees, 90-day minimum retention per object. A typical 50-account server using 500 GB of backup space costs roughly $3.50/month.
Can I run hourly backups to Wasabi?+
Technically yes, financially no. Wasabi's 90-day minimum retention means every pruned snapshot keeps billing for the full 90 days. Run hourly to local disk, daily to Wasabi.
Does JetBackup encrypt backups before uploading to Wasabi?+
Yes, when you enable Encryption on the destination. Without it, data is encrypted in transit (TLS) but stored as readable tarballs in the bucket.
Can one Wasabi bucket hold backups from multiple cPanel servers?+
Yes, JetBackup writes each server into its own prefix. Use one bucket per organisation, not per server — bucket count has no cost impact, but cross-bucket auditing is harder.

Next steps

Switch in an afternoon

Switch from your current reseller — free.

We migrate active cPanel, Plesk, LiteSpeed and CloudLinux licenses from any reseller. We prorate the first month so you never pay twice, and your customers see zero downtime during the swap.