Skip to main content

Environment Variables

This document lists all environment variables used by Village Data.

UI (Next.js)

Required

VariableDescription
NEXT_PUBLIC_SUPABASE_URLSupabase project URL
NEXT_PUBLIC_SUPABASE_ANON_KEYSupabase anon/public key
NEXT_PUBLIC_APP_URLApplication URL (for OAuth redirects)
SUPABASE_SERVICE_ROLE_KEYSupabase service role key (server-side only)

Optional

VariableDescriptionDefault
NEXT_PUBLIC_MCP_ENDPOINT_TEMPLATEMCP server URL template-
OPENAI_API_KEYOpenAI API key for embeddings/chat-
GOOGLE_API_KEYGoogle AI API key-

API Server

VariableDescription
SUPABASE_URLSupabase project URL
SUPABASE_ANON_KEYSupabase anon key
SUPABASE_SERVICE_ROLE_KEYSupabase service role key
OPENAI_API_KEYOpenAI API key
GOOGLE_API_KEYGoogle AI API key
PORTServer port (default: 3002)

MCP Server

VariableDescription
SUPABASE_URLSupabase project URL
SUPABASE_ANON_KEYSupabase anon key
SUPABASE_SERVICE_ROLE_KEYSupabase service role key
OPENAI_API_KEYOpenAI API key
PORTServer port (default: 3001)
TRANSPORT_TYPETransport type (httpStream)

Local Development

For local development, copy from Supabase CLI output:

supabase start
# Outputs API URL, anon key, and service_role key

Example .env.local:

NEXT_PUBLIC_SUPABASE_URL=http://localhost:54321
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
NEXT_PUBLIC_APP_URL=http://localhost:3000
SUPABASE_SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
OPENAI_API_KEY=sk-...

Production Notes

  • NEXT_PUBLIC_* variables are embedded at build time
  • Changing them requires a rebuild, not just a redeploy
  • Keep SUPABASE_SERVICE_ROLE_KEY secret - never expose to client