Your own bucket
Copy every backupd backup to your own Amazon S3, Cloudflare R2, Google Cloud Storage, Backblaze B2 or MinIO bucket. A Pro feature.
Backups always land in backupd Storage. On Pro you can also add your own S3-compatible bucket, called a destination, to keep an extra copy you control. Each new backup and its manifest are copied there byte for byte, still encrypted.
Copying backups to your own bucket is part of Pro. On other plans, adding a destination shows Copying backups to your own bucket is part of Pro. Upgrade in Settings → Billing to add a destination.
Supported providers
- Amazon S3
- Cloudflare R2
- Google Cloud Storage
- Backblaze B2
- MinIO
Add a destination
Owners and admins can add destinations. Open Destinations (or Settings → Destinations) and click Add destination.
| Field | What to enter |
|---|---|
| Provider | One of the providers above. |
| Display name | Optional. Defaults to the provider and bucket name. |
| Bucket | The bucket name. It must already exist. |
| Region | The bucket's region. Leave empty to use auto. |
| Endpoint | Shown for Cloudflare R2, Backblaze B2 and MinIO, where it is required. |
| Access key ID and Secret access key | Keys that can read, write and list objects under the prefix. They are encrypted at rest. |
| Path prefix | Where backups go in the bucket. Defaults to backupd/. Letters, numbers, dashes, dots and slashes. |
Click Test connection to check that backupd can reach the bucket, then Add destination. backupd also checks access when you add it, and shows Couldn't reach the bucket: … if it can't.
Per provider
- Region: the bucket's region, for example
us-east-1. - Endpoint: not needed.
- Keys: an IAM access key with
s3:PutObject,s3:GetObjectands3:ListBucketon the bucket and prefix.
How copies work
-
After each successful backup, the encrypted file and its
.manifest.agemanifest are copied to every destination. -
Copies are retried automatically. If a copy still fails, the Copy to destination failed event goes to your notification channels.
-
Files are laid out by workspace, database and month:
backupd/<workspace ID>/<database ID>/<yyyy>/<mm>/<backup ID>.pgdump.zst.age backupd/<workspace ID>/<database ID>/<yyyy>/<mm>/<backup ID>.pgdump.zst.age.manifest.ageThe extension depends on the engine:
.pgdump,.sql,.archiveor.zip. You'll find the database ID in the database's Settings tab and the backup ID on the backup's page. -
Copies are encrypted to backupd's key and every key you have added. Add your own key so you can open them without backupd.
What backupd never does in your bucket
- Retention doesn't apply. backupd doesn't delete expired backups from your bucket. Use your provider's lifecycle rules to expire old files.
- Deleting a backup, removing a database or removing a destination leaves existing copies in your bucket untouched.
Remove a destination
Remove a destination from the Destinations page. New backups stop being copied there. Existing copies in that bucket are left untouched.
After a downgrade
If your workspace moves off Pro, new backups are no longer copied to your buckets. Copies already there stay where they are.
backupd Storage
Where backupd keeps your backups, how storage is measured and billed, and how to browse backup files.
Notifications
Get backupd alerts for failed backups, failed restore tests, unreachable databases and storage limits on Slack, Discord, Microsoft Teams, Telegram, email or a signed webhook.