fix(supabase): update to latest versions, fix vector config, add missing env vars
This commit is contained in:
parent
b5a21543c3
commit
16617b9009
1 changed files with 49 additions and 26 deletions
|
|
@ -290,7 +290,7 @@ services:
|
||||||
config:
|
config:
|
||||||
hide_credentials: true
|
hide_credentials: true
|
||||||
supabase-studio:
|
supabase-studio:
|
||||||
image: supabase/studio:2026.01.27-sha-6aa59ff
|
image: supabase/studio:2026.02.16-sha-26c615c
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test:
|
test:
|
||||||
[
|
[
|
||||||
|
|
@ -321,6 +321,7 @@ services:
|
||||||
- SUPABASE_ANON_KEY=${SERVICE_SUPABASEANON_KEY}
|
- SUPABASE_ANON_KEY=${SERVICE_SUPABASEANON_KEY}
|
||||||
- SUPABASE_SERVICE_KEY=${SERVICE_SUPABASESERVICE_KEY}
|
- SUPABASE_SERVICE_KEY=${SERVICE_SUPABASESERVICE_KEY}
|
||||||
- AUTH_JWT_SECRET=${SERVICE_PASSWORD_JWT}
|
- AUTH_JWT_SECRET=${SERVICE_PASSWORD_JWT}
|
||||||
|
- PG_META_CRYPTO_KEY=${SERVICE_PASSWORD_PGMETACRYPTO}
|
||||||
|
|
||||||
- LOGFLARE_API_KEY=${SERVICE_PASSWORD_LOGFLARE}
|
- LOGFLARE_API_KEY=${SERVICE_PASSWORD_LOGFLARE}
|
||||||
- LOGFLARE_PUBLIC_ACCESS_TOKEN=${SERVICE_PASSWORD_LOGFLARE}
|
- LOGFLARE_PUBLIC_ACCESS_TOKEN=${SERVICE_PASSWORD_LOGFLARE}
|
||||||
|
|
@ -640,7 +641,7 @@ services:
|
||||||
- supabase-db-config:/etc/postgresql-custom
|
- supabase-db-config:/etc/postgresql-custom
|
||||||
|
|
||||||
supabase-analytics:
|
supabase-analytics:
|
||||||
image: supabase/logflare:1.30.3
|
image: supabase/logflare:1.31.2
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "curl", "http://127.0.0.1:4000/health"]
|
test: ["CMD", "curl", "http://127.0.0.1:4000/health"]
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
|
|
@ -676,7 +677,7 @@ services:
|
||||||
# GOOGLE_PROJECT_ID=${GOOGLE_PROJECT_ID}
|
# GOOGLE_PROJECT_ID=${GOOGLE_PROJECT_ID}
|
||||||
# GOOGLE_PROJECT_NUMBER=${GOOGLE_PROJECT_NUMBER}
|
# GOOGLE_PROJECT_NUMBER=${GOOGLE_PROJECT_NUMBER}
|
||||||
supabase-vector:
|
supabase-vector:
|
||||||
image: timberio/vector:0.28.1-alpine
|
image: timberio/vector:0.53.0-alpine
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test:
|
test:
|
||||||
[
|
[
|
||||||
|
|
@ -799,7 +800,7 @@ services:
|
||||||
parsed, err = parse_regex(.event_message, r'^(?P<time>.*): (?P<msg>.*)$')
|
parsed, err = parse_regex(.event_message, r'^(?P<time>.*): (?P<msg>.*)$')
|
||||||
if err == null {
|
if err == null {
|
||||||
.event_message = parsed.msg
|
.event_message = parsed.msg
|
||||||
.timestamp = to_timestamp!(parsed.time)
|
.timestamp = parse_timestamp!(value: parsed.time, format: "%d/%b/%Y:%H:%M:%S %z")
|
||||||
.metadata.host = .project
|
.metadata.host = .project
|
||||||
}
|
}
|
||||||
# Realtime logs are structured so we parse the severity level using regex (ignore time because it has no date)
|
# Realtime logs are structured so we parse the severity level using regex (ignore time because it has no date)
|
||||||
|
|
@ -862,8 +863,11 @@ services:
|
||||||
codec: 'json'
|
codec: 'json'
|
||||||
method: 'post'
|
method: 'post'
|
||||||
request:
|
request:
|
||||||
retry_max_duration_secs: 10
|
retry_max_duration_secs: 30
|
||||||
uri: 'http://supabase-analytics:4000/api/logs?source_name=gotrue.logs.prod&api_key=${LOGFLARE_API_KEY?LOGFLARE_API_KEY is required}'
|
retry_initial_backoff_secs: 1
|
||||||
|
headers:
|
||||||
|
x-api-key: '${LOGFLARE_API_KEY?LOGFLARE_API_KEY is required}'
|
||||||
|
uri: 'http://supabase-analytics:4000/api/logs?source_name=gotrue.logs.prod'
|
||||||
logflare_realtime:
|
logflare_realtime:
|
||||||
type: 'http'
|
type: 'http'
|
||||||
inputs:
|
inputs:
|
||||||
|
|
@ -872,8 +876,11 @@ services:
|
||||||
codec: 'json'
|
codec: 'json'
|
||||||
method: 'post'
|
method: 'post'
|
||||||
request:
|
request:
|
||||||
retry_max_duration_secs: 10
|
retry_max_duration_secs: 30
|
||||||
uri: 'http://supabase-analytics:4000/api/logs?source_name=realtime.logs.prod&api_key=${LOGFLARE_API_KEY?LOGFLARE_API_KEY is required}'
|
retry_initial_backoff_secs: 1
|
||||||
|
headers:
|
||||||
|
x-api-key: '${LOGFLARE_API_KEY?LOGFLARE_API_KEY is required}'
|
||||||
|
uri: 'http://supabase-analytics:4000/api/logs?source_name=realtime.logs.prod'
|
||||||
logflare_rest:
|
logflare_rest:
|
||||||
type: 'http'
|
type: 'http'
|
||||||
inputs:
|
inputs:
|
||||||
|
|
@ -882,8 +889,11 @@ services:
|
||||||
codec: 'json'
|
codec: 'json'
|
||||||
method: 'post'
|
method: 'post'
|
||||||
request:
|
request:
|
||||||
retry_max_duration_secs: 10
|
retry_max_duration_secs: 30
|
||||||
uri: 'http://supabase-analytics:4000/api/logs?source_name=postgREST.logs.prod&api_key=${LOGFLARE_API_KEY?LOGFLARE_API_KEY is required}'
|
retry_initial_backoff_secs: 1
|
||||||
|
headers:
|
||||||
|
x-api-key: '${LOGFLARE_API_KEY?LOGFLARE_API_KEY is required}'
|
||||||
|
uri: 'http://supabase-analytics:4000/api/logs?source_name=postgREST.logs.prod'
|
||||||
logflare_db:
|
logflare_db:
|
||||||
type: 'http'
|
type: 'http'
|
||||||
inputs:
|
inputs:
|
||||||
|
|
@ -892,11 +902,11 @@ services:
|
||||||
codec: 'json'
|
codec: 'json'
|
||||||
method: 'post'
|
method: 'post'
|
||||||
request:
|
request:
|
||||||
retry_max_duration_secs: 10
|
retry_max_duration_secs: 30
|
||||||
# We must route the sink through kong because ingesting logs before logflare is fully initialised will
|
retry_initial_backoff_secs: 1
|
||||||
# lead to broken queries from studio. This works by the assumption that containers are started in the
|
headers:
|
||||||
# following order: vector > db > logflare > kong
|
x-api-key: '${LOGFLARE_API_KEY?LOGFLARE_API_KEY is required}'
|
||||||
uri: 'http://supabase-kong:8000/analytics/v1/api/logs?source_name=postgres.logs&api_key=${LOGFLARE_API_KEY?LOGFLARE_API_KEY is required}'
|
uri: 'http://supabase-analytics:4000/api/logs?source_name=postgres.logs'
|
||||||
logflare_functions:
|
logflare_functions:
|
||||||
type: 'http'
|
type: 'http'
|
||||||
inputs:
|
inputs:
|
||||||
|
|
@ -905,8 +915,11 @@ services:
|
||||||
codec: 'json'
|
codec: 'json'
|
||||||
method: 'post'
|
method: 'post'
|
||||||
request:
|
request:
|
||||||
retry_max_duration_secs: 10
|
retry_max_duration_secs: 30
|
||||||
uri: 'http://supabase-analytics:4000/api/logs?source_name=deno-relay-logs&api_key=${LOGFLARE_API_KEY?LOGFLARE_API_KEY is required}'
|
retry_initial_backoff_secs: 1
|
||||||
|
headers:
|
||||||
|
x-api-key: '${LOGFLARE_API_KEY?LOGFLARE_API_KEY is required}'
|
||||||
|
uri: 'http://supabase-analytics:4000/api/logs?source_name=deno-relay-logs'
|
||||||
logflare_storage:
|
logflare_storage:
|
||||||
type: 'http'
|
type: 'http'
|
||||||
inputs:
|
inputs:
|
||||||
|
|
@ -915,8 +928,11 @@ services:
|
||||||
codec: 'json'
|
codec: 'json'
|
||||||
method: 'post'
|
method: 'post'
|
||||||
request:
|
request:
|
||||||
retry_max_duration_secs: 10
|
retry_max_duration_secs: 30
|
||||||
uri: 'http://supabase-analytics:4000/api/logs?source_name=storage.logs.prod.2&api_key=${LOGFLARE_API_KEY?LOGFLARE_API_KEY is required}'
|
retry_initial_backoff_secs: 1
|
||||||
|
headers:
|
||||||
|
x-api-key: '${LOGFLARE_API_KEY?LOGFLARE_API_KEY is required}'
|
||||||
|
uri: 'http://supabase-analytics:4000/api/logs?source_name=storage.logs.prod.2'
|
||||||
logflare_kong:
|
logflare_kong:
|
||||||
type: 'http'
|
type: 'http'
|
||||||
inputs:
|
inputs:
|
||||||
|
|
@ -926,8 +942,11 @@ services:
|
||||||
codec: 'json'
|
codec: 'json'
|
||||||
method: 'post'
|
method: 'post'
|
||||||
request:
|
request:
|
||||||
retry_max_duration_secs: 10
|
retry_max_duration_secs: 30
|
||||||
uri: 'http://supabase-analytics:4000/api/logs?source_name=cloudflare.logs.prod&api_key=${LOGFLARE_API_KEY?LOGFLARE_API_KEY is required}'
|
retry_initial_backoff_secs: 1
|
||||||
|
headers:
|
||||||
|
x-api-key: '${LOGFLARE_API_KEY?LOGFLARE_API_KEY is required}'
|
||||||
|
uri: 'http://supabase-analytics:4000/api/logs?source_name=cloudflare.logs.prod'
|
||||||
|
|
||||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||||
environment:
|
environment:
|
||||||
|
|
@ -935,7 +954,7 @@ services:
|
||||||
command: ["--config", "etc/vector/vector.yml"]
|
command: ["--config", "etc/vector/vector.yml"]
|
||||||
|
|
||||||
supabase-rest:
|
supabase-rest:
|
||||||
image: postgrest/postgrest:v14.3
|
image: postgrest/postgrest:v14.5
|
||||||
depends_on:
|
depends_on:
|
||||||
supabase-db:
|
supabase-db:
|
||||||
# Disable this if you are using an external Postgres database
|
# Disable this if you are using an external Postgres database
|
||||||
|
|
@ -953,7 +972,7 @@ services:
|
||||||
command: "postgrest"
|
command: "postgrest"
|
||||||
exclude_from_hc: true
|
exclude_from_hc: true
|
||||||
supabase-auth:
|
supabase-auth:
|
||||||
image: supabase/gotrue:v2.185.0
|
image: supabase/gotrue:v2.186.0
|
||||||
depends_on:
|
depends_on:
|
||||||
supabase-db:
|
supabase-db:
|
||||||
# Disable this if you are using an external Postgres database
|
# Disable this if you are using an external Postgres database
|
||||||
|
|
@ -1044,7 +1063,7 @@ services:
|
||||||
|
|
||||||
realtime-dev:
|
realtime-dev:
|
||||||
# This container name looks inconsistent but is correct because realtime constructs tenant id by parsing the subdomain
|
# This container name looks inconsistent but is correct because realtime constructs tenant id by parsing the subdomain
|
||||||
image: supabase/realtime:v2.72.0
|
image: supabase/realtime:v2.76.5
|
||||||
container_name: realtime-dev.supabase-realtime
|
container_name: realtime-dev.supabase-realtime
|
||||||
depends_on:
|
depends_on:
|
||||||
supabase-db:
|
supabase-db:
|
||||||
|
|
@ -1125,7 +1144,7 @@ services:
|
||||||
exit 0
|
exit 0
|
||||||
|
|
||||||
supabase-storage:
|
supabase-storage:
|
||||||
image: supabase/storage-api:v1.37.1
|
image: supabase/storage-api:v1.37.8
|
||||||
depends_on:
|
depends_on:
|
||||||
supabase-db:
|
supabase-db:
|
||||||
# Disable this if you are using an external Postgres database
|
# Disable this if you are using an external Postgres database
|
||||||
|
|
@ -1172,6 +1191,10 @@ services:
|
||||||
- DATABASE_SEARCH_PATH=storage
|
- DATABASE_SEARCH_PATH=storage
|
||||||
- NODE_ENV=production
|
- NODE_ENV=production
|
||||||
- REQUEST_ALLOW_X_FORWARDED_PATH=true
|
- REQUEST_ALLOW_X_FORWARDED_PATH=true
|
||||||
|
- ANON_KEY=${SERVICE_SUPABASEANON_KEY}
|
||||||
|
- SERVICE_KEY=${SERVICE_SUPABASESERVICE_KEY}
|
||||||
|
- POSTGREST_URL=http://supabase-rest:3000
|
||||||
|
- PGRST_JWT_SECRET=${SERVICE_PASSWORD_JWT}
|
||||||
volumes:
|
volumes:
|
||||||
- ./volumes/storage:/var/lib/storage
|
- ./volumes/storage:/var/lib/storage
|
||||||
imgproxy:
|
imgproxy:
|
||||||
|
|
@ -1208,7 +1231,7 @@ services:
|
||||||
- CRYPTO_KEY=${SERVICE_PASSWORD_PGMETACRYPTO}
|
- CRYPTO_KEY=${SERVICE_PASSWORD_PGMETACRYPTO}
|
||||||
|
|
||||||
supabase-edge-functions:
|
supabase-edge-functions:
|
||||||
image: supabase/edge-runtime:v1.70.0
|
image: supabase/edge-runtime:v1.70.3
|
||||||
depends_on:
|
depends_on:
|
||||||
supabase-analytics:
|
supabase-analytics:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue