Update self-hosted Supabase safely and predictably
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.
Prefer not to manage release notes, merge conflicts and recovery risk yourself? WZ-IT provides managed Supabase hosting and operations with controlled updates, monitoring and backups.
To update self-hosted Supabase is to update more than one container. The stack includes PostgreSQL, Auth, Storage, Realtime, an API gateway, Studio, Functions and other services. Images, environment variables, Compose files, database structures and dependencies can change between releases.
A reliable update process treats each upgrade as a small, repeatable change with inventory, protection, staging, acceptance and rollback.
Why “pull and restart” is risky
Unreviewed upgrades commonly fail because of:
- locally modified Compose files
- new or removed environment variables
- incompatible image combinations
- database changes or major versions
- changed health checks or network paths
- Auth and JWT configuration
- Functions and runtime dependencies
- external SMTP, OAuth or Storage connections
Containers may appear healthy while login, upload, Realtime or an API is already broken. Technical health checks and real user-journey tests serve different purposes and both are required.
1. Capture a reproducible current state
Before updating, record:
| Area | Controls |
|---|---|
| Versions | Image tags or digests, PostgreSQL version, Supabase template state |
| Configuration | Compose files, variables, volumes, proxy and networks |
| Adjustments | Custom services, overrides, hooks, Storage target and SMTP |
| Database | Size, extensions, functions, replication and backup method |
| Application | Clients, SDKs, Functions, integrations and critical journeys |
| Operations | Monitoring, maintenance window, owners and rollback criteria |
Do not let movable tags change images without control. A recorded state is the basis for recreating the same environment.
2. Assess target changes
The official update guide and self-hosting repository are the primary sources. Review:
- changed Compose services
- new, renamed or removed variables
- database migrations
- Auth, gateway and API changes
- required image versions
- breaking changes and manual actions
- known limitations
Also verify application clients and integrations against the target. An update can be technically correct while violating an application assumption.
3. Prepare the right backups
Supabase explicitly notes that its configuration update process does not back up PostgreSQL data or Storage objects.
Before production, require:
- consistent PostgreSQL backup
- separate protection of Storage file bytes
- versioned Compose and override files
- encrypted configuration backup or recovery process
- recorded image versions
- verified recovery runbook
File existence alone is insufficient. Operators need a measured recovery duration and a clear understanding of data loss after rollback.
4. Reconcile official and local changes
Supabase provides an update script for certain self-hosting changes that uses a three-way comparison:
- previous official template
- current official template
- locally modified state
This helps preserve intended adjustments. Merge conflicts still require engineering decisions, particularly around:
- ports and public exposure
- volume paths
- external database or Storage targets
- reverse proxy and TLS
- custom secret variables
- resource limits
- logging and monitoring
Review the result in version control. Secrets do not belong in the repository.
5. Test in a production-like environment
Useful staging reproduces:
- architecture and relevant configuration
- anonymised or representative data
- the same Auth providers in test mode
- Functions and extensions
- realistic Storage and Realtime scenarios
At minimum test:
- Studio and administration
- REST and GraphQL access
- login, logout, refresh and password reset
- positive and negative RLS cases
- upload, download and signed URLs
- Realtime connections
- Functions and secrets
- SMTP, OAuth, webhooks and external APIs
- backups after the update
6. Production runbook
An executable runbook contains:
- approval and start time
- verification of the latest successful backup
- optional write freeze or maintenance mode
- retrieval of pinned images
- configuration and database steps in order
- restart and technical health checks
- smoke tests for critical journeys
- go/no-go decision
- enhanced observation period
- closure and documentation
Every step has an owner, expected result and abort criterion.
7. Rollback is more than an image rollback
Restarting old images is insufficient when an update changes database state. The rollback plan answers:
- Are schema changes backward-compatible?
- Is a full database recovery required?
- What happens to writes accepted after the update?
- Will Storage metadata and files still match?
- Which DNS, proxy or secret changes need reversal?
For high-risk changes, a prepared parallel target can be safer than an in-place update.
8. Observe and document
After updating, observe:
- error rates and latency
- database connections, locks and resources
- Auth failures
- Storage and Function errors
- Realtime connections
- queue or webhook backlogs
- unexpected restarts
Then update the version inventory, runbook and known deviations. Lessons from incidents or manual work feed the next cycle.
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. With self-hosting, the operator or managed-service partner owns images, Compose files, database changes, compatibility, testing and rollback.
Supabase documents a three-way merge between the old template, new template and local configuration. It assists reconciliation but does not replace business tests or backups of PostgreSQL and Storage.
Not as a universal strategy. Consistency, database version, Storage objects, configuration and recoverability need separate assessment. A tested database-aware process is more dependable.
There is no universal interval. Security-relevant changes take priority, while routine updates follow an agreed patch cycle with review, staging and a maintenance window.
It depends on architecture, component and release. Some services may update in sequence, while database or gateway changes can require a maintenance window. Assess this per release.
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





