Zudo Works

Appendix D — Environment variables

VariableDefaultPurpose
SHOP_DATABASE_URL— (required)PostgreSQL connection string
SHOP_SESSION_SECRET— (required, ≥ 32 chars)Signs session cookies and signup tokens
SHOP_SESSION_STORE / SHOP_REDIS_URLredis / —Session store (memory for tests only)
SHOP_SESSION_TTL_SECONDS60 days in production (5184000), 12 h in development; max 90 daysTrusted session lifetime, absolute from sign-in
SHOP_MFA_SECRET_KEY— (derived from the session secret)AES-256-GCM key material for authenticator secrets
SHOP_MFA_CODE_RATE_LIMITStrue (refused as false in production)false lifts the 1 / minute and 5 / hour e-mail code limits (development / e2e only)
SHOP_COOKIE_SECURE / SHOP_COOKIE_SAMESITEauto / strict in productionCookie flags
SHOP_PORT3100API port
SHOP_WEB_DIST—Built web app served by the API
SHOP_TRUST_PROXY—true behind a reverse proxy
SHOP_WEB_ORIGINShttps://app.zudoworks.com in productionCORS allow-list
SHOP_APP_BASE_URL / SHOP_API_BASE_URL—Links in e-mails / absolute upload URLs
SHOP_EMAIL_PROVIDER / SHOP_RESEND_API_KEY / SHOP_EMAIL_FROMconsole / — / Zudo Works <[email protected]>E-mail delivery
SHOP_ADMIN_EMAIL[email protected]Receives feedback reports
SHOP_PASSWORD_RESET_TTL_MINUTES30Reset link validity
SHOP_AUTH_RATE_LIMIT_MAX5Sign-in attempts per minute
SHOP_SIGNUP_RATE_LIMIT_MAX3Signups per address per window
SHOP_RATE_LIMIT_MAX600API requests per minute per IP
SHOP_PLAN_LIMITS_ENFORCEDtrueEnforce user / storage / API / webhook quotas
SHOP_WORKFLOW_ALLOW_PRIVATE_HOSTSfalseDev only: let Invoke URL reach private hosts
SHOP_STORAGE_DRIVER + R2 settings / SHOP_UPLOADS_DIRlocal / ./uploadsFile storage (Cloudflare R2 in production)
ENABLE_SUPER_ADMIN / SUPER_ADMIN_EMAILSoffZudo support access
SHOP_MAIL_GOOGLE_CLIENT_ID / _SECRET—Google sign-in for the company mailbox (hidden when unset)
SHOP_MAIL_MICROSOFT_CLIENT_ID / _SECRET—Microsoft 365 / Outlook sign-in (hidden when unset)
SHOP_MAIL_ZOHO_CLIENT_ID / _SECRET—Zoho Mail sign-in (hidden when unset)
SHOP_MAIL_TOKEN_KEY— (required to connect mailboxes)SHA-256 → AES-256-GCM key for stored mailbox credentials
SHOP_MAIL_RESEND_WEBHOOK_SECRET—Svix secret of the Resend delivery webhook
SHOP_MAIL_ZUDO_FROM[email protected]Address of "{Org} via Zudo Works" fallback sends
SHOP_MAIL_WORKER_ENABLED / SHOP_MAIL_WORKER_INTERVAL_SECONDStrue / 30The outbound e-mail retry worker
SHOP_AI_BASE_URL— (assistant hidden)OpenAI-compatible Chat Completions endpoint (Fireworks: https://api.fireworks.ai/inference/v1)
SHOP_AI_MODELqwen2.5:7bModel name (must support tool calling)
SHOP_AI_API_KEY— (required in production)Bearer token checked by the reverse proxy
SHOP_AI_TIMEOUT_MS / SHOP_AI_MAX_TOKENS60000 / 1024Per-request time-out; answer length
SHOP_AI_REASONING_EFFORTlowReasoning models (gpt-oss): low / medium / high; reasoning is never shown or stored
SHOP_AI_GUARD_MODEL— (the main model)Model for the topic-guard classification call (20 tokens, low effort)

Registered OAuth redirect URIs (exact): {SHOP_API_BASE_URL}/api/v1/mail/oauth/callback/google|microsoft|zoho (production https://api.zudoworks.com/api/v1/mail/oauth/callback/<provider>).

Last updated