Deploy Supabase on Kubernetes
Kubernetes-native ways to run Supabase on your own cluster.
Overview | Quick Start | Helm Chart | Supabase Docs | Contributing
You can choose between two approaches:
core.supabase.io/v1alpha1). The Operator is in an early stage of development and its API may change.charts/supabase for details.The Operator exposes the following Kubernetes Custom Resources:
| Resource | Short name | Description |
|---|---|---|
Project |
projects |
Shared configuration, credentials, migrations, and database synchronization |
SingleDatabase |
singledatabases |
Postgres database managed by the Operator |
Function |
functions |
Edge Functions deployed in the cluster |
Migration |
migrations |
Applies SQL scripts to referenced databases. Also used internally by the Operator to manage Supabase upgrade migrations |
Auth |
auths |
Supabase Auth component |
Rest |
rests |
PostgREST component |
Meta |
metas |
Postgres Meta component |
Realtime |
realtimes |
Supabase Realtime component |
Storage |
storages |
Supabase Storage component |
Studio |
studios |
Supabase Studio component |
Envoy |
envoys |
API gateway component |
EdgeRuntime |
edgeruntimes |
Runtime for Function resources |
Before you begin, make sure you have:
kubectl configured to connect to your clusterhelm 3.x+Add the Supabase Helm repository:
helm repo add supabase https://supabase-community.github.io/supabase-kubernetes
helm repo updateDeploy the Operator into the supabase-operator namespace:
helm install supabase-operator supabase/supabase-operator \
--namespace supabase-operator \
--create-namespaceThis installs the CRDs and deploys the controller in a single step.
The supabase-project chart creates a SingleDatabase, a Project, and the enabled component resources. Install it setting the required values:
helm install supabase supabase/supabase-project \
--set fullnameOverride=supabase \
--set project.publicUrl=http://localhost:8000The Operator will provision the Postgres StatefulSet, the component Deployments, Services, Secrets, and run sync Jobs to configure JWT keys and the database.
Retrieve the generated database password, the Studio credentials, and the API keys with a single command:
…Once the resources are ready, forward the Envoy gateway to your local machine:
kubectl port-forward svc/supabase-envoy 8000:8000The Studio and the Supabase APIs are available at http://localhost:8000.
Contributions are welcome. Before starting significant work, please open an issue to discuss your idea or bug report. When you are ready, fork the repository, make your changes, and open a pull request.
For setup instructions, build commands, and testing workflows, see DEVELOPERS.md.
This project is supported by the community and not officially supported by Supabase. Please do not create issues on the official Supabase repositories if you face problems using this project. Instead, open an issue on this repository.
No open issues yet, or sync has not completed.