# Coolify — Add a Supabase project Each Supabase "project" in Coolify is a Docker Compose stack containing Postgres + GoTrue + PostgREST + Storage + Realtime + Studio + Kong. They are fully isolated. ## Create the `disclosure` project 1. Coolify dashboard → **+ New Resource** → **Service** → search **"Supabase"** → Deploy. 2. Configure: - **Project name**: `disclosure` - **Server**: your VPS (it's the default if you only have one) - **Domain**: `db.disclosure.top` (the Kong API gateway will live here) - **Studio domain**: `studio.disclosure.top` (the admin UI) 3. Coolify generates the secrets automatically. Copy these for later: - `POSTGRES_PASSWORD` - `JWT_SECRET` - `ANON_KEY` - `SERVICE_ROLE_KEY` - `DASHBOARD_USERNAME` / `DASHBOARD_PASSWORD` (for Studio basic auth) 4. Click **Deploy**. Coolify pulls all images and starts the stack (~3 min). 5. When green: open `https://studio.disclosure.top`, log in with the dashboard creds. ## Apply the chat schema In Studio → SQL Editor, paste the contents of [`../supabase/migrations/0001_chat_schema.sql`](../supabase/migrations/0001_chat_schema.sql) and run. This creates `profiles`, `chat_sessions`, `messages` with RLS enabled. Then run [`../supabase/seed.sql`](../supabase/seed.sql) to seed your admin user (edit the email in the file first). ## Verify ```bash # From your laptop, with the ANON_KEY copied from Coolify: curl -H "apikey: " https://db.disclosure.top/rest/v1/profiles # → [] (empty array, but valid response = it's working) ``` ## Adding another project later Same flow — Coolify → + New Service → Supabase. Pick a new project name (`projeto-b`), new domains (`db.projeto-b.com`, `studio.projeto-b.com`). Coolify isolates everything: own Postgres, own GoTrue, own secrets. Different anon/service keys. ## Resource tuning In each Supabase project's stack settings, increase Postgres memory if needed: ```yaml # In the Postgres service env vars: POSTGRES_SHARED_BUFFERS: 256MB POSTGRES_WORK_MEM: 16MB POSTGRES_MAINTENANCE_WORK_MEM: 64MB ``` Defaults are fine for <10k users. For chat-heavy workloads bump shared_buffers. ## Next → [`NEXTJS.md`](NEXTJS.md) — deploy the web app