Repository navigation
Expand file tree
/
Copy path.env.example
More file actions
102 lines (86 loc) · 4 KB
/
Copy path.env.example
File metadata and controls
102 lines (86 loc) · 4 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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# Postgres runtime role: CRUD only, never schema ownership or DDL grants
DATABASE_URL=
# Drizzle commands require MIGRATION_DATABASE_URL only in that command's
# environment. Never put the migration credential in this runtime file or Vercel.
# Clerk owner authentication. Authorize the owner by setting the Clerk user's
# public metadata to { "siteOwner": "yes" } in the Clerk Dashboard.
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
# Durable owner data namespace and Google Calendar owner. ADMIN_EMAIL does not
# grant admin access, but it must not change without migrating owner-scoped data.
ADMIN_EMAIL=
AMA_ENCRYPTION_KEY=
RATE_LIMIT_HASH_KEY=
# Private resume. Both values are server-only; leave blank to keep it locked.
# Use a long, unique passphrase (at least 16 characters) and a separate random
# session secret (at least 32 characters, e.g. openssl rand -hex 32).
RESUME_PASSPHRASE=
RESUME_SESSION_SECRET=
# Optional English CV override: base64-encoded JSON, server-only. See
# docs/private-resume.md. The public-content draft is used when absent.
RESUME_EN_CONTENT_BASE64=
# Independent Chinese CV override, with the same privacy rules.
RESUME_ZH_CONTENT_BASE64=
# Public discovery identity for canonical links, feeds, and social metadata.
# Replace both origins with your deployment domain.
PUBLIC_SITE_URL=https://your-domain.com
# Operational origin for links, provider callbacks, and browser mutations.
# Custom environments use their stable alias, such as https://beta.cali.so.
SITE_URL=https://your-domain.com
CRON_SECRET=
# Google Calendar OAuth (owner availability + meeting invitations)
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
# Production-only Upstash (authenticated admin mutations and Media Alt Text
# Suggestions). Preview uses its isolated Neon database; Local and CI use
# process-local limits. Configure one complete pair in Production only:
# UPSTASH_REDIS_REST_URL=
# UPSTASH_REDIS_REST_TOKEN=
# Vercel Marketplace aliases are accepted instead of the native pair:
# KV_REST_API_URL=
# KV_REST_API_TOKEN=
ADMIN_MUTATION_RATE_LIMIT_MAX_REQUESTS=30
ADMIN_MUTATION_RATE_LIMIT_WINDOW_SECONDS=60
# AMA capabilities are enabled by default. Each provider capability turns on
# when its credential pair below is configured, and its routes fail closed
# with 503 while the pair is blank. Pairs must be complete or empty.
# Stripe-hosted Checkout for AMA Bookings. The webhook secret signs
# /api/ama/stripe/webhook.
STRIPE_SECRET_KEY=
STRIPE_WEBHOOK_SECRET=
# Transactional AMA email through Resend. AMA_EMAIL_FROM accepts
# "Name <address@domain>".
RESEND_API_KEY=
AMA_EMAIL_FROM=
# Tencent Meeting MCP bridge (server-only URL and token).
TENCENT_MEETING_MCP_URL=
TENCENT_MEETING_MCP_TOKEN=
# Public AMA booking mutations are rate limited per client.
AMA_PUBLIC_RATE_LIMIT_MAX_REQUESTS=10
AMA_PUBLIC_RATE_LIMIT_WINDOW_SECONDS=60
# Bunny Media Library. Originals, Renditions, and transfer chunks share one
# public Storage Zone and Pull Zone. Preview uses non-production credentials.
BUNNY_MEDIA_REGION=sg
BUNNY_MEDIA_ZONE=
BUNNY_MEDIA_PASSWORD=
BUNNY_MEDIA_CDN_URL=
BUNNY_CDN_API_KEY=
MEDIA_ENCRYPTION_KEY=
# Owner-requested Capture Location to Location Label suggestions. The provider
# is available whenever its server-restricted credential is configured.
GOOGLE_MAPS_GEOCODING_API_KEY=
# Media Library Alt Text Suggestions use Vercel OIDC in deployed environments.
# The capability is enabled by default and has no runtime feature switch.
MEDIA_ALT_TEXT_PRIMARY_MODEL=openai/gpt-5.6-luna
MEDIA_ALT_TEXT_FALLBACK_MODEL=openai/gpt-5.4-mini
MEDIA_ALT_TEXT_TIMEOUT_MS=12000
MEDIA_ALT_TEXT_MAX_RETRIES=1
MEDIA_ALT_TEXT_RATE_LIMIT_MAX_REQUESTS=10
MEDIA_ALT_TEXT_RATE_LIMIT_WINDOW_SECONDS=3600
# Used only by the opt-in non-production storage contract. Do not set the
# confirmation flag in a deployed runtime environment.
BUNNY_STORAGE_CONTRACT_ENVIRONMENT=non-production
BUNNY_STORAGE_CONTRACT_ORIGIN=https://cali.so
BUNNY_STORAGE_CONTRACT_EDGE_TTL_SECONDS=
BUNNY_STORAGE_CONTRACT_BROWSER_TTL_SECONDS=
# BUNNY_STORAGE_LIVE_TEST=confirmed-non-production