A second copy in a bucket you own
On Pro, every backup is also copied to your own Amazon S3, Cloudflare R2, Google Cloud Storage, Backblaze B2 or MinIO bucket, still encrypted, byte for byte.
Destinations
Every backup is stored in backupd Storage. Add your own buckets for an extra copy.
- backupd StoragePrimary
- Cloudflare R2In sync
- Amazon S3In sync
- MinIOPaused
- 5 providers
- S3, R2, GCS, B2 and MinIO.
- Byte for byte
- We never decrypt to copy.
- Yours
- Opens with your own key.
- Pro
- Included on the Pro plan.
Why a second copy
Your backups live in backupd Storage on every plan. A copy in your own account means you hold them too, under your own retention rules, even if you leave backupd.
Storage
2,317 backup files · 66.5 GB stored
| File | Size | Restore test | Created |
|---|---|---|---|
app-prod-2026-10-16-0900.pgdump.zst.age | 612 MB | Passed | 12 min ago |
billing-2026-10-16-0600.sql.zst.age | 88 MB | Not tested | 2 h ago |
app-prod-2026-10-16-0800.pgdump.zst.age | 611 MB | Passed | 1 h ago |
events-2026-10-16-0300.archive.zst.age | 1.4 GB | Passed | 9 h ago |
marketing-site-2026-10-13-0300.zip.age | 20 MB | Passed | 3 days ago |
What you set up
A display name, the bucket, its region, an endpoint for R2 and MinIO, an access key with write access, and an optional path prefix. Keys are stored encrypted.
Destinations
Every backup is stored in backupd Storage. Add your own buckets for an extra copy.
- backupd StoragePrimary
- Cloudflare R2In sync
- Amazon S3In sync
- MinIOPaused
What lands in it
Each backup and its encrypted manifest, organized by workspace, database and month. A failed copy is retried for about an hour, then a Copy to destination failed alert goes out.
$ aws s3 ls --recursive s3://acme-backups/backupd/
2026-10-16 09:01 641728512 backupd/acme/app-prod/2026/10/7c2d…e41a.pgdump.zst.age
2026-10-16 09:01 2048 backupd/acme/app-prod/2026/10/7c2d…e41a.pgdump.zst.age.manifest.age
2026-10-16 06:02 92274688 backupd/acme/billing/2026/10/1f80…9b3c.sql.zst.age
2026-10-16 06:02 1536 backupd/acme/billing/2026/10/1f80…9b3c.sql.zst.age.manifest.ageOpen it with your key
Files in your bucket are encrypted to your keys as well as ours, so you can restore them with age and your engine’s tools. Restore without us
Encryption
Every backup is compressed and encrypted with age before it’s stored. Add your own key to decrypt backups yourself.
Your keys
New backups are encrypted to every key here. Revoking a key only affects future backups.
- Laptop
age1lggyhqrw2nlhcxprm67z43rta597azn8gknawjehu9d9dl0jq3yqqvfafg3f9a1c0be47d2a85Revoke - Ops team vault
age1zvkyg2lqzraa2lnjvqej32nkuu0ues2s82hzrye869xeexvn73equnujwjb81e07d95c42f3a0Revoke
backupd’s key
backupd keeps its own key for this workspace so it can run restores and restore tests. Its secret half is encrypted at rest.
age1qyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqs3290gqKeep a copy you control
Own-bucket copies come with Pro, 50% off the first month while launch spots last.