Skip to Content
DevelopmentEnvironment Variables

Environment Variables

List of the environment variables for the backend, frontend, and worker services.

Backend Environment Variables

Create a .env file in apps/backend/ with the following variables:

VariableRequired/DefaultDescription
SQLALCHEMY_DATABASE_URLRequiredPostgreSQL connection URL. Format: `postgresql://user:password@host:port/database`. Supports Unix sockets for Cloud SQL
SQLALCHEMY_DB_MODEDefault: `develop`Database mode: `develop`, `test`, or `production`. When `test`, uses `SQLALCHEMY_DATABASE_TEST_URL` if available
SQLALCHEMY_DB_DRIVERDefault: `postgresql`Database driver type
SQLALCHEMY_DB_USER**Required** (if URL not provided)PostgreSQL database username
SQLALCHEMY_DB_PASS**Required** (if URL not provided)PostgreSQL database password
SQLALCHEMY_DB_HOSTDefault: `localhost`PostgreSQL database hostname or Unix socket path
SQLALCHEMY_DB_NAME**Required** (if URL not provided)PostgreSQL database name
SQLALCHEMY_DB_PORTDefault: `5432`PostgreSQL database port
SQLALCHEMY_DATABASE_TEST_URLOptionalTest database connection URL used when `SQLALCHEMY_DB_MODE=test`
DB_ENCRYPTION_KEYRequired32-byte URL-safe base64-encoded encryption key for database field encryption. Generate with: `python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"`. **Never commit to version control**
LOG_LEVELDefault: `DEBUG`Logging level: `DEBUG`, `INFO`, `WARNING`, `ERROR`
AUTH0_DOMAINRequiredAuth0 tenant domain. Format: `your-tenant.region.auth0.com`
AUTH0_AUDIENCERequiredAuth0 API audience identifier
AUTH0_CLIENT_IDRequiredAuth0 application client ID
AUTH0_CLIENT_SECRETRequiredAuth0 application client secret
AUTH0_SECRET_KEYRequiredAuth0 secret key for session encryption
JWT_SECRET_KEYRequiredSecret key for JWT token signing. Generate with: `openssl rand -hex 64`
JWT_ALGORITHMDefault: `HS256`JWT signing algorithm
JWT_ACCESS_TOKEN_EXPIRE_MINUTESDefault: `1440`JWT access token expiration time in minutes
FRONTEND_URLDefault: `http://localhost:3000`Frontend application URL for CORS and redirects
RHESIS_BASE_URLDefault: `http://localhost:8080`Backend API base URL
BACKEND_URLDefault: `http://backend:8080`Internal backend URL for service-to-service communication
RHESIS_BASE_PATHOptionalBase filesystem path to Rhesis installation directory
QUICK_STARTDefault: `false`Enable Quick Start mode for local development. **Never enable in production**
DEMO_USER_EMAILOptionalEmail address for demo user account
OPENAI_API_KEYOptionalOpenAI API key. Obtain from https://platform.openai.com/api-keys
OPENAI_MODEL_NAMEDefault: `gpt-4o`OpenAI model name
AZURE_OPENAI_ENDPOINTOptionalAzure OpenAI endpoint URL. Format: `https://your-resource.openai.azure.com/`
AZURE_OPENAI_API_KEYOptionalAzure OpenAI API key
AZURE_OPENAI_DEPLOYMENT_NAME**Required** (if using Azure)Azure OpenAI deployment name
AZURE_OPENAI_API_VERSIONDefault: `2024-10-21`Azure OpenAI API version
GEMINI_API_KEYOptionalGoogle Gemini API key. Obtain from Google AI Studio
GEMINI_MODEL_NAMEDefault: `gemini-2.0-flash`Google Gemini model name
DEFAULT_GENERATION_MODELDefault: `vertex_ai`Default AI provider for test generation
DEFAULT_MODEL_NAMEDefault: `gemini-2.0-flash`Default model name for generation
GOOGLE_APPLICATION_CREDENTIALSOptionalPath to Google Cloud service account credentials JSON file
VERTEX_AI_LOCATIONOptionalGoogle Cloud Vertex AI location/region. Format: `us-central1`, `europe-west1`, etc.
VERTEX_AI_PROJECTOptionalGoogle Cloud project ID for Vertex AI
CHATBOT_API_KEYOptionalAPI key for chatbot service
SMTP_HOSTOptionalSMTP server hostname. Examples: `smtp.sendgrid.net`, `smtp.gmail.com`
SMTP_PORTDefault: `587`SMTP server port
SMTP_USEROptionalSMTP authentication username
SMTP_PASSWORDOptionalSMTP authentication password
FROM_EMAILDefault: `"Harry from Rhesis AI" <engineering@rhesis.ai>`Default sender email address
AGENT_EMAIL_BCCOptionalBCC email address for agent-related emails
WELCOME_FROM_EMAILOptionalSender email for welcome emails
WELCOME_CALENDAR_LINKOptionalCalendar link for welcome emails
BROKER_URLOptionalCelery broker URL. Format: `redis://:password@host:port/db` or `sqla+postgresql://...`
CELERY_RESULT_BACKENDOptionalCelery result backend URL. Use different database number than `BROKER_URL` if using Redis
CELERY_WORKER_CONCURRENCYDefault: `8`Number of concurrent worker processes
CELERY_WORKER_PREFETCH_MULTIPLIERDefault: `4`Number of tasks to prefetch per worker process
CELERY_WORKER_MAX_TASKS_PER_CHILDDefault: `1000`Maximum tasks per worker child process before replacement
CELERY_WORKER_LOGLEVELDefault: `INFO`Celery worker logging level
REDIS_URLOptionalRedis connection URL. Format: `redis://:password@host:port/db`
REDIS_PASSWORDOptionalRedis password
STORAGE_SERVICE_URIOptionalStorage service endpoint URL for file operations
STORAGE_SERVICE_ACCOUNT_KEYOptionalStorage service account key or access token
LOCAL_STORAGE_PATHOptionalLocal filesystem path for file storage
OTEL_EXPORTER_OTLP_ENDPOINTOptionalOpenTelemetry collector endpoint URL
OTEL_SERVICE_NAMEDefault: `rhesis-backend`OpenTelemetry service name
OTEL_DEPLOYMENT_TYPEDefault: `unknown`Deployment type: `cloud` or `self-hosted`
OTEL_RHESIS_TELEMETRY_ENABLEDDefault: `true` (self-hosted)Enable/disable Rhesis telemetry collection
OTEL_PROCESSOR_ENDPOINTDefault: `telemetry-processor:4317`Telemetry processor endpoint URL
OTEL_API_KEYOptionalAPI key for telemetry authentication
ENVIRONMENTDefault: `local`Environment identifier: `local`, `dev`, `stg`, `prd`
BACKEND_ENVDefault: `local`Backend environment identifier
FRONTEND_ENVDefault: `local`Frontend environment identifier
WORKER_ENVDefault: `local`Worker environment identifier

Frontend Environment Variables

Create a .env.local file in apps/frontend/ with the following variables:

VariableRequired/DefaultDescription
NEXTAUTH_URLDefault: `http://localhost:3000`NextAuth.js base URL. Must match your frontend URL exactly
NEXTAUTH_SECRETRequiredNextAuth.js secret key. Generate with: `openssl rand -base64 32`
AUTH_SECRETRequiredAuthentication secret key
NEXT_PUBLIC_API_BASE_URLDefault: `http://localhost:8080`Backend API base URL (exposed to browser)
NEXT_PUBLIC_APP_URLDefault: `http://localhost:3000`Frontend application URL (exposed to browser)
NEXT_PUBLIC_AUTH0_CLIENT_IDRequiredAuth0 frontend client ID (exposed to browser)
NEXT_PUBLIC_AUTH0_DOMAINRequiredAuth0 domain (exposed to browser)
NEXT_PUBLIC_AUTH0_AUDIENCEOptionalAuth0 API audience identifier (exposed to browser)
NEXT_PUBLIC_AUTH0_SCOPEOptionalAuth0 scope for authentication (exposed to browser)
NEXT_PUBLIC_QUICK_STARTDefault: `false`Enable Quick Start mode (exposed to browser). **Never enable in production**
BACKEND_URLOptionalBackend URL for server-side API calls
GOOGLE_CLIENT_IDOptionalGoogle OAuth client ID
GOOGLE_CLIENT_SECRETOptionalGoogle OAuth client secret
DATABASE_URLOptionalDatabase connection URL for frontend operations
SMTP_HOSTOptionalSMTP server hostname
SMTP_PORTDefault: `587`SMTP server port
SMTP_USEROptionalSMTP authentication username
SMTP_PASSWORDOptionalSMTP authentication password
FROM_EMAILOptionalDefault sender email address
FRONTEND_ENVDefault: `local`Frontend environment identifier

Worker Environment Variables

The worker service processes background tasks using Celery. Configure environment variables for the worker container.

VariableRequired/DefaultDescription
SQLALCHEMY_DATABASE_URLRequiredPostgreSQL connection URL for worker database access
SQLALCHEMY_DB_MODEDefault: `develop`Database mode: `develop`, `test`, or `production`
SQLALCHEMY_DB_DRIVERDefault: `postgresql`Database driver type
SQLALCHEMY_DB_USER**Required** (if URL not provided)PostgreSQL database username
SQLALCHEMY_DB_PASS**Required** (if URL not provided)PostgreSQL database password
SQLALCHEMY_DB_HOSTDefault: `localhost`PostgreSQL database hostname or Unix socket path
SQLALCHEMY_DB_NAME**Required** (if URL not provided)PostgreSQL database name
SQLALCHEMY_DB_PORTDefault: `5432`PostgreSQL database port
USE_TCP_DATABASEDefault: `true`Use TCP connection instead of Unix socket. Set to `false` for Unix socket connections
DB_ENCRYPTION_KEYRequiredDatabase encryption key. Must match backend key. Generate with: `python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"`
BROKER_URLRequiredCelery message broker URL. Format: `redis://:password@host:port/db` or `sqla+postgresql://...`
CELERY_RESULT_BACKENDRequiredCelery result backend URL. Use different database number than `BROKER_URL` if using Redis
CELERY_WORKER_CONCURRENCYDefault: `8`Number of concurrent worker processes per instance
CELERY_WORKER_PREFETCH_MULTIPLIERDefault: `4`Number of tasks each worker process prefetches
CELERY_WORKER_MAX_TASKS_PER_CHILDDefault: `1000`Maximum tasks per worker child process before replacement
CELERY_WORKER_LOGLEVELDefault: `INFO`Celery worker logging level
CELERY_WORKER_HIJACK_ROOT_LOGGERDefault: `False`Whether Celery should hijack the root logger
CELERY_WORKER_LOG_COLORDefault: `False`Enable colored log output for Celery workers
ENABLE_FLOWERDefault: `no`Enable Flower monitoring tool. Set to `yes` to start Flower web UI
WORKER_ENVDefault: `local`Worker environment identifier. When set to `development`, automatically sets log level to `DEBUG`
LOG_LEVELDefault: `DEBUG`Application logging level for worker processes
REDIS_URLOptionalRedis connection URL. Format: `redis://:password@host:port/db`
REDIS_PASSWORDOptionalRedis password
AUTH0_DOMAINRequiredAuth0 tenant domain
AUTH0_AUDIENCERequiredAuth0 API audience identifier
AUTH0_CLIENT_IDRequiredAuth0 client ID for worker service
AUTH0_CLIENT_SECRETRequiredAuth0 client secret for worker service
FRONTEND_URLDefault: `http://localhost:3000`Frontend URL for constructing links in emails
SMTP_HOSTOptionalSMTP server hostname
SMTP_PORTDefault: `587`SMTP server port
SMTP_USEROptionalSMTP authentication username
SMTP_PASSWORDOptionalSMTP authentication password
FROM_EMAILDefault: `"Harry from Rhesis AI" <engineering@rhesis.ai>`Default sender email address
AGENT_EMAIL_BCCOptionalBCC email address for agent-related emails
WELCOME_CALENDAR_LINKOptionalCalendar link for welcome emails
OPENAI_API_KEYOptionalOpenAI API key
OPENAI_MODEL_NAMEDefault: `gpt-4o`OpenAI model name
AZURE_OPENAI_ENDPOINTOptionalAzure OpenAI endpoint URL
AZURE_OPENAI_API_KEYOptionalAzure OpenAI API key
AZURE_OPENAI_DEPLOYMENT_NAME**Required** (if using Azure)Azure OpenAI deployment name
AZURE_OPENAI_API_VERSIONDefault: `2024-10-21`Azure OpenAI API version
GEMINI_API_KEYOptionalGoogle Gemini API key
GEMINI_MODEL_NAMEDefault: `gemini-2.0-flash`Google Gemini model name
GOOGLE_API_KEYOptionalGoogle API key for various Google services
GOOGLE_APPLICATION_CREDENTIALSOptionalPath to Google Cloud service account credentials JSON file
VERTEX_AI_LOCATIONOptionalGoogle Cloud Vertex AI location/region
VERTEX_AI_PROJECTOptionalGoogle Cloud project ID for Vertex AI
DEFAULT_GENERATION_MODELDefault: `vertex_ai`Default AI provider for test generation
DEFAULT_MODEL_NAMEDefault: `gemini-2.0-flash`Default model name for generation
STORAGE_SERVICE_URIOptionalStorage service endpoint URL for file operations
STORAGE_SERVICE_ACCOUNT_KEYOptionalStorage service account key or access token
LOCAL_STORAGE_PATHOptionalLocal filesystem path for file storage
ENVIRONMENTDefault: `local`Environment identifier: `local`, `dev`, `stg`, `prd`