Skip to main content
Complete reference of all environment variables used across the Soundcheck platform.

Mobile App

Located in .env at the project root.

Required

Optional

Example .env

EAS environment variables (TestFlight / App Store)

Local .env values are not used for EAS production builds. Set the same EXPO_PUBLIC_* keys in the Expo project for each EAS environment (production, preview, development):
See Mobile Deployment for Google Cloud key restrictions.

Web App

Located in web/.env.local.

Required

Optional

The Google Drive and Dropbox pickers appear wherever imports are available (the data-import flag in the web app; the API accepts owners, admins and gig coordinators). The browser hands the picked files (plus a short-lived Google token) to POST /api/v1/organizations/{orgId}/imports/remote; api-events downloads them once and never stores the token.

Example .env.local


Backend API (api-events)

Local development runs Encore on port 4000. Variables are passed via npm run dev:emulator (see api-events/README.md and api-events operations). Shared Postgres, fake-gcs-server, and the Clerk emulator: npm run dev:infra (Docker Compose under dev/docker-compose.yml).

Required (local)

Optional (local)

Signup company lookup

POST /api/v1/public/onboarding/company-lookup fills the web and mobile signup from a work email or website. It runs on api-events; the web app no longer holds a context.dev key.

Flight status monitors

The flight-status-monitor scheduled job watches gig and project flights that depart in the next 72 hours with context.dev page monitors, for organizations with the flight-status-monitors flag on. Without a key or a public https API_BASE_URL (webhook target), the job does nothing.

Pricing knowledge (PRO-423)

Ingestion and lookup for the pricing knowledge base.

Lead discovery

“Find leads” on /leads → Discovered. context.dev Answers researches events, buyers and RFPs near the org’s service area; Jev ranks them. Who sees it is the lead-discovery PostHog flag, on the API routes and the web tab alike; there is no separate env switch. Runs need a real CONTEXT_DEV_API_KEY (the Terraform PLACEHOLDER seed counts as unset). Reuses CONTEXT_DEV_API_KEY, PRICING_CONTEXTDEV_BASE_URL and AI_GATEWAY_API_KEY. Event-chat production setup: event chats. Full provider secret inventory: api-events operations.

Example local shell exports

Prefer cd api-events && npm run dev:emulator — it wires the standard local env.

Infrastructure (Terraform)

Passed via terraform.tfvars or CI/CD secrets.

Per-Environment Variables

Configurable Settings


CI/CD (GitHub Actions)

Stored in GitHub repository secrets.

Mobile CI/CD

Web CI/CD

API CI/CD

Infrastructure CI/CD


Security Best Practices

Never commit secrets to version control. Use .env.example files as templates.

Do’s

  • ✅ Use .env.example with placeholder values
  • ✅ Store production secrets in Key Vault or GitHub Secrets
  • ✅ Use different keys per environment
  • ✅ Rotate secrets regularly

Don’ts

  • ❌ Commit .env files with real values
  • ❌ Log environment variables
  • ❌ Share secrets via Slack/email
  • ❌ Use production secrets in development

Quick Setup