Local branch had diverged from origin/master (sibling commits on the same base). Rewrote local history linearly on top of origin/master, folding in all local content: exa/hot-platform discovery hunters, leaks ledger, nightly sweep orchestrator, updated .gitignore and skill docs, plus the latest hunt output and vault state. Remote-only files (vault keys, channel scripts) were restored rather than dropped, so the resulting tree is a full union of both sides.
1 line
22 KiB
JSON
1 line
22 KiB
JSON
{"repo": "adm01-debug/zapp-web-v3", "files": {"infra/supabase/docker-compose.supabase.yml": {"431543ffe1e04d66b8f3bf8456829b868985a961": {"t": 1786068430.7571278, "n": 21876, "h": "b0f957884be0214f", "c": "# Docker Compose do Supabase self-hosted — ESPELHO DO RUNTIME (stack 35 / Portainer)\n#\n# Obtido via Portainer get_stack_file (stack 35) em 2026-08-06 durante auditoria\n# exaustiva (EX-03). Fonte de verdade do runtime: /data/compose/35 no Portainer.\n# Este arquivo existe para permitir diff repo×runtime em auditorias futuras.\n#\n# ⚠️ REGRAS:\n# - NUNCA editar este arquivo esperando efeito no runtime — o runtime só muda\n# via update_stack no Portainer (stack 35).\n# - Valores de secrets NÃO são incluídos: todos são secrets externos do Swarm.\n# - Exceção documentada: PROMOGIFTS_SUPABASE_ANON_KEY (anon key pública por\n# definição) aparece como literal porque é assim no runtime.\n# - Após qualquer update_stack(35), re-sincronizar este espelho (git diff).\n\nversion: \"3.7\"\n\n# AG-EX-05 STACK SYNC GATE (2026-08-05)\n# AG-EX2-07 (2026-08-06): EXCECAO DO REST ELIMINADA — literais PGRST_DB_URI /\n# PGRST_JWT_SECRET / PGRST_APP_SETTINGS_* -> secret postgrest_conf_v1 montado\n# em /etc/postgrest/postgrest.conf (config file postgrest v14.12, validado em\n# servico descartavel 2026-08-06: conectou PG 15.8 + listener pgrst).\n\nservices:\n studio:\n image: supabase/studio:2026.06.29-sha-20290c7\n entrypoint: [\"/bin/sh\", \"-c\"]\n command:\n - \"export LOGFLARE_API_KEY=$$(cat /run/secrets/logflare_api_key_v2) && export SUPABASE_ANON_KEY=$$(cat /run/secrets/supabase_anon_key_v2) && export SUPABASE_SERVICE_KEY=$$(cat /run/secrets/supabase_service_key_v3) && export SUPABASE_PUBLISHABLE_KEY=$$(cat /run/secrets/supabase_anon_key_v2) && export SUPABASE_SECRET_KEY=$$(cat /run/secrets/supabase_service_key_v3) && export AUTH_JWT_SECRET=$$(cat /run/secrets/supabase_jwt_secret_v2) && export POSTGRES_PASSWORD=$$(cat /run/secrets/supabase_db_password_v2) && export PG_META_CRYPTO_KEY=$$(cat /run/secrets/pg_meta_crypto_key_v2) && exec docker-entrypoint.sh node apps/studio/server.js\"\n networks:\n - AtomicaBRNet\n volumes:\n - /root/supabase/docker/volumes/functions:/home/deno/functions:ro\n - /root/supabase/docker/volumes/snippets:/home/deno/snippets\n secrets:\n - logflare_api_key_v2\n - supabase_anon_key_v2\n - supabase_service_key_v3\n - supabase_jwt_secret_v2\n - supabase_db_password_v2\n - pg_meta_crypto_key_v2\n environment:\n - HOSTNAME=0.0.0.0\n - NEXT_PUBLIC_ENABLE_LOGS=true\n - NEXT_ANALYTICS_BACKEND_PROVIDER=logflare\n - ENABLED_FEATURES_LOGS_ALL=true\n - DEFAULT_ORGANIZATION_NAME=Promo Brindes\n - DEFAULT_PROJECT_NAME=BrasilMarcas\n - STUDIO_PG_META_URL=http://meta:8080\n - SUPABASE_URL=http://kong:8000\n - SUPABASE_PUBLIC_URL=https://supabase.atomicabr.com.br\n - LOGFLARE_URL=http://analytics:4000\n - PGRST_DB_SCHEMAS=public,storage,graphql_public\n - PGRST_DB_EXTRA_SEARCH_PATH=public,extensions\n - PGRST_DB_MAX_ROWS=1000\n - EDGE_FUNCTIONS_MANAGEMENT_FOLDER=/home/deno/functions\n - SNIPPETS_MANAGEMENT_FOLDER=/home/deno/snippets\n healthcheck:\n test: [\"CMD-SHELL\", \"node -e \\\"fetch('http://localhost:3000/api/platform/profile').then((r) => {if (r.status !== 200) throw new Error(r.status)})\\\"\"]\n interval: 5s\n timeout: 5s\n retries: 3\n deploy:\n mode: replicated\n replicas: 1\n placement:\n constraints:\n - node.role == manager\n resources:\n limits:\n cpus: \"0.5\"\n memory: 1536M\n reservations:\n memory: 256M\n update_config:\n failure_action: rollback\n order: stop-first\n labels:\n - \"com.docker.stack.image=supabase/studio:2026.06.29-sha-20290c7\"\n\n functions:\n image: supabase/edge-runtime:v1.74.0\n entrypoint: [\"/bin/sh\", \"-c\"]\n command:\n - \"export JWT_SECRET=$$(cat /run/secrets/supabase_jwt_secret_v1) && export DB_PASS=$$(cat /run/secrets/supabase_db_password_v1) && export SUPABASE_DB_URL=postgresql://postgres:$${DB_PASS}@db:5432/postgres && export SUPABASE_SERVICE_ROLE_KEY=$$(cat /run/secrets/supabase_service_key_v3) && export EVOLUTION_WEBHOOK_SECRETS=$$(cat /run/secrets/supabase_evolution_webhook_secret_v1) && export SELFHOSTED_SUPABASE_URL=https://supabase.atomicabr.com.br && export SELFHOSTED_SUPABASE_SERVICE_ROLE_KEY=$$(cat /run/secrets/supabase_service_key_v3) && export SELFHOSTED_SUPABASE_ANON_KEY=$$(cat /run/secrets/supabase_anon_key_v2) && export SUPABASE_ANON_KEY=$$(cat /run/secrets/supabase_anon_key_v2) && export SENTRY_DSN=$$(cat /run/secrets/sentry_dsn_v2) && export HEALTH_SECRET=$$(cat /run/secrets/health_secret_v2) && export METRICS_SCRAPE_TOKEN=$$(cat /run/secrets/metrics_scrape_token_v2) && export DEEPSEEK_API_KEY=$$(cat /run/secrets/deepseek_api_key_v2) && export EVOLUTION_API_KEY=$$(cat /run/secrets/evolution_api_key_v4_20260704) && exec edge-runtime start --main-service /home/deno/functions/main # secrets-v1\"\n volumes:\n - /root/supabase/docker/volumes/functions:/home/deno/functions:Z\n secrets:\n - supabase_jwt_secret_v1\n - supabase_db_password_v1\n - supabase_service_key_v3\n - supabase_evolution_webhook_secret_v1\n - deepseek_api_key_v2\n - source: evolution_api_key_v5_20260805\n target: evolution_api_key_v4_20260704\n - supabase_anon_key_v2\n - sentry_dsn_v2\n - health_secret_v2\n - metrics_scrape_token_v2\n networks:\n - AtomicaBRNet\n environment:\n - VERIFY_JWT=true\n - SUPABASE_URL=http://kong:8000\n - PROMOGIFTS_SUPABASE_URL=https://doufsxqlfjyuvxuezpln.supabase.co\n - PROMOGIFTS_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImRvdWZzeHFsZmp5dXZ4dWV6cGxuIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NjczODY2NDMsImV4cCI6MjA4Mjk2MjY0M30.nm3WMOBSx5SUnIBmvF_Mj0Y-4hV6UohrBF0sUpuQvPc\n - EVOLUTION_API_URL=https://evolution.atomicabr.com.br\n - AI_BASE_URL=https://api.deepseek.com/v1\n - AI_ROUTER_URL=https://supabase.atomicabr.com.br/functions/v1/ai-router\n - GMAIL_PUBSUB_TOPIC=projects/zapp-web/topics/gmail-push\n deploy:\n mode: replicated\n replicas: 1\n placement:\n constraints:\n - node.role == manager\n resources:\n limits:\n cpus: \"1.0\"\n memory: 1536M\n reservations:\n memory: 256M\n update_config:\n failure_action: rollback\n order: stop-first\n\n kong:\n image: kong:3.9.3\n entrypoint: [\"/bin/sh\", \"-c\"]\n command:\n - \"export SUPABASE_ANON_KEY=$$(cat /run/secrets/supabase_anon_key_v2) && export JWT_SECRET=$$(cat /run/secrets/supabase_jwt_secret_v1) && export SUPABASE_SERVICE_KEY=$$(cat /run/secrets/supabase_service_key_v3) && export DASHBOARD_PASSWORD=$$(cat /run/secrets/kong_dashboard_password_v1) && eval \\\"echo \\\\\\\"$$(cat ~/temp.yml)\\\\\\\"\\\" > /tmp/kong.yml && exec /docker-entrypoint.sh kong docker-start\"\n volumes:\n - /root/supabase/docker/volumes/api/kong.yml:/home/kong/temp.yml:ro\n secrets:\n - supabase_jwt_secret_v1\n - supabase_service_key_v3\n - kong_dashboard_password_v1\n - supabase_anon_key_v2\n networks:\n - AtomicaBRNet\n environment:\n - DASHBOARD_USERNAME=AtomicaBR\n - KONG_DATABASE=off\n - KONG_DECLARATIVE_CONFIG=/tmp/kong.yml\n - KONG_DNS_ORDER=LAST,A,CNAME\n - KONG_PLUGINS=request-transformer,cors,key-auth,acl,basic-auth,request-termination,rate-limiting\n - KONG_NGINX_PROXY_PROXY_BUFFER_SIZE=160k\n - KONG_NGINX_PROXY_PROXY_BUFFERS=64 160k\n healthcheck:\n test: [\"CMD-SHELL\", \"kong health\"]\n interval: 10s\n timeout: 10s\n retries: 10\n deploy:\n mode: replicated\n replicas: 1\n placement:\n constraints:\n - node.role == manager\n resources:\n limits:\n memory: 2g\n update_config:\n failure_action: rollback\n order: stop-first\n labels:\n - traefik.enable=true\n - traefik.http.routers.kong.rule=Host(`supabase.atomicabr.com.br`) && PathPrefix(`/`)\n - traefik.http.services.kong.loadbalancer.server.port=8000\n - traefik.http.routers.kong.service=kong\n - traefik.http.routers.kong.entrypoints=websecure\n - traefik.http.routers.kong.tls.certresolver=letsencryptresolver\n - traefik.http.routers.kong.tls=true\n\n auth:\n image: supabase/gotrue:v2.189.0\n entrypoint: [\"/bin/sh\", \"-c\"]\n command:\n - \"export DB_PASS=$$(cat /run/secrets/supabase_db_password_v1) && export GOTRUE_DB_DATABASE_URL=postgres://supabase_auth_admin:$${DB_PASS}@db:5432/postgres && export GOTRUE_JWT_SECRET=$$(cat /run/secrets/supabase_jwt_secret_v1) && export GOTRUE_SMTP_PASS=$$(cat /run/secrets/gmail_smtp_password_v1) && exec auth\"\n secrets:\n - supabase_db_password_v1\n - supabase_jwt_secret_v1\n - gmail_smtp_password_v1\n networks:\n - AtomicaBRNet\n environment:\n - GOTRUE_API_HOST=0.0.0.0\n - GOTRUE_API_PORT=9999\n - API_EXTERNAL_URL=https://supabase.atomicabr.com.br\n - GOTRUE_DB_DRIVER=postgres\n - GOTRUE_SITE_URL=https://zapp.atomicabr.com.br\n - GOTRUE_URI_ALLOW_LIST=https://whats-your-line.lovable.app,https://zapp.atomicabr.com.br,https://supabase.atomicabr.com.br,https://zapp-web-v3.vercel.app,https://zappweb.app.br,https://www.zappweb.app.br\n - GOTRUE_DISABLE_SIGNUP=true\n - GOTRUE_JWT_ADMIN_ROLES=service_role\n - GOTRUE_JWT_AUD=authenticated\n - GOTRUE_JWT_EXP=28800\n - GOTRUE_JWT_ISSUER=https://supabase.atomicabr.com.br/auth/v1\n - GOTRUE_EXTERNAL_EMAIL_ENABLED=true\n - GOTRUE_EXTERNAL_ANONYMOUS_USERS_ENABLED=false\n - GOTRUE_MAILER_AUTOCONFIRM=true\n - GOTRUE_SMTP_ADMIN_EMAIL=ti04.promobrindes@gmail.com\n - GOTRUE_SMTP_HOST=smtp.gmail.com\n - GOTRUE_SMTP_PORT=587\n - GOTRUE_SMTP_USER=ti04.promobrindes@gmail.com\n - GOTRUE_SMTP_SENDER_NAME=AtomicaBR\n - GOTRUE_MAILER_URLPATHS_INVITE=/auth/v1/verify\n - GOTRUE_MAILER_URLPATHS_CONFIRMATION=/auth/v1/verify\n - GOTRUE_MAILER_URLPATHS_RECOVERY=/auth/v1/verify\n - GOTRUE_MAILER_URLPATHS_EMAIL_CHANGE=/auth/v1/verify\n - GOTRUE_EXTERNAL_PHONE_ENABLED=false\n - GOTRUE_SMS_AUTOCONFIRM=false\n - GOTRUE_SESSIONS_MAX_USER_SESSIONS=10\n - GOTRUE_SECURITY_REFRESH_TOKEN_ROTATION_ENABLED=true\n - GOTRUE_SECURITY_REFRESH_TOKEN_REUSE_INTERVAL=10\n - GOTRUE_MAILER_SECURE_EMAIL_CHANGE_ENABLED=true\n deploy:\n mode: replicated\n replicas: 1\n placement:\n constraints:\n - node.role == manager\n resources:\n limits:\n memory: 1g\n update_config:\n failure_action: rollback\n order: stop-first\n\n rest:\n image: postgrest/postgrest:v14.12\n # AG-EX2-07: literais ELIMINADOS — config file via secret postgrest_conf_v1\n command: [\"postgrest\", \"/etc/postgrest/postgrest.conf\"]\n networks:\n - AtomicaBRNet\n secrets:\n - source: postgrest_conf_v1\n target: /etc/postgrest/postgrest.conf\n deploy:\n mode: replicated\n replicas: 1\n placement:\n constraints:\n - node.role == manager\n resources:\n limits:\n memory: 1g\n update_config:\n failure_action: rollback\n order: stop-first\n\n realtime:\n image: supabase/realtime:v2.102.3\n entrypoint: [\"/usr/bin/tini\", \"-s\", \"-g\", \"--\"]\n command:\n - \"/bin/sh\"\n - \"-c\"\n - \"export SECRET_KEY_BASE=$$(cat /run/secrets/secret_key_base_v2) && export METRICS_JWT_SECRET=$$(cat /run/secrets/supabase_jwt_secret_v2) && export DB_PASSWORD=$$(cat /run/secrets/supabase_db_password_v1) && export API_JWT_SECRET=$$(cat /run/secrets/supabase_jwt_secret_v1) && exec /app/run.sh /app/bin/server\"\n secrets:\n - supabase_db_password_v1\n - supabase_jwt_secret_v1\n - secret_key_base_v2\n - supabase_jwt_secret_v2\n networks:\n - AtomicaBRNet\n environment:\n - PORT=4000\n - APP_NAME=realtime\n - DB_HOST=db\n - DB_PORT=5432\n - DB_USER=supabase_admin\n - DB_NAME=postgres\n - DB_AFTER_CONNECT_QUERY=SET search_path TO _realtime\n - DB_ENC_KEY=supabaserealtime\n - ERL_AFLAGS=-proto_dist inet_tcp\n - DNS_NODES=\"''\"\n - RLIMIT_NOFILE=10000\n - SEED_SELF_HOST=true\n deploy:\n mode: replicated\n replicas: 1\n placement:\n constraints:\n - node.role == manager\n resources:\n limits:\n memory: 1g\n update_config:\n failure_action: rollback\n order: stop-first\n\n storage:\n image: supabase/storage-api:v1.60.4\n entrypoint: [\"/bin/sh\", \"-c\"]\n command:\n - \"export ANON_KEY=$$(cat /run/secrets/supabase_anon_key_v2) && export DB_PASS=$$(cat /run/secrets/supabase_db_password_v1) && export DATABASE_URL=postgres://supabase_storage_admin:$${DB_PASS}@db:5432/postgres && export PGRST_JWT_SECRET=$$(cat /run/secrets/supabase_jwt_secret_v1) && export SERVICE_KEY=$$(cat /run/secrets/supabase_service_key_v3) && exec node dist/start/server.js\"\n volumes:\n - /root/supabase/docker/volumes/storage:/var/lib/storage:z\n secrets:\n - supabase_db_password_v1\n - supabase_jwt_secret_v1\n - supabase_service_key_v3\n - supabase_anon_key_v2\n networks:\n - AtomicaBRNet\n environment:\n - POSTGREST_URL=http://rest:3000\n - FILE_SIZE_LIMIT=52428800\n - STORAGE_BACKEND=file\n - FILE_STORAGE_BACKEND_PATH=/var/lib/storage\n - ENABLE_IMAGE_TRANSFORMATION=\"true\"\n - IMGPROXY_URL=http://imgproxy:5001\n - TENANT_ID=stub\n - REGION=eu-south\n deploy:\n mode: replicated\n replicas: 1\n placement:\n constraints:\n - node.role == manager\n resources:\n limits:\n memory: 1g\n update_config:\n failure_action: rollback\n order: stop-first\n\n imgproxy:\n image: darthsim/imgproxy:v3.30.1\n volumes:\n - /root/supabase/docker/volumes/storage:/var/lib/storage:z\n networks:\n - AtomicaBRNet\n environment:\n - IMGPROXY_BIND=:5001\n - IMGPROXY_LOCAL_FILESYSTEM_ROOT=/\n - IMGPROXY_USE_ETAG=\"true\"\n - IMGPROXY_ENABLE_WEBP_DETECTION=true\n deploy:\n mode: replicated\n replicas: 1\n placement:\n constraints:\n - node.role == manager\n resources:\n limits:\n memory: 512m\n update_config:\n failure_action: rollback\n order: stop-first\n\n meta:\n image: supabase/postgres-meta:v0.96.6\n entrypoint: [\"/bin/sh\", \"-c\"]\n command:\n - \"export CRYPTO_KEY=$$(cat /run/secrets/pg_meta_crypto_key_v2) && export PG_META_CRYPTO_KEY=$$(cat /run/secrets/pg_meta_crypto_key_v2) && export PG_META_DB_PASSWORD=$$(cat /run/secrets/supabase_db_password_v1) && exec node dist/server/server.js\"\n secrets:\n - supabase_db_password_v1\n - pg_meta_crypto_key_v2\n networks:\n - AtomicaBRNet\n environment:\n - PG_META_PORT=8080\n - PG_META_DB_HOST=db\n - PG_META_DB_PORT=5432\n - PG_META_DB_NAME=postgres\n - PG_META_DB_USER=postgres\n - NODE_OPTIONS=--max-old-space-size=1024\n healthcheck:\n test: [\"CMD-SHELL\", \"node -e \\\"fetch('http://localhost:8080/health').then((r) => {if (r.status !== 200) throw new Error(r.status)})\\\"\"]\n interval: 5s\n timeout: 5s\n retries: 3\n deploy:\n mode: replicated\n replicas: 1\n placement:\n constraints:\n - node.role == manager\n resources:\n limits:\n cpus: \"0.5\"\n memory: 1536M\n reservations:\n memory: 128M\n update_config:\n failure_action: rollback\n order: stop-first\n\n analytics:\n image: supabase/logflare:1.43.1\n entrypoint: [\"/bin/sh\", \"-c\"]\n command:\n - \"export LOGFLARE_API_KEY=$$(cat /run/secrets/logflare_api_key_v2) && export DB_PASS=$$(cat /run/secrets/supabase_db_password_v1) && export DB_PASSWORD=$${DB_PASS} && export POSTGRES_BACKEND_URL=postgresql://supabase_admin:$${DB_PASS}@db:5432/_supabase && exec sh run.sh\"\n secrets:\n - supabase_db_password_v1\n - logflare_api_key_v2\n networks:\n - AtomicaBRNet\n environment:\n - DB_USERNAME=supabase_admin\n - DB_DATABASE=_supabase\n - DB_HOSTNAME=db\n - DB_PORT=5432\n - DB_SCHEMA=_analytics\n - POSTGRES_BACKEND_SCHEMA=_analytics\n - LOGFLARE_NODE_HOST=127.0.0.1\n - LOGFLARE_SINGLE_TENANT=true\n - LOGFLARE_SUPABASE_MODE=true\n - LOGFLARE_MIN_CLUSTER_SIZE=1\n - LOGFLARE_FEATURE_FLAG_OVERRIDE=multibackend=true\n deploy:\n mode: replicated\n replicas: 1\n placement:\n constraints:\n - node.role == manager\n resources:\n limits:\n memory: 1g\n update_config:\n failure_action: rollback\n order: stop-first\n\n db:\n image: supabase/postgres:15.8.1.085\n entrypoint: [\"/bin/sh\", \"-c\"]\n command:\n - \"export JWT_SECRET=$$(cat /run/secrets/supabase_jwt_secret_v2) && exec docker-entrypoint.sh postgres -c config_file=/etc/postgresql/postgresql.conf -c log_min_messages=fatal\"\n volumes:\n - /root/supabase/docker/volumes/db/realtime.sql:/docker-entrypoint-initdb.d/migrations/99-realtime.sql:Z\n - /root/supabase/docker/volumes/db/webhooks.sql:/docker-entrypoint-initdb.d/init-scripts/98-webhooks.sql:Z\n - /root/supabase/docker/volumes/db/roles.sql:/docker-entrypoint-initdb.d/init-scripts/99-roles.sql:Z\n - /root/supabase/docker/volumes/db/jwt.sql:/docker-entrypoint-initdb.d/init-scripts/99-jwt.sql:Z\n - /root/supabase/docker/volumes/db/data:/var/lib/postgresql/data:Z\n - /root/supabase/docker/volumes/db/_supabase.sql:/docker-entrypoint-initdb.d/migrations/97-_supabase.sql:Z\n - /root/supabase/docker/volumes/db/logs.sql:/docker-entrypoint-initdb.d/migrations/99-logs.sql:Z\n - /root/supabase/docker/volumes/db/pooler.sql:/docker-entrypoint-initdb.d/migrations/99-pooler.sql:Z\n - supabase_db_config:/etc/postgresql-custom\n secrets:\n - supabase_db_password_v1\n - supabase_jwt_secret_v1\n - supabase_jwt_secret_v2\n networks:\n - AtomicaBRNet\n environment:\n - POSTGRES_HOST=/var/run/postgresql\n - PGPORT=5432\n - POSTGRES_PORT=5432\n - POSTGRES_PASSWORD_FILE=/run/secrets/supabase_db_password_v1\n - POSTGRES_DB=postgres\n - PGDATABASE=postgres\n - JWT_EXP=28800\n deploy:\n mode: replicated\n replicas: 1\n placement:\n constraints:\n - node.role == manager\n resources:\n limits:\n memory: 10g\n update_config:\n failure_action: rollback\n order: stop-first\n labels:\n - com.centurylinklabs.watchtower.enable=false\n\n vector:\n image: timberio/vector:0.53.0-alpine\n entrypoint: [\"/bin/sh\", \"-c\"]\n command:\n - \"export LOGFLARE_API_KEY=$$(cat /run/secrets/logflare_api_key_v2) && exec /usr/local/bin/vector --config etc/vector/vector.yml\"\n secrets:\n - logflare_api_key_v2\n volumes:\n - /root/supabase/docker/volumes/logs/vector.yml:/etc/vector/vector.yml:ro\n - /var/run/docker.sock:/var/run/docker.sock:ro\n networks:\n - AtomicaBRNet\n deploy:\n mode: replicated\n replicas: 1\n placement:\n constraints:\n - node.role == manager\n resources:\n limits:\n memory: 256m\n update_config:\n failure_action: rollback\n order: stop-first\n\n supavisor:\n image: supabase/supavisor:2.9.5\n entrypoint: [\"/usr/bin/tini\", \"-s\", \"-g\", \"--\", \"/app/limits.sh\"]\n command:\n - \"/bin/sh\"\n - \"-c\"\n - \"export SECRET_KEY_BASE=$$(cat /run/secrets/secret_key_base_v2) && export DB_PASS=$$(cat /run/secrets/supabase_db_password_v1) && export POSTGRES_PASSWORD=$${DB_PASS} && export DATABASE_URL=ecto://postgres:$${DB_PASS}@db:5432/_supabase && export API_JWT_SECRET=$$(cat /run/secrets/supabase_jwt_secret_v1) && export METRICS_JWT_SECRET=$${API_JWT_SECRET} && /app/bin/migrate && /app/bin/supavisor eval \\\"$$(cat /etc/pooler/pooler.exs)\\\" && exec /app/bin/server\"\n volumes:\n - /root/supabase/docker/volumes/pooler/pooler.exs:/etc/pooler/pooler.exs:ro\n secrets:\n - supabase_db_password_v1\n - supabase_jwt_secret_v1\n - secret_key_base_v2\n networks:\n - AtomicaBRNet\n environment:\n - POSTGRES_PORT=5432\n - POSTGRES_DB=postgres\n - POSTGRES_HOST=db\n - CLUSTER_POSTGRES=true\n - VAULT_ENC_KEY=your-encryption-key-32-chars-min\n - REGION=local\n - ERL_AFLAGS=-proto_dist inet_tcp\n - POOLER_TENANT_ID=1\n - POOLER_DEFAULT_POOL_SIZE=20\n - POOLER_MAX_CLIENT_CONN=100\n - POOLER_POOL_MODE=transaction\n - PORT=4000\n deploy:\n mode: replicated\n replicas: 1\n placement:\n constraints:\n - node.role == manager\n resources:\n limits:\n memory: 1g\n update_config:\n failure_action: rollback\n order: stop-first\n\nsecrets:\n supabase_db_password_v1:\n external: true\n supabase_jwt_secret_v1:\n external: true\n supabase_service_key_v1:\n external: true\n gmail_smtp_password_v1:\n external: true\n kong_dashboard_password_v1:\n external: true\n supabase_evolution_webhook_secret_v1:\n external: true\n deepseek_api_key_v2:\n external: true\n evolution_api_key_v5_20260805:\n external: true\n supabase_db_password_v2:\n external: true\n supabase_jwt_secret_v2:\n external: true\n supabase_anon_key_v2:\n external: true\n supabase_service_key_v2:\n external: true\n supabase_service_key_v3:\n external: true\n supabase_vault_enc_key_v1:\n external: true\n logflare_api_key_v2:\n external: true\n pg_meta_crypto_key_v2:\n external: true\n secret_key_base_v2:\n external: true\n sentry_dsn_v2:\n external: true\n health_secret_v2:\n external: true\n metrics_scrape_token_v2:\n external: true\n postgrest_conf_v1:\n external: true\n\nvolumes:\n supabase_db_config:\n external: true\n name: supabase_db_config\n\nnetworks:\n AtomicaBRNet:\n external: true\n name: AtomicaBRNet\n"}}}} |