- Remove notebook mode, add RAG + Personal Assistant dual-bot setup - Add knowledge base management (upload, URL scraping, document processing) - Add user feature access control (allowed_features, features_override) - Update admin dashboard with knowledge base tab - Redesign login page, sidebar, and profile - Add Celery tasks for async document processing Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
103 lines
3.4 KiB
Text
103 lines
3.4 KiB
Text
# ==========================================
|
|
# Enterprise AI Hub "Nexus" - Environment Variables
|
|
# ==========================================
|
|
# Copy this file to .env and fill in your actual values
|
|
# NEVER commit .env to version control!
|
|
|
|
# ==========================================
|
|
# Database Configuration
|
|
# ==========================================
|
|
POSTGRES_DB=nexus_db
|
|
POSTGRES_USER=nexus_user
|
|
POSTGRES_PASSWORD=your_secure_password_here_min_16_chars
|
|
|
|
# Database URL (auto-constructed, no need to change unless custom setup)
|
|
DATABASE_URL=postgresql://nexus_user:your_secure_password_here_min_16_chars@localhost:5432/nexus_db
|
|
|
|
# ==========================================
|
|
# Redis Configuration
|
|
# ==========================================
|
|
REDIS_URL=redis://localhost:6379/0
|
|
|
|
# ==========================================
|
|
# Qdrant Vector Database
|
|
# ==========================================
|
|
QDRANT_URL=http://localhost:6333
|
|
|
|
# ==========================================
|
|
# Microsoft Entra ID (Azure AD) Authentication
|
|
# ==========================================
|
|
# Get these from Azure Portal > App Registrations
|
|
ENTRA_CLIENT_ID=your_client_id_here
|
|
ENTRA_CLIENT_SECRET=your_client_secret_here
|
|
ENTRA_TENANT_ID=your_tenant_id_here
|
|
ENTRA_REDIRECT_URI=http://localhost:8000/api/v1/auth/callback
|
|
|
|
# ==========================================
|
|
# LLM Provider API Keys
|
|
# ==========================================
|
|
|
|
# OpenAI (for RAG Mode - GPT-5.1, Embeddings)
|
|
# Get from: https://platform.openai.com/api-keys
|
|
OPENAI_API_KEY=sk-proj-your_openai_api_key_here
|
|
|
|
# Google AI (for Assistant Mode - Gemini 2.5 Flash)
|
|
# Get from: https://aistudio.google.com/app/apikey
|
|
GOOGLE_API_KEY=AIza_your_google_api_key_here
|
|
|
|
# Anthropic (for Assistant Writing Mode - Claude Sonnet 4.5)
|
|
# Get from: https://console.anthropic.com/settings/keys
|
|
ANTHROPIC_API_KEY=sk-ant-your_anthropic_api_key_here
|
|
|
|
# ==========================================
|
|
# JWT Authentication
|
|
# ==========================================
|
|
# Generate a secure random key: openssl rand -hex 32
|
|
JWT_SECRET=your_jwt_secret_key_min_32_characters_use_openssl_rand_hex_32
|
|
JWT_ALGORITHM=HS256
|
|
JWT_EXPIRATION_MINUTES=15
|
|
REFRESH_TOKEN_EXPIRATION_DAYS=7
|
|
|
|
# ==========================================
|
|
# LlamaParse (Optional — cloud PDF parsing)
|
|
# ==========================================
|
|
LLAMAPARSE_API_KEY=
|
|
|
|
# ==========================================
|
|
# File Upload Configuration
|
|
# ==========================================
|
|
MAX_UPLOAD_SIZE_MB=100
|
|
UPLOAD_DIR=/app/uploads
|
|
|
|
# ==========================================
|
|
# Application Settings
|
|
# ==========================================
|
|
# Environment: development | staging | production
|
|
ENVIRONMENT=development
|
|
|
|
# Enable debug mode (development only)
|
|
DEBUG=true
|
|
|
|
# CORS allowed origins (comma-separated)
|
|
CORS_ORIGINS=http://localhost:3000,http://localhost:8000
|
|
|
|
# ==========================================
|
|
# Email Notifications (for Celery task failures)
|
|
# ==========================================
|
|
SMTP_HOST=smtp.gmail.com
|
|
SMTP_PORT=587
|
|
SMTP_USER=your_email@company.com
|
|
SMTP_PASSWORD=your_email_password
|
|
ADMIN_EMAIL=admin@company.com
|
|
|
|
# ==========================================
|
|
# Monitoring & Logging (Optional)
|
|
# ==========================================
|
|
SENTRY_DSN=
|
|
LOG_LEVEL=INFO
|
|
|
|
# ==========================================
|
|
# Rate Limiting (Phase 2)
|
|
# ==========================================
|
|
# RATE_LIMIT_PER_USER=100
|
|
# RATE_LIMIT_WINDOW_SECONDS=3600
|