Set up your backup bucket

BackupDrill writes backups to object storage you own — we never hold your data. Any S3-compatible bucket works; here are exact click-paths for the three providers we recommend, and how each value maps to the project form.

One rule before you pick: don’t store backups in Supabase Storage. Disaster recovery should survive a problem with your primary provider — keep the copy with someone else.

Cloudflare R2

Recommended — 10 GB free, no egress fees

Full walkthrough with pricing, lifecycle rules, and a scheduled workflow: back up Supabase to Cloudflare R2.

Six clicks, one screenshot each. Values that are yours alone (account id, keys) are blurred in the pictures.

  1. In the Cloudflare dashboard open Storage & databases → R2 Object Storage and click Create bucket.
    Cloudflare dashboard, R2 Object Storage overview with the left-nav entry and the Create bucket button marked
    Left nav: R2 Object Storage under Storage & databases. Top right: Create bucket.
  2. Name the bucket (any name, e.g. my-backups). Leave Location on Automatic and Default Storage Class on Standard, then click Create bucket.
    Create a bucket form with the name my-backups, Automatic location, Standard storage class, and the Create bucket button marked
    Bucket names are permanent; pick one you can recognise in a year.
  3. Back on the R2 overview, scroll down to Account Details and click Manage API Tokens. This is the entrance people miss — it sits under the usage panel, not in the top bar.
    R2 overview scrolled to the Account Details panel with the Manage API Tokens button marked
    Manage API Tokens lives at the bottom of Account Details. Your account id and S3 API endpoint are shown right above it — you will need the endpoint later.
  4. Under Account API Tokens click Create Account API token. Account tokens keep working if a team member leaves; user tokens don’t. Creating an account token needs the Super Administrator role on the Cloudflare account — if the button is missing for you, ask an admin, or use Create User API token further down: the remaining steps are identical, the token just stops working if you leave the account.
    Account API Tokens page with the Create Account API token button marked
    Account token when you can (it needs Super Administrator); otherwise the User token further down works the same way.
  5. Name the token, choose Object Read & Write, choose Apply to specific buckets only and pick the bucket from step 2, keep TTL on Forever, then click Create Account API Token (or Create User API Token on the user-token path — the form is the same).
    Create token form with Object Read and Write selected, the my-backups bucket chosen under specific buckets, and the Create Account API Token button marked
    Object Read & Write is enough — BackupDrill writes snapshots and reads them back for restore drills. Admin permissions are not needed.
  6. On the success page, scroll past the “Token value” at the top — that is Cloudflare’s own API token, not what you need. Copy the three values under Use the following credentials for S3 clients: Access Key ID, Secret Access Key, and the endpoint below them. They are shown only once.
    Token created page showing the S3 client credentials section with Access Key ID, Secret Access Key, and the endpoint marked
    Three boxes, top to bottom: Access Key ID (①), Secret Access Key (②), and the endpoint starting with https:// and ending in .r2.cloudflarestorage.com (③). Copy each one somewhere safe before you click Finish — the page will not show them again.
  7. Open BackupDrill → Add project, finish step 1 (connect your Supabase project), and in step 2 click the Cloudflare R2 chip. Then fill the four fields exactly like this:
    BackupDrill Add project step 2 with Cloudflare R2 selected; badges mark which of the three values from step 6 goes into Endpoint, Access key ID and Secret access key, and that Bucket name comes from step 2
    The badges match the boxes in step 6: goes into Endpoint, into Access key ID, into Secret access key. Bucket name is the name you typed in step 2. Leave Advanced closed.
    BackupDrill fieldPaste
    Endpoint③ from step 6 — the whole https://… address
    Bucket namethe name you typed in step 2 (e.g. my-backups)
    Access key ID① from step 6
    Secret access key② from step 6

    There is no Region box for R2 — BackupDrill sets it to auto for you, and path-style addressing is switched on automatically whenever an endpoint is given, so leave Advanced closed. Click Add project; the first backup starts within a few minutes and lands in the bucket from step 2.

AWS S3

If you already live on AWS

Full walkthrough with IAM policy, lifecycle ladder, and a scheduled workflow: back up Supabase to AWS S3.

  1. S3 console → Create bucket (Block Public Access ON — the default).
  2. IAM → Users → create a dedicated user (no console access) with a least-privilege inline policy on that bucket:
{
  "Version": "2012-10-17",
  "Statement": [
    { "Effect": "Allow",
      "Action": ["s3:PutObject", "s3:GetObject", "s3:AbortMultipartUpload"],
      "Resource": "arn:aws:s3:::my-backups/*" },
    { "Effect": "Allow",
      "Action": ["s3:ListBucket"],
      "Resource": "arn:aws:s3:::my-backups" }
  ]
}
  1. That user → Security credentialsCreate access key → copy Access Key ID + Secret Access Key.
Endpoint: (leave blank — AWS S3 is the default)
Region:   your bucket's region, e.g. us-east-1

Backblaze B2

Cheapest at scale

Full walkthrough with pricing, key mapping, and lifecycle rules: back up Supabase to Backblaze B2.

  1. B2 console → BucketsCreate a Bucket (files private).
  2. Application KeysAdd a New Application Key, scoped to that bucket with read and write.
  3. Map the values: keyID → Access Key ID, applicationKey → Secret Access Key. The endpoint is shown on the bucket page.
Endpoint: https://s3.<region>.backblazeb2.com
Region:   the <region> part, e.g. us-west-004

Field-by-field mapping

Form fieldR2AWS S3B2
Endpointstep 6 box ③ (https://<account-id>.r2.cloudflarestorage.com)blankhttps://s3.<region>.backblazeb2.com
Regionauto (set for you, no box)bucket regionfrom endpoint
Access key IDstep 6 box ①IAM access keykeyID
Secret access keystep 6 box ②IAM secretapplicationKey

Done? Head back to the quickstart to finish connecting your project, or straight to the console.