update supabase template to match current version

This commit is contained in:
Darren Sisson
2024-10-09 13:03:47 +01:00
parent 7f64873209
commit 1b0f67a083

View File

@@ -353,11 +353,18 @@ services:
create schema if not exists _realtime; create schema if not exists _realtime;
alter schema _realtime owner to :pguser; alter schema _realtime owner to :pguser;
- type: bind - type: bind
source: ./volumes/db/supavisor.sql source: ./volumes/db/_supabase.sql
target: /docker-entrypoint-initdb.d/init-scripts/99-supavisor.sql target: /docker-entrypoint-initdb.d/migrations/97-_supabase.sql
content: |
\set pguser `echo "$POSTGRES_USER"`
CREATE DATABASE _supabase WITH OWNER :pguser;
- type: bind
source: ./volumes/db/pooler.sql
target: /docker-entrypoint-initdb.d/migrations/99-pooler.sql
content: | content: |
\set pguser `echo "supabase_admin"` \set pguser `echo "supabase_admin"`
\c _supabase
create schema if not exists _supavisor; create schema if not exists _supavisor;
alter schema _supavisor owner to :pguser; alter schema _supavisor owner to :pguser;
- type: bind - type: bind
@@ -600,7 +607,7 @@ services:
target: /docker-entrypoint-initdb.d/migrations/99-logs.sql target: /docker-entrypoint-initdb.d/migrations/99-logs.sql
content: | content: |
\set pguser `echo "supabase_admin"` \set pguser `echo "supabase_admin"`
\c _supabase
create schema if not exists _analytics; create schema if not exists _analytics;
alter schema _analytics owner to :pguser; alter schema _analytics owner to :pguser;
# Use named volume to persist pgsodium decryption key between restarts # Use named volume to persist pgsodium decryption key between restarts
@@ -625,7 +632,7 @@ services:
environment: environment:
- LOGFLARE_NODE_HOST=127.0.0.1 - LOGFLARE_NODE_HOST=127.0.0.1
- DB_USERNAME=supabase_admin - DB_USERNAME=supabase_admin
- DB_DATABASE=${POSTGRES_DB:-postgres} - DB_DATABASE=_supabase
- DB_HOSTNAME=${POSTGRES_HOSTNAME:-supabase-db} - DB_HOSTNAME=${POSTGRES_HOSTNAME:-supabase-db}
- DB_PORT=${POSTGRES_PORT:-5432} - DB_PORT=${POSTGRES_PORT:-5432}
- DB_PASSWORD=${SERVICE_PASSWORD_POSTGRES} - DB_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
@@ -637,7 +644,7 @@ services:
- LOGFLARE_MIN_CLUSTER_SIZE=1 - LOGFLARE_MIN_CLUSTER_SIZE=1
# Comment variables to use Big Query backend for analytics # Comment variables to use Big Query backend for analytics
- POSTGRES_BACKEND_URL=postgresql://supabase_admin:${SERVICE_PASSWORD_POSTGRES}@${POSTGRES_HOSTNAME:-supabase-db}:${POSTGRES_PORT:-5432}/${POSTGRES_DB:-postgres} - POSTGRES_BACKEND_URL=postgresql://supabase_admin:${SERVICE_PASSWORD_POSTGRES}@${POSTGRES_HOSTNAME:-supabase-db}:${POSTGRES_PORT:-5432}/_supabase
- POSTGRES_BACKEND_SCHEMA=_analytics - POSTGRES_BACKEND_SCHEMA=_analytics
- LOGFLARE_FEATURE_FLAG_OVERRIDE=multibackend=true - LOGFLARE_FEATURE_FLAG_OVERRIDE=multibackend=true
@@ -1354,15 +1361,19 @@ services:
depends_on: depends_on:
supabase-db: supabase-db:
condition: service_healthy condition: service_healthy
supabase-analytics:
condition: service_healthy
environment: environment:
- POOLER_TENANT_ID=dev_tenant
- POOLER_POOL_MODE=transaction
- POOLER_DEFAULT_POOL_SIZE=${POOLER_DEFAULT_POOL_SIZE:-20}
- POOLER_MAX_CLIENT_CONN=${POOLER_MAX_CLIENT_CONN:-100}
- PORT=4000 - PORT=4000
- PROXY_PORT_SESSION=5432
- PROXY_PORT_TRANSACTION=6543
- 'POSTGRES_PORT=${POSTGRES_PORT:-5432}' - 'POSTGRES_PORT=${POSTGRES_PORT:-5432}'
- 'POSTGRES_HOSTNAME=${POSTGRES_HOSTNAME:-supabase-db}' - 'POSTGRES_HOSTNAME=${POSTGRES_HOSTNAME:-supabase-db}'
- 'POSTGRES_DB=${POSTGRES_DB:-postgres}' - 'POSTGRES_DB=${POSTGRES_DB:-postgres}'
- 'POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}' - 'POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}'
- 'DATABASE_URL=ecto://supabase_admin:${SERVICE_PASSWORD_POSTGRES}@${POSTGRES_HOSTNAME:-supabase-db}:${POSTGRES_PORT:-5432}/${POSTGRES_DB:-postgres}' - 'DATABASE_URL=ecto://supabase_admin:${SERVICE_PASSWORD_POSTGRES}@${POSTGRES_HOSTNAME:-supabase-db}:${POSTGRES_PORT:-5432}/_supabase'
- CLUSTER_POSTGRES=true - CLUSTER_POSTGRES=true
- 'SECRET_KEY_BASE=${SERVICE_PASSWORD_SUPAVISORSECRET}' - 'SECRET_KEY_BASE=${SERVICE_PASSWORD_SUPAVISORSECRET}'
- 'VAULT_ENC_KEY=${SERVICE_PASSWORD_VAULTENC}' - 'VAULT_ENC_KEY=${SERVICE_PASSWORD_VAULTENC}'
@@ -1370,14 +1381,15 @@ services:
- 'METRICS_JWT_SECRET=${SERVICE_PASSWORD_JWT}' - 'METRICS_JWT_SECRET=${SERVICE_PASSWORD_JWT}'
- REGION=local - REGION=local
- 'ERL_AFLAGS=-proto_dist inet_tcp' - 'ERL_AFLAGS=-proto_dist inet_tcp'
command:
- /bin/sh
- "-c"
- '/app/bin/migrate && /app/bin/supavisor eval "$$(cat /etc/pooler/pooler.exs)" && /app/bin/server'
volumes: volumes:
- type: bind - type: bind
source: ./volumes/supavisor/entrypoint.sh source: ./volumes/pooler/pooler.exs
target: /home/entrypoint.sh target: /etc/pooler/pooler.exs
content: | content: |
#!/bin/bash
/app/bin/supavisor eval '
{:ok, _} = Application.ensure_all_started(:supavisor) {:ok, _} = Application.ensure_all_started(:supavisor)
{:ok, version} = {:ok, version} =
case Supavisor.Repo.query!("select version()") do case Supavisor.Repo.query!("select version()") do
@@ -1385,21 +1397,20 @@ services:
_ -> nil _ -> nil
end end
params = %{ params = %{
"external_id" => "dev_tenant", "external_id" => System.get_env("POOLER_TENANT_ID"),
"db_host" => System.get_env("POSTGRES_HOSTNAME"), "db_host" => System.get_env("POSTGRES_HOSTNAME"),
"db_port" => System.get_env("POSTGRES_PORT") |> String.to_integer(), "db_port" => System.get_env("POSTGRES_PORT") |> String.to_integer(),
"db_database" => System.get_env("POSTGRES_DB"), "db_database" => System.get_env("POSTGRES_DB"),
"require_user" => false, "require_user" => false,
"auth_query" => "SELECT rolname, rolpassword FROM pg_authid WHERE rolname=$1", "auth_query" => "SELECT * FROM pgbouncer.get_auth($1)",
"default_max_clients" => 100, "default_max_clients" => System.get_env("POOLER_MAX_CLIENT_CONN"),
"default_pool_size" => 20, "default_pool_size" => System.get_env("POOLER_DEFAULT_POOL_SIZE"),
"enforce_ssl" => false,
"default_parameter_status" => %{"server_version" => version}, "default_parameter_status" => %{"server_version" => version},
"users" => [%{ "users" => [%{
"db_user" => "postgres", "db_user" => "pgbouncer",
"db_password" => System.get_env("POSTGRES_PASSWORD"), "db_password" => System.get_env("POSTGRES_PASSWORD"),
"mode_type" => "transaction", "mode_type" => System.get_env("POOLER_POOL_MODE"),
"pool_size" => 20, "pool_size" => System.get_env("POOLER_DEFAULT_POOL_SIZE"),
"is_manager" => true "is_manager" => true
}] }]
} }
@@ -1411,9 +1422,3 @@ services:
else else
{:ok, _} = Supavisor.Tenants.create_tenant(params) {:ok, _} = Supavisor.Tenants.create_tenant(params)
end end
'
command:
- sh
- "-c"
- "chmod +x /home/entrypoint.sh && /app/bin/migrate && /home/entrypoint.sh && /app/bin/server"