Files

Self-Hosted Supabase with Docker

This is the official Docker Compose setup for self-hosted Supabase. It provides a complete stack with all Supabase services running locally or on your infrastructure.

Getting Started

Follow the detailed setup guide in our documentation: Self-Hosting with Docker

The guide covers:

  • Prerequisites (Git and Docker)
  • Initial setup and configuration
  • Securing your installation
  • Accessing services
  • Updating your instance

What's Included

This Docker Compose configuration includes the following services:

  • Studio - A dashboard for managing your self-hosted Supabase project
  • Kong - Kong API gateway
  • GoTrue - JWT-based authentication API for user sign-ups, logins, and session management
  • PostgREST - Web server that turns your PostgreSQL database directly into a RESTful API
  • Realtime - Elixir server that listens to PostgreSQL database changes and broadcasts them over websockets
  • Storage - RESTful API for managing files in S3, with Postgres handling permissions
  • ImgProxy - Fast and secure image processing server
  • postgres-meta - RESTful API for managing Postgres (fetch tables, add roles, run queries)
  • PostgreSQL - Object-relational database with over 30 years of active development
  • Edge Runtime - Web server based on Deno runtime for running JavaScript, TypeScript, and WASM services
  • Logflare - Log management and event analytics platform
  • Vector - High-performance observability data pipeline for logs
  • Supavisor - Supabase's Postgres connection pooler

Documentation

  • Documentation - Setup and configuration guides
  • CHANGELOG.md - Track recent updates and changes to services
  • versions.md - Complete history of Docker image versions for rollback reference

Updates

To update your self-hosted Supabase instance:

  1. Review CHANGELOG.md for breaking changes
  2. Check versions.md for new image versions
  3. Update docker-compose.yml if there are configuration changes
  4. Pull the latest images: docker compose pull
  5. Stop services: docker compose down
  6. Start services with new configuration: docker compose up -d

Note: Consider to always backup your database before updating.

Community & Support

For troubleshooting common issues, see:

Self-hosted Supabase is community-supported. Get help and connect with other users:

  • Discord - Real-time chat and community support
  • Reddit - Community forum

Share your self-hosting experience and read what's working for other users:

Important Notes

Security

⚠️ The default configuration is not secure for production use.

Before deploying to production, you must:

  • Update all default passwords and secrets in the .env file
  • Generate new JWT secrets
  • Review and update CORS settings
  • Consider setting up a secure proxy in front of self-hosted Supabase
  • Review and adjust network security configuration (ACLs, etc.)
  • Set up proper backup procedures

See the security section in the documentation.

License

This repository is licensed under the Apache 2.0 License. See the main Supabase repository for details.