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 setupwith "dev" environment - Local services:
localhostURLs - Docker services on default ports
Production
- Use
doppler setupwith "prod" environment - Production service URLs
- Secure credentials
Setting Up Doppler
-
Install Doppler CLI:
brew install doppler
# or
npm install -g doppler-cli -
Login:
doppler login -
Setup Project:
cd <repo_directory>
doppler setup -
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
.envfiles - 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.tssprout_etl/src/config.ts
Next Steps
- Commands Reference - How to use these variables
- Docker Setup - Docker configuration
- Doppler Integration - Detailed Doppler guide