-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path.env.example
More file actions
81 lines (65 loc) · 4.27 KB
/
Copy path.env.example
File metadata and controls
81 lines (65 loc) · 4.27 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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# ── Platform ──────────────────────────────────────────────────────────────────
# Full base URL of the platform (e.g. "https://tokolink.app" or "http://localhost:3000")
VITE_APP_URL=""
# Supabase
DATABASE_URL="" # Direct connection (Prisma)
DIRECT_URL=""
VITE_SUPABASE_URL=""
VITE_SUPABASE_ANON_KEY=""
SUPABASE_URL="" # Supabase API
SUPABASE_ANON_KEY="" # Publishable key (client-safe)
SUPABASE_SERVICE_ROLE_KEY="" # Service role (server-only!)
# ── Cloudflare R2 Object Storage ──────────────────────────────────────────────
# Get from: https://dash.cloudflare.com → R2 → Manage API Tokens
R2_ACCOUNT_ID=
R2_ACCESS_KEY_ID=
R2_SECRET_ACCESS_KEY=
R2_BUCKET_NAME=tokolink-media
# Public URL of the R2 bucket (custom domain or .r2.dev subdomain)
R2_PUBLIC_URL=https://pub.tokolink.app
# ── Cloudflare Turnstile ──────────────────────────────────────────────────────
# Widget already created in Cloudflare dashboard (do not create another).
# Site key is safe to expose (VITE_ prefix = bundled into client JS).
VITE_TURNSTILE_SITE_KEY=0x4AAAAAAEBXoCVqx-dKmZgw
# Secret key — server-side only, set via your deployment secret store.
# Referenced in code as: process.env.TURNSTILE_SECRET
TURNSTILE_SECRET= # Never hardcode; set in deployment env / .env
# Resend Email Integration
RESEND_API_KEY="re_yourkey"
RESEND_SENDER_EMAIL="Tokolink <noreply@yourdomain.com>"
# ── Midtrans ──────────────────────────────────────────────────────────────────
# Snap: buyer checkout UI. Get from: https://dashboard.sandbox.midtrans.com
MIDTRANS_SERVER_KEY=
MIDTRANS_IS_PRODUCTION=false
# Client key exposed to browser via Vite (VITE_ prefix, NOT NEXT_PUBLIC_)
VITE_MIDTRANS_CLIENT_KEY=
VITE_MIDTRANS_IS_PRODUCTION=false
# Iris Facilitator: seller disbursement.
# Sandbox: same as MIDTRANS_SERVER_KEY. Production: separate key from Iris dashboard.
MIDTRANS_IRIS_SERVER_KEY=
# ── Biteship ──────────────────────────────────────────────────────────────────
# Get from: https://biteship.com → Settings → API Keys → toggle Testing Mode
BITESHIP_API_KEY=
# "true" for sandbox (key starts with "biteship_test."), "false" for production
BITESHIP_IS_SANDBOX=true
# Commission % taken from subtotal only (e.g. 5 = 5%)
PLATFORM_COMMISSION_PERCENT=5
# ── Notifications ─────────────────────────────────────────────────────────────
# Fonnte WhatsApp API. Register at: https://fonnte.com
FONNTE_API_KEY=
FONNTE_DEVICE_TOKEN=
# ── Cron Security ─────────────────────────────────────────────────────────────
# Protects /api/cron/* from public access. Generate: openssl rand -hex 32
CRON_SECRET=
# ── Admin Alerts ──────────────────────────────────────────────────────────────
# Where critical ops alerts go (e.g. payout failures). Can be your own email/WA.
ADMIN_ALERT_EMAIL=
# Format: 62xxxxxxxxx (no +, no leading 0) — same convention as buyer phone
ADMIN_ALERT_WHATSAPP=
# ── Redis / Cache & Rate Limiter ───────────────────────────────────────────────
# Option A: Self-Hosted Redis (VPS / Docker)
# REDIS_URL="http://localhost:7379" # or HTTP proxy URL / REST URL
# REDIS_TOKEN="your-optional-token"
# Option B: Upstash Cloud Redis (REST API)
UPSTASH_REDIS_REST_URL="https://your-db.upstash.io"
UPSTASH_REDIS_REST_TOKEN="your-token"