-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
58 lines (46 loc) · 2.59 KB
/
Copy path.env.example
File metadata and controls
58 lines (46 loc) · 2.59 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
# PostgreSQL connection string used by Prisma.
DATABASE_URL="postgresql://USER:PASSWORD@localhost:5432/launchpad?schema=public"
# Separate database used by the test suite. Tests will reset/migrate this DB.
TEST_DATABASE_URL="postgresql://USER:PASSWORD@localhost:5432/launchpad_test?schema=public"
# Resend API key for transactional email. Leave blank in dev to use the console mailer.
RESEND_API_KEY=""
# From address for outgoing email (must be a verified Resend sender/domain).
EMAIL_FROM="Launchpad <waitlist@example.com>"
# Bearer token guarding the admin API and admin page. Set your own long random value.
ADMIN_TOKEN="set me to a long random value"
# Public base URL of this deployment, used to build referral links.
NEXT_PUBLIC_APP_URL="http://localhost:3000"
# Number of referrals required to trigger the milestone email.
REFERRAL_MILESTONE="3"
# Minimum response time (ms) for the signup endpoint. Responses for a brand-new
# email and an already-registered one are padded up to this floor so latency
# can't be used to discover which addresses exist (the body is already
# identical). Default 250. Set 0 to disable the pad.
SIGNUP_MIN_RESPONSE_MS="250"
# Page size for the streamed admin CSV export. Bounds peak memory regardless of
# waitlist size. Default 500. Mainly a tuning/test knob.
CSV_EXPORT_BATCH_SIZE="500"
# --- Email double-opt-in ---
# When "true" (default), signups must confirm their email via a verification
# link before their referral counts. Set "false" to skip verification and count
# every signup immediately (legacy behavior).
REQUIRE_EMAIL_VERIFICATION="true"
# How long an emailed verification link stays valid, in hours (default 48).
# After this, the link is rejected as expired and the user simply signs up again
# to get a fresh one. Set to 0 to disable expiry (tokens never time out).
VERIFY_TOKEN_TTL_HOURS="48"
# --- Signup rate limiting (per IP, fixed window) ---
# Max signup attempts allowed per IP within RATE_LIMIT_WINDOW_MS.
RATE_LIMIT_MAX="5"
# Window length in milliseconds (default 60000 = 1 minute).
RATE_LIMIT_WINDOW_MS="60000"
# Backing store: "memory" (default, per-instance) or "postgres" (shared across
# instances / serverless via the RateLimit table). Use "postgres" if you run
# more than one instance and want the limit enforced globally.
RATE_LIMIT_STORE="memory"
# --- Embeddable widget CSP (frame-ancestors) ---
# Which origins may iframe the /embed widget. Comma/space-separated list of
# origins, e.g. "https://acme.com https://www.acme.com".
# Leave empty for the safe default ('self' only). Set "*" to allow any origin
# (wide open, opt-in only).
EMBED_ALLOWED_ORIGINS=""