Supabase backup: protect database, Storage and configuration
Timo Wevelsiep•Updated: 25.08.2026Editorial note: Versions, commands and prices may change. Please verify critical steps independently before production use. This guide does not replace individual consulting.
Need Supabase operations with separate database and Storage protection? WZ-IT provides managed Supabase hosting and operations with monitoring, backup design and controlled updates.
A Supabase backup must make several data planes recoverable together. PostgreSQL contains tables, Auth data and metadata. The actual Storage file bytes sit outside the database backup. Functions, secrets, SMTP and infrastructure configuration also need their own procedures.
The key question is not “Did the dump run?” but: Can the complete application return to a consistent state within the agreed time?
Which Supabase components need protection?
| Layer | Typical content | Protection method |
|---|---|---|
| PostgreSQL | App data, Auth, schema, RLS, Storage metadata | Logical or physical backup, optionally PITR |
| Storage | Uploaded files and object bytes | File- or object-level backup |
| Functions | Source and dependencies | Git and reproducible deployment |
| Secrets | API keys, SMTP, provider credentials | Secrets management and recovery process |
| Configuration | URLs, JWT, Auth providers, proxy, domains | Encrypted configuration backup |
| Infrastructure | Compose files, images, volumes, network | Infrastructure as Code and pinned versions |
| Operations | Alerts, dashboards, runbooks | Versioned operating documentation |
A complete backup does not have to contain every secret in plain text. It does need to explain how secrets are securely restored or rotated during recovery.
Define RPO and RTO first
Recovery Point Objective (RPO) specifies the maximum acceptable data loss. Recovery Time Objective (RTO) sets the maximum acceptable time to restore service.
Examples:
- An RPO of 24 hours may permit a daily backup.
- An RPO of 15 minutes commonly needs WAL archiving or comparable PITR.
- An RTO of eight hours permits more manual steps.
- An RTO of 30 minutes requires prepared infrastructure, automation and tested timings.
RPO and RTO apply to the application, not PostgreSQL alone. If the database returns in 20 minutes but Storage files need six hours, the application RTO has not been met.
Logical, physical and point-in-time recovery
Logical backups export database objects and data. They are portable and useful for migrations or selective recovery, but can take a long time for large databases.
Physical backups protect state closer to the underlying database files. They can restore faster but are more tightly coupled to version and operating model.
Point-in-time recovery (PITR) combines a base backup with a continuous transaction log, allowing recovery just before a harmful change.
An operating design may combine methods: daily logical exports for portability and physical protection or PITR for shorter objectives.
Protect Storage objects separately
Supabase documentation explicitly states that database backups do not include objects stored through the Storage API. Capture:
- every bucket and object path
- files and sizes
- content types and relevant metadata
- versions where supported by the storage target
- the relation to metadata rows in PostgreSQL
Database and object state need to match during recovery. New database metadata with old files, or the reverse, can produce missing and orphaned objects.
Maintain database and Storage consistency
Strict consistency may require a short write pause during a complete backup. Other systems accept a documented time offset and reconcile afterwards.
Useful controls include:
- object count per bucket
- total file sizes
- checksums for critical files
- samples through the Storage API
- comparison of metadata and actual objects
- tests of private and signed downloads
Apply the 3-2-1 principle
A robust starting point is:
- at least three copies of relevant data
- on at least two different storage types or systems
- at least one copy separated from the primary environment
Production designs should also provide:
- encryption in transit and at rest
- separate credentials
- immutable or deletion-protected retention
- defined daily, weekly and monthly generations
- monitoring of age, size and success
A backup on the same host with the same administrator access only covers part of the risk.
Auth and secrets during recovery
Auth data may reside in PostgreSQL. A working login also needs:
- compatible JWT configuration
- Auth providers and OAuth credentials
- correct redirect URLs
- SMTP and email templates
- DNS and public domains
- secrets for Functions and webhooks
Changing JWT secrets may invalidate existing sessions. The recovery runbook must state whether old keys are restored or users sign in again.
Recovery tests instead of backup trust
A green backup job proves only that a process ended without a reported error. A recovery test answers:
- Can backups be located and decrypted?
- Will PostgreSQL start on the target version?
- Do Storage files match their metadata?
- Do Auth, RLS and Functions work?
- Can the application complete critical user journeys?
- Are RPO and RTO achieved?
Run tests in isolation so they cannot overwrite production or accidentally send email and webhooks.
Monitoring and ownership
At minimum, monitor:
- last successful run
- age of the newest recovery point
- backup size and unexpected deviations
- free capacity and retention
- upload or encryption failures
- date, outcome and duration of the latest recovery test
Every alert needs an owner and response rule. Otherwise backup automation becomes unattended storage consumption.
Sources
Rather have it operated?
You'd rather not run Supabase yourself? WZ-IT handles setup, operations and maintenance - privacy-focused from Germany.
Enquiry
Migrate, secure, or operate Supabase
We migrate Supabase projects and existing backends such as Firebase, Lovable, PostgreSQL, MySQL or Auth0, build the target environment, and can take over ongoing operations.
Frequently Asked Questions
Answers to the most important questions
No. The database contains Storage metadata, not automatically the underlying object bytes. Files need a separate backup and must remain recoverable together with the matching database state.
That depends on RPO and the rate of change. Production systems may need more frequent logical backups, physical backups or point-in-time recovery. Storage and configuration remain separate layers.
At minimum, Function source, schema migrations, configuration, versions and a procedure for restoring secrets, SMTP, OAuth, domains and infrastructure. Do not store secrets unencrypted in backups.
Regularly and according to risk, as well as after significant architecture changes. Critical systems need more frequent exercises. Real measurements must demonstrate the agreed RTO.
No. Replication can immediately copy accidental deletion, a bad update or compromised data. Backups provide separate recovery points and retention.
More on Supabase
- What is Supabase?
- Supabase Cloud vs self-hosted
- Supabase self-hosting: pros & cons
- Supabase cost: Cloud vs self-hosted
- Migrate Supabase Cloud to self-hosted
- Migrate a Supabase project, region or organisation
- Migrate PostgreSQL to Supabase
- Migrate AWS RDS and Aurora to Supabase
- Migrate Heroku Postgres to Supabase
- Migrate Neon and Vercel Postgres to Supabase
- Migrate MySQL and MariaDB to Supabase
- Migrate Microsoft SQL Server and Azure SQL to Supabase
- Migrate Firebase to Supabase
- Migrate Lovable Cloud to Supabase
- Migrate Auth0 to Supabase Auth
- Supabase migration checklist
- Back up Supabase completely
- Update self-hosted Supabase
- Audit Supabase RLS
- Run Supabase on Hetzner
- Install Supabase with Coolify





