# Web / Supabase (required) NUXT_PUBLIC_SUPABASE_URL= SUPABASE_URL= NUXT_PUBLIC_SUPABASE_ANON_KEY= SUPABASE_SERVICE_ROLE_KEY= # Used only by db:ensure to create a missing schema. Copy the Session pooler # URI from Supabase Dashboard → Connect and replace its password placeholder. SUPABASE_DB_URL= # AI provider (choose openrouter or deepseek) AI_PROVIDER=openrouter OPENROUTER_API_KEY= OPENROUTER_MODEL=deepseek/deepseek-v4-flash OPENROUTER_API_ENDPOINT=https://openrouter.ai/api/v1/chat/completions DEEPSEEK_API_KEY= DEEPSEEK_MODEL=deepseek-v4-flash DEEPSEEK_API_ENDPOINT=https://api.deepseek.com/chat/completions # Queue (optional for the web process) REDIS_URL= AI_JOB_POLL_INTERVAL_MS=1000 # Alpha controls INVITE_ALLOWLIST=founder@example.com DAILY_AI_TOKEN_LIMIT=250000 NUXT_PUBLIC_APP_URL=http://localhost:3000