caterium-app/ops/supabase-selfhosted/.env.example
pavlov346346 88b7f55db4 Ops: add self-hosted Supabase stack for Timeweb Cloud migration
Full production-ready docker-compose stack (db, kong, auth, rest,
realtime, storage, imgproxy, meta, functions, studio) targeting
api.caterium.ru, plus bootstrap script for a fresh Cloud Server,
Caddy reverse-proxy config (HTTPS, WebSocket, upload limits), and
dump/restore/verify/storage-sync scripts for moving off the managed
Supabase project (cksuehzcimitsxmeloes). Does not touch public/ or
any live runtime behavior — frontend cutover is documented separately
in frontend-cutover.md and only applied after Etap 8 verification.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-11 16:20:45 +03:00

93 lines
2.1 KiB
Plaintext

# Copy to .env, fill in real values, `chmod 600 .env`. Never commit the real file.
# Generate secrets with: openssl rand -base64 32 (or -hex 32 for hex-only fields)
############
# Postgres #
############
POSTGRES_HOST=db
POSTGRES_PORT=5432
POSTGRES_DB=postgres
POSTGRES_PASSWORD=REPLACE_WITH_STRONG_RANDOM_PASSWORD
#######
# JWT #
#######
# 40+ char random string. New secret per README (old sessions invalidate; users log in again).
JWT_SECRET=REPLACE_WITH_openssl_rand_base64_40
JWT_EXPIRY=3600
# Derive ANON_KEY / SERVICE_ROLE_KEY from JWT_SECRET with the Supabase JWT generator
# (https://supabase.com/docs/guides/self-hosting/docker#generate-api-keys) — role: anon / service_role.
ANON_KEY=REPLACE_WITH_GENERATED_ANON_JWT
SERVICE_ROLE_KEY=REPLACE_WITH_GENERATED_SERVICE_ROLE_JWT
########
# Kong #
########
KONG_HTTP_PORT=8000
KONG_HTTPS_PORT=8443
#########
# Studio #
#########
STUDIO_DEFAULT_ORGANIZATION=Caterium
STUDIO_DEFAULT_PROJECT=caterium-selfhosted
STUDIO_PORT=3000
# Basic-auth in front of Studio via Caddy — separate from Supabase dashboard user below.
DASHBOARD_USERNAME=REPLACE_ME
DASHBOARD_PASSWORD=REPLACE_WITH_STRONG_RANDOM_PASSWORD
########
# API #
########
API_EXTERNAL_URL=https://api.caterium.ru
SUPABASE_PUBLIC_URL=https://api.caterium.ru
SITE_URL=https://app.caterium.ru
ADDITIONAL_REDIRECT_URLS=https://app.caterium.ru/**
#########
# Auth #
#########
DISABLE_SIGNUP=false
ENABLE_EMAIL_SIGNUP=true
ENABLE_EMAIL_AUTOCONFIRM=false
ENABLE_PHONE_SIGNUP=false
ENABLE_ANONYMOUS_USERS=false
########
# SMTP #
########
SMTP_ADMIN_EMAIL=noreply@caterium.ru
SMTP_HOST=REPLACE_ME
SMTP_PORT=587
SMTP_USER=REPLACE_ME
SMTP_PASS=REPLACE_ME
SMTP_SENDER_NAME=Caterium
###########
# Storage #
###########
STORAGE_BACKEND=file
FILE_SIZE_LIMIT=52428800
STORAGE_FILE_SIZE_LIMIT=52428800
###########
# Realtime #
###########
REALTIME_ENCRYPTION_KEY=REPLACE_WITH_openssl_rand_hex_16
REALTIME_SECRET_KEY_BASE=REPLACE_WITH_openssl_rand_base64_64
##############
# Functions #
##############
FUNCTIONS_VERIFY_JWT=false
##############
# pg_meta #
##############
PGMETA_PORT=8080
############
# Postgres image extras
############
POOLER_TENANT_ID=caterium