Skip to content

PayPal sandbox only. No real money moves.

ReferenceReference

Configuration

The settings of the server, by name. Values never appear here.

Verifiedbacked by a real run or committed evidence

Page last changed 7 Nov 2026 (from the git history)

From packages/server/src/config.ts and the deploy guide. The server validates its environment at start and refuses to boot with a message naming the variable.

NameValuesNotes
PUBLIC_URLhttps URLRequired. A non-local host turns production rules on
NODE_ENVdevelopment, test, productionProduction refuses fake payments and weak secrets
TOKEN_SECRETstringRequired; at least 32 bytes in production
TOKEN_SECRET_PREVIOUSstringOptional, for rotation
ADMIN_KEYstringRequired; at least 24 characters in production
STOREmemory, file, postgres, d1Default memory
DATA_DIRpathDefault ./data
PAYMENTSfake, sandboxDefault fake
PAYPAL_ENVsandboxThe only accepted value
PAYPAL_CLIENT_ID, PAYPAL_CLIENT_SECRET, PAYPAL_WEBHOOK_IDstringNeeded for PAYMENTS=sandbox
VOICE_STTreplay, fake, groq, deepgramUnset means cached transcripts
DEMO_MODE0 or 1Scripted demo routes; only with fake payments
CORS_ORIGINSlist of originsThe web origin
GAVEL_HOLD_MAX_AGE_MSintegerDefault 7200000: a hold older than this is flagged stale
RATE_JOIN_BURST, RATE_JOIN_PER_MINintegersDefaults 40 and 10
TRUSTED_PROXY_HOPS0 to 10Default 0
LOG_LEVELdebug, info, warn, errorDefault info

Fake PayPal is the default. Sandbox needs the three PayPal values.

Edit on GitHub

Last updated on