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
| Variable | Description | Example |
|---|---|---|
OPENAI_API_KEY | OpenAI API key for embeddings | sk-... |
API Server
| Variable | Default | Description |
|---|---|---|
PORT | 3000 | API server port |
NODE_ENV | development | Environment (development, production) |
Database (PostgreSQL)
| Variable | Default | Description |
|---|---|---|
POSTGRES_HOST | localhost | PostgreSQL host |
POSTGRES_PORT | 5432 | PostgreSQL port |
POSTGRES_USER | rephole | Database user |
POSTGRES_PASSWORD | - | Database password |
POSTGRES_DB | rephole | Database name |
Queue (Redis)
| Variable | Default | Description |
|---|---|---|
REDIS_HOST | localhost | Redis host |
REDIS_PORT | 6379 | Redis port |
Vector Store (ChromaDB)
| Variable | Default | Description |
|---|---|---|
CHROMA_HOST | localhost | ChromaDB host |
CHROMA_PORT | 8000 | ChromaDB port |
CHROMA_COLLECTION_NAME | rephole-collection | Collection name |
OpenAI
| Variable | Default | Description |
|---|---|---|
OPENAI_API_KEY | - | Required. API key |
OPENAI_ORGANIZATION_ID | - | Organization ID (optional) |
OPENAI_PROJECT_ID | - | Project ID (optional) |
Processing
| Variable | Default | Description |
|---|---|---|
VECTOR_STORE_BATCH_SIZE | 1000 | Vectors per batch |
LOCAL_STORAGE_PATH | repos | Repository storage path |
SHORT_TERM_CONTEXT_WINDOW | 20 | Context window size |
Logging
| Variable | Default | Description |
|---|---|---|
LOG_LEVEL | debug | Log 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
- Never commit
.env- Add to.gitignore - Use secrets management - In production, use Vault, AWS Secrets Manager, etc.
- Rotate API keys - Regularly rotate
OPENAI_API_KEY - Strong passwords - Use long, random
POSTGRES_PASSWORD