maproom 0.1.0

Semantic code search powered by embeddings and SQLite
Documentation
# Maproom Configuration
#
# Copy this file to .env and update with your values:
#   cp .env.example .env

# ==============================================================================
# DATABASE CONFIGURATION (REQUIRED)
# ==============================================================================

# Local development (PostgreSQL running on host machine)
MAPROOM_DATABASE_URL=postgresql://maproom:maproom@localhost:5433/maproom

# Docker/devcontainer (PostgreSQL in separate container named 'maproom-postgres')
# Uncomment this line and comment out the localhost line above:
# MAPROOM_DATABASE_URL=postgresql://maproom:maproom@maproom-postgres:5432/maproom

# Custom configuration
# MAPROOM_DATABASE_URL=postgresql://username:password@hostname:port/database

# Component-based configuration (alternative to full DATABASE_URL)
# MAPROOM_DB_HOST=maproom-postgres
# MAPROOM_DB_PORT=5432

# NOTE: In Docker/devcontainer environments, use hostname 'maproom-postgres' instead of 'localhost'
# If you see "Connection refused" errors, this is likely the issue.

# ==============================================================================
# EMBEDDING PROVIDER CONFIGURATION (REQUIRED)
# ==============================================================================

# Embedding provider: ollama (default), openai, or google
MAPROOM_EMBEDDING_PROVIDER=ollama

# Embedding model (provider-specific defaults)
# ollama: mxbai-embed-large (recommended) or nomic-embed-text
# openai: text-embedding-3-small
# google: text-embedding-004
# Note: mxbai-embed-large provides better embedding quality than nomic-embed-text
# To use nomic-embed-text instead, set MAPROOM_EMBEDDING_MODEL=nomic-embed-text and MAPROOM_EMBEDDING_DIMENSION=768
MAPROOM_EMBEDDING_MODEL=mxbai-embed-large

# Embedding dimension (must match model)
# mxbai-embed-large: 1024
# nomic-embed-text: 768
# openai: 1536
# google: 768
MAPROOM_EMBEDDING_DIMENSION=1024

# ==============================================================================
# PROVIDER API KEYS (as needed)
# ==============================================================================

# OpenAI (required if using openai provider)
# Maproom-specific key (preferred - isolates Maproom from other tools):
# MAPROOM_OPENAI_API_KEY=sk-your-api-key-here
# Or use standard key (shared across tools):
# OPENAI_API_KEY=sk-your-api-key-here

# Google Vertex AI (required if using google provider)
# Maproom-specific credentials (preferred - isolates Maproom from other tools):
# MAPROOM_GOOGLE_PROJECT_ID=your-project-id
# MAPROOM_GOOGLE_APPLICATION_CREDENTIALS=/path/to/credentials.json
# Or use standard credentials (shared across tools):
# GOOGLE_PROJECT_ID=your-project-id
# GOOGLE_APPLICATION_CREDENTIALS=/path/to/credentials.json

# ==============================================================================
# EMBEDDING CONFIGURATION (OPTIONAL)
# ==============================================================================

# LRU cache size for embeddings (default: 10000)
# MAPROOM_EMBEDDING_CACHE_SIZE=10000

# Cache TTL in seconds (default: 3600)
# MAPROOM_EMBEDDING_CACHE_TTL=3600

# API batch size (default: 100)
# MAPROOM_EMBEDDING_BATCH_SIZE=100

# Custom API endpoint (optional, for custom embedding services)
# MAPROOM_EMBEDDING_API_ENDPOINT=http://localhost:11434

# Retry configuration
# MAPROOM_EMBEDDING_RETRY_MAX_ATTEMPTS=3

# Parallel processing (experimental)
# MAPROOM_EMBEDDING_PARALLEL_ENABLED=false
# MAPROOM_EMBEDDING_PARALLEL_SUB_BATCH_SIZE=10
# MAPROOM_EMBEDDING_PARALLEL_MAX_CONCURRENCY=4

# ==============================================================================
# LOGGING CONFIGURATION (OPTIONAL)
# ==============================================================================

# Log level (default: info)
# Options: error, warn, info, debug, trace
RUST_LOG=info,crewchief_maproom=info