# Add your Google OAuth credentials here (or configure via the setup wizard in the app) # GOOGLE_CLIENT_ID= # GOOGLE_CLIENT_SECRET= # Preferred low-scope Google credentials for "Continue with Google" app login. # Falls back to GOOGLE_CLIENT_ID/GOOGLE_CLIENT_SECRET above when unset. # GOOGLE_SIGN_IN_CLIENT_ID= # GOOGLE_SIGN_IN_CLIENT_SECRET= # OAuth state signing — REQUIRED in prod for Google + Zoom OAuth flows # Falls back to BETTER_AUTH_SECRET if unset; setting it explicitly is recommended # Generate via: openssl rand -hex 32 # OAUTH_STATE_SECRET= # Zoom OAuth (for video conferencing on booking links) # ZOOM_CLIENT_ID= # ZOOM_CLIENT_SECRET= # Database (local SQLite by default, set for remote/cloud database) # DATABASE_URL=file:./data/app.db # DATABASE_AUTH_TOKEN= # Captcha (optional — Cloudflare Turnstile) # TURNSTILE_SECRET_KEY= # VITE_TURNSTILE_SITE_KEY= # Production auth # ACCESS_TOKEN=your-secret-token # Cloudflare deployment (set preset in vite.config.ts) # NITRO_PRESET=cloudflare_pages