wacrm/docs/supabase-setup.md
Arnas Donauskas e46844d527
chore: add WhatsApp® on first mention across user-facing surfaces
Per Meta's brand-use guidance for third-party products, the registered
trademark symbol (®) should appear on the FIRST mention of "WhatsApp"
on each user-facing page. Subsequent mentions on the same page are
left plain.

Surfaces touched (one-per-page first mention):
- Landing hero badge ("Built on the official WhatsApp® Business API").
- src/lib/seo/site-config.ts: SITE_TAGLINE and SITE_DESCRIPTION
  (rendered into <title> and <meta description> on every page).
- src/app/opengraph-image.tsx: hero text in social-share image.
- Settings, Inbox connection banner, Automations page subtitle.
- README.md tagline.
- All public docs pages (docs/README.md, docs/whatsapp-setup.md,
  docs/getting-started.md, docs/supabase-setup.md,
  docs/environment-variables.md, docs/deployment-hostinger.md,
  docs/automations-and-cron.md, docs/architecture.md,
  docs/troubleshooting.md).

Out of scope: SITE_KEYWORDS (the meta-keywords array isn't
user-rendered text — putting ® on every keyword would look broken in
the meta tag).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 12:13:26 +03:00

85 lines
2.6 KiB
Markdown

# Supabase setup
WaCRM uses Supabase for Postgres, authentication, row-level security (RLS),
and (optionally) storage. You need one Supabase project per WaCRM
deployment.
## 1. Create the project
1. Sign in at <https://supabase.com> and create a **new project**.
2. Pick the region closest to your users. Save the database password shown
at creation time — you will not see it again.
3. Wait for the project to provision (about a minute).
## 2. Grab your keys
Open **Project Settings → API** in the Supabase dashboard. Copy:
- **Project URL** → `NEXT_PUBLIC_SUPABASE_URL`
- **anon / public** key → `NEXT_PUBLIC_SUPABASE_ANON_KEY`
- **service_role** key → `SUPABASE_SERVICE_ROLE_KEY`
Paste them into `.env.local`.
> **Do not commit the service-role key.** It bypasses RLS entirely. The
> repo's `.gitignore` already excludes `.env.local` — keep it that way.
## 3. Run the migrations
All schema changes live in `supabase/migrations/` as plain SQL and are
idempotent (safe to re-run). The simplest way to apply them:
### Option A — SQL Editor (quickest)
1. Open **SQL Editor** in the Supabase dashboard.
2. For each file in `supabase/migrations/`, in numeric order:
- `001_initial_schema.sql`
- `002_pipelines_enhancements.sql`
- `003_broadcast_recipient_wamid.sql`
- `004_contact_delete_set_null.sql`
- `005_broadcast_counts_incremental.sql`
- `006_automations.sql`
- `007_automations_increment_counter.sql`
3. Paste into the editor and run. Each file prints its own status.
### Option B — Supabase CLI
```bash
npm install --global supabase
supabase login
supabase link --project-ref <your-project-ref>
supabase db push
```
The CLI applies every file in `supabase/migrations/` on top of the linked
project.
## 4. Verify
Open **Table Editor** in the Supabase dashboard. You should see tables
including `profiles`, `contacts`, `conversations`, `messages`, `pipelines`,
`broadcasts`, `automations`, and `whatsapp_config`. If any are missing, a
migration failed — re-run it and check the SQL output.
## 5. Auth settings
Under **Authentication → Providers**, confirm:
- **Email** is enabled (default).
- **Confirm email** is on for production, off for local if you want
frictionless testing.
Under **Authentication → URL Configuration**, add your production URL
(e.g., `https://crm.example.com`) to the allow-list so password-reset
emails link back correctly.
## 6. (Optional) Storage
WaCRM downloads WhatsApp® media through Meta's `/download` endpoint and
currently relays it on demand rather than caching it in Supabase Storage.
No bucket setup is required for a default install.
## Next step
[WhatsApp setup →](./whatsapp-setup.md)