Skip to main content

Environment Variables Reference

All environment variables are managed through Doppler. This document provides a consolidated reference.

sprout_backend

Required Variables

# Environment
NODE_ENV=development|production|test|provision
PORT=3000
WORKER_HTTP_PORT=4001 # Optional

# Database
DATABASE_URL=postgresql://user:password@localhost:5432/dbname

# Redis
REDIS_URL=redis://localhost:6379

# Skybox Integration
SKYBOX_ACCOUNT=<account_id>
SKYBOX_API_TOKEN=<token>
SKYBOX_APPLICATION_TOKEN=<token>
SKYBOX_PRODUCTION_API_URL=<url>
SKYBOX_WEBHOOK_TOKEN=<token>
SKYBOX_WEBHOOK_SECRET=<secret>
SKYBOX_GATEWAY_URL=<url>

# MeiliSearch
MEILISEARCH_HOST=http://localhost:7700
MEILISEARCH_MASTER_KEY=<key>

# Authentication
JWT_SECRET=<secret>
GOOGLE_CLIENT_ID=<client_id>
GOOGLE_CLIENT_SECRET=<client_secret>

# External APIs
TICKETMASTER_API_KEY=<key>
TICKOPS_EMAIL=<email>
TICKOPS_PASSWORD=<password>
FIRECRAWL_API_KEY=<key>

# SmartSuite
SMARTSUITE_WORKSPACE_ID=<id>
SMARTSUITE_API_KEY=<key>

# Email
RESEND_API_KEY=<key>
EMAIL_FROM=<email>

# Monitoring
SENTRY_DSN=<dsn>
PINO_LOGGER_SERVICE_URL=<url> # Optional
PUSHGATEWAY_URL=<url> # Optional

# Application
APP_URL=http://localhost:3000
SERVER_URL=http://localhost:3000
APP_VERSION=<version> # Optional

sprout_etl

Required Variables

# Environment
NODE_ENV=development|production|test|provision
PORT=3001

# Database
DATABASE_URL=postgresql://user:password@localhost:5432/dbname

# Redis
REDIS_URL=redis://localhost:6379

# MeiliSearch
MEILISEARCH_HOST=http://localhost:7700
MEILISEARCH_MASTER_KEY=<key>

# External APIs
TICKETMASTER_API_KEY=<key>
TICKOPS_EMAIL=<email>
TICKOPS_PASSWORD=<password>
FIRECRAWL_API_KEY=<key>

# Playwright Server
PLAYWRIGHT_SERVER_URL=http://localhost:3005 # Optional, default

# VividSeats (Optional)
VIVIDSEATS_EMAIL=<email>
VIVIDSEATS_PASSWORD=<password>

# Monitoring
SENTRY_DSN=<dsn>
PINO_LOGGER_SERVICE_URL=<url> # Optional
LOGGER_SERVICE_NAME=etl-service # Optional, default
PUSHGATEWAY_URL=<url> # Optional

# Email (Optional)
RESEND_API_KEY=<key>
EMAIL_FROM=<email>

cloudflare-workers

Required Variables

Configured in wrangler.json and Cloudflare dashboard:

# Environment
ENVIRONMENT=development|production

# Sentry
SENTRY_DSN=<dsn>

# API Keys
FIRECRAWL_API_KEY=<key>

# MeiliSearch
MEILISEARCH_HOST=<url>
MEILISEARCH_MASTER_KEY=<key>

# Skybox
SKYBOX_ACCOUNT=<account_id>
SKYBOX_API_TOKEN=<token>
SKYBOX_APPLICATION_TOKEN=<token>
SKYBOX_PRODUCTION_API_URL=<url>

# Baselime (Optional)
BASELIME_API_KEY=<key>
SERVICE_NAME=<name>

# Rate Limiting (Optional)
DEFAULT_INITIAL_DELAY=<ms>
DEFAULT_DECREMENT_STEP=<ms>
DEFAULT_DECREMENT_INTERVAL=<ms>
DEFAULT_MIN_DELAY=<ms>
DEFAULT_DURATION=<ms>

skybox_token_extractor

Required Variables

# Server
PORT=3000 # Internal, mapped to 3005 in Docker

# VividSeats Credentials
VIVIDSEATS_EMAIL=<email>
VIVIDSEATS_PASSWORD=<password>

pricing_dashboard

Required Variables

# API Endpoint
VITE_API_URL=http://localhost:3000 # Or production URL

overlevered_app

Required Variables

# Server URL
VITE_SERVER_URL=http://127.0.0.1:5001/flashcards-b2cb7/us-central1/api
# Or production:
# VITE_SERVER_URL=https://us-central1-flashcards-b2cb7.cloudfunctions.net/api

Environment-Specific Configuration

Development

  • Use doppler setup with "dev" environment
  • Local services: localhost URLs
  • Docker services on default ports

Production

  • Use doppler setup with "prod" environment
  • Production service URLs
  • Secure credentials

Setting Up Doppler

  1. Install Doppler CLI:

    brew install doppler
    # or
    npm install -g doppler-cli
  2. Login:

    doppler login
  3. Setup Project:

    cd <repo_directory>
    doppler setup
  4. Verify:

    doppler secrets

Running Commands with Doppler

Always use doppler run for commands that need environment variables:

# Development server
doppler run -- bun run start:dev

# Database migrations
doppler run -- npx prisma migrate dev

# CLI commands
doppler run -- bun run cli -- command-name

Security Notes

  • Never commit .env files
  • All secrets are in Doppler
  • Use Doppler for all environment management
  • Rotate secrets regularly
  • Use different secrets for dev/staging/prod

Variable Validation

Both sprout_backend and sprout_etl use Joi schemas to validate environment variables on startup. Check:

  • sprout_backend/src/config.ts
  • sprout_etl/src/config.ts

Next Steps