Configuration - Backend
Getting Started to Backend configuration — env vars, Supabase, and services OpenQuok.
Connect your agent today
Draft from chat, review in your calendar, and publish only what you approve.
Overview
The backend reads its runtime settings from environment variables, and you also configure your Supabase project in the Supabase Dashboard (database, authentication, API keys, and related project settings).
An example file with the most commonly used settings is checked in at backend/.env.development.example. Copy it to backend/.env.development.local under backend/ (the example header explains load order and how it relates to backend/.env). Use that local file for secrets and overrides you do not commit.
For production, follow the same naming convention: maintain backend/.env.production.local . In local development, keep NODE_ENV set to development; for deployment, use production.
NODE_ENV=development
FRONTEND_DOMAIN_URL=https://localhost:5173 Warning
FRONTEND_DOMAIN_URL must be the exact browser origin (http/https, www vs apex). The backend builds OAuth callbacks from it. Local dev: https://localhost:5173 (HTTPS).
Tip
Keep it equal to VITE_FRONTEND_DOMAIN_URL. Provider consoles (Meta, Stripe, …) must use that same origin in every redirect URI, or OAuth fails with invalid-redirect errors.
Common setup steps
Start with the example env file
Copy backend/.env.development.example to backend/.env.development.local and fill in values. Restart the backend after changes.
Configure Supabase in the dashboard
Create a Supabase project, then collect the URL + keys you need (API keys and JWT settings). Some features (like cron on Supabase Cloud) require enabling a dashboard integration before running migrations.
Add optional services as needed
Configure Redis, Sentry (optional), Google OAuth (optional), email (Resend in production), and storage (Cloudflare R2 or local disk) depending on what you enable in your environment variables.