Skip to content
Live $100 credit at signup, up to $300 total Offer ends December 31, 2026 Get started →

Supabase

Supabase is an open-source Firebase alternative built on PostgreSQL. It bundles a Postgres database, authentication, instant REST and GraphQL APIs, realtime subscriptions, storage, and a Studio admin dashboard into one self-hostable stack. The Studio and APIs are served through the Kong gateway on port 8000.

ComponentVersion
SupabaseSelf-hosted stack
PostgreSQL17
DockerLatest stable
Docker ComposeLatest stable
Ubuntu24.04 LTS

The stack includes Studio, the Kong API gateway, Auth (GoTrue), PostgREST, Realtime, Storage, and postgres-meta, all on PostgreSQL 17.

ResourceMinimumRecommended
vCPU24
RAM4 GB8 GB
Storage30 GB80 GB

You can optionally set these when deploying Supabase from the marketplace. Leave a password field blank to have a secure random value generated automatically.

VariableDescription
SITE_URLPublic URL for the Supabase instance and Studio dashboard
POSTGRES_PASSWORDPassword for the PostgreSQL database
DASHBOARD_PASSWORDPassword for the Studio dashboard login

These are the only variables you set at deploy time. SUPABASE_PUBLIC_URL and API_EXTERNAL_URL, referenced under Security, are edited in /data/supabase/.env on the running VM.

ssh ubuntu@<your-vm-ip>

On the first boot, a setup script generates the database password, JWT secret, API keys, and Studio credentials, then pulls the container images and starts the stack. The image pull is large, so this takes roughly 15-20 minutes. Track progress:

journalctl -u supabase-first-boot.service -f

The login message (MOTD) confirms when Supabase is ready.

3. Retrieve the dashboard credentials and API keys

Section titled “3. Retrieve the dashboard credentials and API keys”

The Studio username and password, plus the anon and service_role API keys, are written to a root-only file:

sudo cat /root/.credentials/supabase.txt

Open a browser and navigate to:

http://<your-vm-ip>:8000

Sign in with the supabase username and the generated password. The REST and Auth APIs are served through the same gateway at http://<your-vm-ip>:8000/rest/v1/ and http://<your-vm-ip>:8000/auth/v1/.

Supabase runs as a Docker Compose stack in /data/supabase.

# Check status
cd /data/supabase && docker compose ps
# Restart
cd /data/supabase && docker compose restart
# View logs
cd /data/supabase && docker compose logs -f

Environment configuration: /data/supabase/.env. Database and storage data are stored under /data/supabase/volumes.

Ports 8000, 80, and 443 are open on the VM’s network interface. UFW is enabled and allows those ports plus SSH (port 22). Direct PostgreSQL access (5432) is not exposed.

Change the Studio dashboard password after first login. For production use, set SUPABASE_PUBLIC_URL, API_EXTERNAL_URL, and SITE_URL in /data/supabase/.env to your domain, restart the stack, and place Supabase behind a reverse proxy such as nginx with a TLS certificate so Studio and the APIs are served over HTTPS instead of exposing port 8000 directly.

Last updated: