Environment (.env)
Environment variables (.env)
Section titled “Environment variables (.env)”This project intentionally stays dependency-free, so the server loads .env itself (server/config/env.js).
Core server
Section titled “Core server”- PORT: HTTP port (default
4177) - HOST: bind address (default
127.0.0.1) - APP_URL: public base URL of the instance (e.g.
https://slides.yourcompany.com). Used for absolute links in emails and notifications. Falls back tohttps://{DOMAIN}if not set.
Auth (recommended in production)
Section titled “Auth (recommended in production)”Auth is disabled unless:
- AUTH_SECRET is set, and
- one of AUTH_USERS_JSON or AUTH_USERS_B64 is set
Variables:
- AUTH_ADMIN_EMAIL: optional (used for UX defaults)
- AUTH_SECRET: required when enabling auth
- AUTH_USERS_JSON: JSON map of users (easiest locally; can be annoying to quote)
- AUTH_USERS_B64: base64-encoded JSON map (recommended for production)
- SECURE_COOKIES:
1behind HTTPS,0for local HTTP - AUTH_DEV_BYPASS:
1enables a local-dev “bypass login” button on/login
Feature flags / demo mode
Section titled “Feature flags / demo mode”- DEMO_MODE:
1enables “demo guardrails” - DISABLE_AI:
1disables AI features - DISABLE_UPLOADS:
1disables uploads
Sandbox mode (public demo instance)
Section titled “Sandbox mode (public demo instance)”- SANDBOX_MODE:
1enables sandbox behavior (guest sessions, expiry, watermark, etc.) - SANDBOX_TTL_HOURS: deck TTL in hours (default
24) - SANDBOX_DEFAULT_THEME: default theme id (e.g.
sandbox-minimal) - SANDBOX_WATERMARK: watermark text used in exports/publish
AI vendors (optional)
Section titled “AI vendors (optional)”- LLM_VENDOR: choose default when multiple are configured (
openai/claude)
OpenAI:
- OPENAI_API
- OPENAI_MODEL
Claude:
- CLAUDE_API
- CLAUDE_MODEL
Mistral:
- MISTRAL_API
- MISTRAL_MODEL
Notion (optional)
Section titled “Notion (optional)”- NOTION_SECRET: Notion integration secret
- NOTION_FEATURE:
1enables the Notion “suggestion” UI + API
Analytics (optional)
Section titled “Analytics (optional)”The server can inject analytics tags into the app’s <head> (and optionally into embeds).
See docs/product/integrations/analytics.md for setup.
Common toggles:
- DISABLE_ANALYTICS:
1disables all injection - ANALYTICS_ALLOW_IN_SANDBOX:
1allows analytics even when sandbox mode is enabled - ANALYTICS_INCLUDE_EMBEDS:
1inject into/embed/...documents - ANALYTICS_INCLUDE_EXPORTS:
1inject into exported HTML documents (off by default)
Providers:
- GTM_CONTAINER_ID
- MATOMO_URL, MATOMO_SITE_ID, optional MATOMO_DISABLE_COOKIES, MATOMO_REQUIRE_CONSENT, MATOMO_TRACK_LINKS
- PLAUSIBLE_DOMAIN, optional PLAUSIBLE_URL
Escape hatch:
- ANALYTICS_HEAD_HTML: raw HTML injected into
<head> - ANALYTICS_HEAD_HTML_B64: base64 version (recommended to avoid quoting issues)