# Classroom Copilot API - Environment Variables Template # Copy this file to .env and fill in the values # ============================================================================= # Server Configuration # ============================================================================= PORT_OLLAMA=11434 UVICORN_PORT=8000 UVICORN_WORKERS=4 UVICORN_TIMEOUT=120 HOST_OLLAMA=http://localhost:11434 OLLAMA_MODEL=llama3.2 # ============================================================================= # Supabase Configuration # ============================================================================= SUPABASE_URL=https://your-project.supabase.co ANON_KEY=your-supabase-anon-key SERVICE_ROLE_KEY=your-supabase-service-role-key # ============================================================================= # Authentication # ============================================================================= JWT_SECRET=your-jwt-secret-min-32-chars # ============================================================================= # Admin Configuration (for initial setup) # ============================================================================= ADMIN_EMAIL=admin@example.com ADMIN_PASSWORD=change-me-immediately ADMIN_USERNAME=admin ADMIN_NAME=Admin User ADMIN_DISPLAY_NAME=Administrator ADMIN_WORKER_EMAIL=worker@example.com # ============================================================================= # Redis Configuration # ============================================================================= REDIS_HOST=localhost REDIS_PORT=6379 REDIS_PASSWORD= REDIS_SSL=false REDIS_RECOVERY_ENABLED=true REDIS_MAX_RETRY_ATTEMPTS=3 REDIS_HEALTH_CHECK_INTERVAL=30 # Dev/Prod/Test DB isolation REDIS_DB_DEV=0 REDIS_DB_PROD=1 REDIS_DB_TEST=2 # Task TTL (seconds) REDIS_TASK_TTL_DEV=3600 REDIS_TASK_TTL_PROD=7200 # Persistence REDIS_PERSIST_DEV=false REDIS_PERSIST_PROD=true # ============================================================================= # OpenAI / LLM Configuration # ============================================================================= OPENAI_API_KEY=your-openai-api-key OPENAI_BASE_URL=https://api.openai.com/v1 # ============================================================================= # LangChain Configuration (optional) # ============================================================================= LANGCHAIN_API_KEY= LANGCHAIN_PROJECT=classroom-copilot # ============================================================================= # Document Processing (Docling) # ============================================================================= DOCLING_URL=http://localhost:8000 DOCLING_TIMEOUT=300 DOCLING_PDF_BACKEND=marker DOCLING_INCLUDE_IMAGES=false DOCLING_IMAGES_SCALE=1.0 DOCLING_VLM_MODEL= DOCLING_VLM_TIMEOUT=300 DOCLING_NO_OCR_BY_PAGE=false DOCLING_OCR_BY_PAGE=false DOCLING_VLM_BY_PAGE=false DOCLING_SPLIT_THRESHOLD=0.95 DOCLING_USE_SPLIT_MAP=false DOCLING_PICTURE_DESCRIPTION_AREA_THRESHOLD=0.1 # Auto-processing flags AUTO_DOCLING_OCR=false AUTO_DOCLING_NO_OCR=false AUTO_DOCLING_VLM=false AUTO_DOCUMENT_ANALYSIS=false AUTO_PAGE_IMAGES=false AUTO_SPLIT_MAP_GENERATION=false AUTO_TIKA_PROCESSING=false # ============================================================================= # Document Processing (Tika) # ============================================================================= TIKA_URL=http://localhost:9998 TIKA_TIMEOUT=120 # ============================================================================= # Queue Configuration # ============================================================================= QUEUE_WORKERS=4 QUEUE_MAX_MEMORY_MB=512 QUEUE_MAX_USER_MEMORY_MB=128 QUEUE_DOCLING_LIMIT=5 QUEUE_DOCUMENT_ANALYSIS_LIMIT=3 QUEUE_LLM_LIMIT=2 QUEUE_PAGE_IMAGES_LIMIT=10 QUEUE_SPLIT_MAP_LIMIT=5 QUEUE_TIKA_LIMIT=5 # Upload processing UPLOAD_QUEUE_ENABLED=true UPLOAD_IMMEDIATE_PROCESSING=false UPLOAD_STATUS_POLLING_INTERVAL=5 MAX_FILE_SIZE_MB=50 # ============================================================================= # OCR Configuration # ============================================================================= OCR_ENGINE=tesseract OCR_LANG=eng # ============================================================================= # Memory / Warning Thresholds # ============================================================================= MEMORY_WARNING_THRESHOLD=80 MEMORY_REJECT_THRESHOLD=95 # ============================================================================= # TLSync Configuration # ============================================================================= # Server-side secret used to sign short-lived TLSync auth tokens. Do not expose with a VITE_ prefix. TLSYNC_SECRET=change-me-server-side-only TLSYNC_TOKEN_TTL_SECONDS=300 # ============================================================================= # CORS Configuration # ============================================================================= CORS_SITE_URL=https://app.classroomcopilot.ai CORS_API_URL=https://api.classroomcopilot.ai CORS_GRAPH_URL=https://graph.classroomcopilot.ai # ============================================================================= # Logging # ============================================================================= LOG_LEVEL=info LOG_PATH=/var/log/classroom-copilot # ============================================================================= # Development Mode # ============================================================================= DEV_MODE=false BACKEND_DEV_MODE=false BACKEND_INIT_PATH=/app/init # ============================================================================= # App Metadata # ============================================================================= APP_NAME=Classroom Copilot APP_VERSION=1.0.0 APP_AUTHOR=KevlarAI APP_AUTHOR_EMAIL=kcar@kevlarai.com APP_DESCRIPTION=AI-powered classroom collaboration platform APP_PROTOCOL=https APP_BOLT_URL=bolt://neo4j:7687 APP_GRAPH_URL=http://localhost:7474 # ============================================================================= # External API Keys # ============================================================================= YOUTUBE_API_KEY= GOOGLE_CLIENT_SECRETS_FILE= # ============================================================================= # Node Filesystem (for document storage) # ============================================================================= NODE_FILESYSTEM_PATH=/tmp/cc-nodes