Skip to main content

Environment Variables

Complete reference for all Rephole configuration options.

Configuration File​

Create a .env file in the project root:

cp .env.example .env

Required Variables​

VariableDescriptionExample
OPENAI_API_KEYOpenAI API key for embeddingssk-...

API Server​

VariableDefaultDescription
PORT3000API server port
NODE_ENVdevelopmentEnvironment (development, production)

Database (PostgreSQL)​

VariableDefaultDescription
POSTGRES_HOSTlocalhostPostgreSQL host
POSTGRES_PORT5432PostgreSQL port
POSTGRES_USERrepholeDatabase user
POSTGRES_PASSWORD-Database password
POSTGRES_DBrepholeDatabase name

Queue (Redis)​

VariableDefaultDescription
REDIS_HOSTlocalhostRedis host
REDIS_PORT6379Redis port

Vector Store (ChromaDB)​

VariableDefaultDescription
CHROMA_HOSTlocalhostChromaDB host
CHROMA_PORT8000ChromaDB port
CHROMA_COLLECTION_NAMErephole-collectionCollection name

OpenAI​

VariableDefaultDescription
OPENAI_API_KEY-Required. API key
OPENAI_ORGANIZATION_ID-Organization ID (optional)
OPENAI_PROJECT_ID-Project ID (optional)

Processing​

VariableDefaultDescription
VECTOR_STORE_BATCH_SIZE1000Vectors per batch
LOCAL_STORAGE_PATHreposRepository storage path
SHORT_TERM_CONTEXT_WINDOW20Context window size

Logging​

VariableDefaultDescription
LOG_LEVELdebugLog level (debug, info, warn, error)

Full Example​

# API Server
PORT=3000
NODE_ENV=production

# Database
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_USER=rephole
POSTGRES_PASSWORD=your_secure_password
POSTGRES_DB=rephole

# Redis (Queue & Cache)
REDIS_HOST=localhost
REDIS_PORT=6379

# ChromaDB (Vector Store)
CHROMA_HOST=localhost
CHROMA_PORT=8000
CHROMA_COLLECTION_NAME=rephole-collection

# OpenAI API
OPENAI_API_KEY=sk-your-api-key-here
OPENAI_ORGANIZATION_ID=your-org-id
OPENAI_PROJECT_ID=your-project-id

# Vector Store Configuration
VECTOR_STORE_BATCH_SIZE=1000

# Local Storage
LOCAL_STORAGE_PATH=repos

# Knowledge Base
SHORT_TERM_CONTEXT_WINDOW=20

# Logging
LOG_LEVEL=debug

Docker Compose Override​

For Docker deployments, environment variables can be set in docker-compose.yml:

services:
api:
environment:
- NODE_ENV=production
- POSTGRES_HOST=postgres
- REDIS_HOST=redis
- CHROMA_HOST=chromadb
- OPENAI_API_KEY=${OPENAI_API_KEY}

Security Best Practices​

  1. Never commit .env - Add to .gitignore
  2. Use secrets management - In production, use Vault, AWS Secrets Manager, etc.
  3. Rotate API keys - Regularly rotate OPENAI_API_KEY
  4. Strong passwords - Use long, random POSTGRES_PASSWORD