Files
supabase/docker/docker-compose.logs.yml
2026-06-03 11:07:31 +02:00

100 lines
2.9 KiB
YAML

# This override adds the following to the self-hosted Supabase configuration:
# - Logflare: Log management and event analytics platform
# - Vector: High-performance observability data pipeline for logs
#
# Usage:
# docker compose -f docker-compose.yml -f docker-compose.logs.yml up -d
services:
studio:
depends_on:
analytics:
condition: service_healthy
environment:
LOGFLARE_PRIVATE_ACCESS_TOKEN: ${LOGFLARE_PRIVATE_ACCESS_TOKEN}
LOGFLARE_URL: http://analytics:4000
ENABLED_FEATURES_LOGS_ALL: "true"
analytics:
container_name: supabase-analytics
image: supabase/logflare:1.43.1
restart: unless-stopped
#ports:
# - 4000:4000
healthcheck:
test:
[
"CMD-SHELL",
"curl -sSfL -o /dev/null http://localhost:4000/health"
]
timeout: 5s
interval: 5s
retries: 10
start_period: 30s
depends_on:
db:
# Disable this if you are using an external Postgres database
condition: service_healthy
environment:
LOGFLARE_NODE_HOST: 127.0.0.1
DB_USERNAME: supabase_admin
DB_DATABASE: _supabase
DB_HOSTNAME: ${POSTGRES_HOST}
DB_PORT: ${POSTGRES_PORT}
DB_PASSWORD: ${POSTGRES_PASSWORD}
DB_SCHEMA: _analytics
# Enable single-tenant mode for Logflare
LOGFLARE_SINGLE_TENANT: "true"
# Seed Supabase-related metadata
LOGFLARE_SUPABASE_MODE: "true"
LOGFLARE_PUBLIC_ACCESS_TOKEN: ${LOGFLARE_PUBLIC_ACCESS_TOKEN}
LOGFLARE_PRIVATE_ACCESS_TOKEN: ${LOGFLARE_PRIVATE_ACCESS_TOKEN}
LOGFLARE_FEATURE_FLAG_OVERRIDE: multibackend=true
# Comment out the following two variables when switching to
# the BigQuery backend for logs
POSTGRES_BACKEND_URL: postgresql://supabase_admin:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/_supabase
POSTGRES_BACKEND_SCHEMA: _analytics
# Uncomment to use the BigQuery backend for logs
#GOOGLE_PROJECT_ID: ${GOOGLE_PROJECT_ID}
#GOOGLE_PROJECT_NUMBER: ${GOOGLE_PROJECT_NUMBER}
# Uncomment to use the BigQuery backend for logs (requires gcloud.json
# service account key from Google Cloud Console)
#volumes:
# - ./gcloud.json:/opt/app/rel/logflare/bin/gcloud.json:ro,z
vector:
container_name: supabase-vector
image: timberio/vector:0.53.0-alpine
restart: unless-stopped
volumes:
- ./volumes/logs/vector.yml:/etc/vector/vector.yml:ro,z
- ${DOCKER_SOCKET_LOCATION}:/var/run/docker.sock:ro,z
healthcheck:
test:
[
"CMD-SHELL",
"wget --no-verbose --tries=1 --spider http://vector:9001/health"
]
timeout: 5s
interval: 5s
retries: 3
depends_on:
analytics:
condition: service_healthy
environment:
LOGFLARE_PUBLIC_ACCESS_TOKEN: ${LOGFLARE_PUBLIC_ACCESS_TOKEN}
command:
[
"--config",
"/etc/vector/vector.yml"
]
security_opt:
- "label=disable"