Skip to main content
This guide walks you through deploying a complete Supabase stack using Docker Compose. This is the recommended method for self-hosting Supabase.

Prerequisites

Before starting, ensure you have:
1

Install Git

2

Install Docker

Docker Compose v2 is required (included with Docker Engine 20.10+). The command is docker compose, not docker-compose.

Quick Start

1

Clone Repository

2

Copy Environment File

The default .env.example file contains insecure default passwords. Never use these in production!
3

Generate Secrets

Generate secure passwords and JWT secrets:
Or generate manually:
Update your .env file with generated values:
4

Start Supabase

Wait for all services to become healthy (1-2 minutes).
5

Access Dashboard

Open your browser to:Default credentials:
  • Username: supabase (or your DASHBOARD_USERNAME)
  • Password: From your .env file
You now have a fully functional Supabase instance running locally!

Docker Compose Configuration

The docker-compose.yml file defines all Supabase services:

Included Services

Service Versions

Latest stable versions as of February 2026:
  • Studio: 2026.02.16
  • Auth (GoTrue): v2.186.0
  • PostgREST: v14.5
  • Realtime: v2.76.5
  • Storage: v1.37.8
  • Edge Runtime: v1.70.3
  • PostgreSQL: 15.8.1
See versions.md for complete version history.

Environment Configuration

Key environment variables in .env:

Secrets (MUST CHANGE)

URLs

Database

Storage

For S3-compatible storage, see S3 Configuration.

Managing Services

Start/Stop Services

View Logs

Check Service Health

Update Services

Data Persistence

Docker volumes store persistent data:

Volume Locations

Accessing Services

Database Access

Via Supavisor (Recommended):
Direct Connection:
Use connection pooling (port 6543) for web applications to avoid connection exhaustion.

API Endpoints

All APIs are accessible through Kong gateway:

Studio Dashboard

Access the web dashboard at http://localhost:8000.
Bookmark http://localhost:8000 for quick access to your local Supabase Studio.

Advanced Configuration

S3 Storage

Use S3-compatible storage instead of local files:
Update .env with S3 credentials:

Custom Domain

Configure Kong for custom domain:
Use nginx or Caddy as reverse proxy:

HTTPS/SSL

Enable SSL in Kong:
  1. Generate or obtain SSL certificates
  2. Uncomment SSL configuration in docker-compose.yml
  3. Mount certificates in Kong container
  4. Restart services

Troubleshooting

Check logs for errors:
Common issues:
  • Port conflicts (8000, 5432 already in use)
  • Insufficient memory (less than 4GB available)
  • Docker daemon not running
Verify Postgres is healthy:
Check credentials in .env match connection string.
Regenerate JWT keys:
Update ANON_KEY and SERVICE_ROLE_KEY in .env, then restart:
Check storage volume permissions:
Reduce Postgres shared_buffers:
Restart database:

Next Steps

Configuration

Learn about environment variables and advanced config

Security

Secure your installation for production

Updates

Keep your stack up-to-date

Backup

Set up automated backups