Skip to content

Environment Variables

Set these in your hosting provider’s environment. Only VITE_* variables are exposed to the browser.

VariableRequiredPurpose
VITE_SUPABASE_URLYesYour dashboard’s Supabase project URL
VITE_SUPABASE_ANON_KEYYesYour dashboard’s Supabase anon key
VITE_DASHBOARD_ALLOWED_EMAILYesComma-separated list of emails allowed to view the dashboard
VITE_DEMO_MODENoSet to true to render fictional demo data without auth

These are used by npm run collect:status and the GitHub Actions workflow.

VariableRequiredPurpose
PROJECTS_CONFIG_JSONCI onlyCollector config JSON (used by the GitHub Actions workflow)
HUB_SUPABASE_JWT_SERVICE_ROLE_KEYYesDashboard’s JWT service-role key for collector writes
VariableRequiredPurpose
AWS_REGIONFor AWS adaptersAWS region
AWS_ACCESS_KEY_IDFor AWS adaptersIAM access key
AWS_SECRET_ACCESS_KEYFor AWS adaptersIAM secret key
VariableRequiredPurpose
RESEND_API_KEYFor ResendResend API key
OPENAI_ADMIN_API_KEYFor OpenAIOpenAI admin API key
GH_ACTIONS_TOKENFor GitHub ActionsGitHub PAT with Actions read access
CLOUDFLARE_API_TOKENFor CloudflareRead-only Cloudflare API token
CLOUDFLARE_ACCOUNT_IDOptionalEnables registrar expiration lookup
VariableRequiredPurpose
HTTP_HEALTH_CHECK_HEADER_NAMEOptionalCustom header name for health check requests
HTTP_HEALTH_CHECK_HEADER_VALUEOptionalCustom header value (for Cloudflare WAF bypass)

Any project resource field in projects.config.json can use ${ENV_VAR} placeholders. Create a secret per referenced variable and pass it through in your workflow’s env block. Common per-app variables:

  • ${MY_APP_SUPABASE_URL} — watched app’s Supabase URL
  • ${MY_APP_SUPABASE_ANON_KEY} — watched app’s anon key
  • ${MY_APP_SUPABASE_SERVICE_ROLE_KEY} — watched app’s service-role key

Use $$ to escape a literal $ in config values.