mirror of
https://github.com/supabase/supabase.git
synced 2026-07-05 07:14:28 +08:00
90 lines
2.5 KiB
Plaintext
90 lines
2.5 KiB
Plaintext
---
|
|
id: docker
|
|
title: With Docker
|
|
description: How to use configure and deploy Supabase.
|
|
---
|
|
|
|
Docker is the easiest way to get started with self-hosted Supabase.
|
|
|
|
## Before you begin
|
|
|
|
You need the following installed in your system:
|
|
|
|
- [Docker](https://docs.docker.com/engine/install/) and docker-compose
|
|
- [Git](https://git-scm.com/downloads)
|
|
|
|
## Getting started
|
|
|
|
### Get the code
|
|
|
|
Checkout the docker directory in the Supabase repo:
|
|
|
|
```sh
|
|
git clone --depth 1 https://github.com/supabase/supabase
|
|
cd supabase/docker
|
|
```
|
|
|
|
### Manage Secrets
|
|
|
|
Copy `.env.example` to `.env` and populate the values.
|
|
|
|
```sh
|
|
cp .env.example .env
|
|
```
|
|
|
|
In particular, these are required:
|
|
|
|
- `POSTGRES_PASSWORD`: the password for the `postgres` role
|
|
- `JWT_SECRET`: used by PostgREST and GoTrue, among others
|
|
- `SITE_URL`: the base URL of your site
|
|
- `SMTP_*`: mail server credentials
|
|
|
|
### Generate API Keys
|
|
|
|
Use your `JWT_SECRET` to generate a `anon` and `service` API keys using the [JWT generator](/docs/guides/hosting/overview#api-keys).
|
|
|
|
Replace the values in these files:
|
|
|
|
- `docker-compose.yml`:
|
|
- `ANON_KEY` - replace with an `anon` key
|
|
- `SERVICE_KEY` - replace with a `service` key
|
|
- `volumes/kong.yml`
|
|
- `anon` - replace with an `anon` key
|
|
- `service_role` - replace with a `service` key
|
|
|
|
### Start
|
|
|
|
You can now start Supabase:
|
|
|
|
```sh
|
|
docker-compose up
|
|
```
|
|
|
|
Your database will be persisted in `volumes/db/data`, and your storage objects in `volumes/storage`.
|
|
|
|
Try out the examples in `supabase/examples` to verify if it works correctly!
|
|
|
|
## Configuration
|
|
|
|
To keep the setup simple, we made some choices that may not be optimal for production:
|
|
|
|
- the database is in the same machine as the servers
|
|
- the storage uses the filesystem backend instead of S3
|
|
|
|
We strongly [recommend](/docs/guides/hosting/overview#managing-your-database) that you decouple your database
|
|
before deploying.
|
|
Each system can be [configured](/docs/guides/hosting/overview#configuration) to suit your particular use-case.
|
|
|
|
## Deploying
|
|
|
|
See the following guides to deploy Docker Compose setup using your preferred tool and platform:
|
|
|
|
- [Docker Swarm](https://docs.docker.com/engine/swarm/stack-deploy/)
|
|
- [AWS Fargate](https://aws.amazon.com/blogs/containers/deploy-applications-on-amazon-ecs-using-docker-compose/)
|
|
- [Using Kompose for Kubernetes](https://kubernetes.io/docs/tasks/configure-pod-container/translate-compose-kubernetes/)
|
|
|
|
## Next steps
|
|
|
|
- Got a question? [Ask here](https://github.com/supabase/supabase/discussions).
|
|
- Sign in: [app.supabase.com](https://app.supabase.com)
|