-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
43 lines (34 loc) · 2.98 KB
/
.env.example
File metadata and controls
43 lines (34 loc) · 2.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# Copy this file to .env.local and fill in all values.
# cp .env.example .env.local
# ─── Supabase ────────────────────────────────────────────────────────────────
# Project Settings → API
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJ...
SUPABASE_SERVICE_ROLE_KEY=eyJ...
# ─── Database ────────────────────────────────────────────────────────────────
# IMPORTANT: Use the Transaction Pooler URL (port 6543) — not the direct connection.
# Supabase Dashboard → Connect button → Transaction pooler
DATABASE_URL=postgresql://postgres.[ref]:[password]@aws-0-[region].pooler.supabase.com:6543/postgres?pgbouncer=true
# Direct connection (port 5432) — only used by `prisma migrate`, not at runtime
DIRECT_URL=postgresql://postgres:[password]@db.[ref].supabase.co:5432/postgres
# ─── App ─────────────────────────────────────────────────────────────────────
NEXT_PUBLIC_APP_URL=http://localhost:3000
# ─── OpenAI ──────────────────────────────────────────────────────────────────
OPENAI_API_KEY=sk-proj-...
# ─── Upstash Redis (deduplication) ───────────────────────────────────────────
# https://upstash.com — free tier works fine
UPSTASH_REDIS_REST_URL=https://...upstash.io
UPSTASH_REDIS_REST_TOKEN=...
# ─── Resend (email) ──────────────────────────────────────────────────────────
# https://resend.com — use onboarding@resend.dev until you verify a custom domain
RESEND_API_KEY=re_...
RESEND_FROM_EMAIL=onboarding@resend.dev
# ─── Stripe ──────────────────────────────────────────────────────────────────
# No STRIPE_PUBLISHABLE_KEY needed — we use Stripe-hosted Checkout
STRIPE_SECRET_KEY=sk_test_...
STRIPE_PRICE_ID=price_... # $19/month recurring price ID
STRIPE_WEBHOOK_SECRET=whsec_... # from `stripe listen` locally, or Stripe Dashboard in prod
# ─── Cron authentication ─────────────────────────────────────────────────────
# Arbitrary secret sent as Bearer token to protect cron endpoints
# Generate with: openssl rand -base64 32
CRON_SECRET=