# Open-RevIntel Environment Configuration # Copy this file to .env and customize for your deployment # ========================================== # CORE SETTINGS # ========================================== APP_ENV=production # development, staging, production APP_HOST=0.0.0.0 APP_PORT=8000 API_PREFIX=/api/v1 SECRET_KEY=your-64-char-secret-key-here # Generate: openssl rand -hex 32 JWT_ALGORITHM=RS256 JWT_PRIVATE_KEY_PATH=/app/secrets/jwt_private.pem JWT_PUBLIC_KEY_PATH=/app/secrets/jwt_public.pem JWT_ACCESS_TOKEN_EXPIRE_MINUTES=15 JWT_REFRESH_TOKEN_EXPIRE_DAYS=30 # ========================================== # DATABASE # ========================================== DATABASE_URL=postgresql+asyncpg://revintel:changeme@postgres:5432/revintel DATABASE_POOL_SIZE=20 DATABASE_MAX_OVERFLOW=10 DATABASE_POOL_TIMEOUT=30 # ========================================== # REDIS # ========================================== REDIS_URL=redis://redis:6379/0 REDIS_CACHE_URL=redis://redis:6379/1 REDIS_CELERY_BROKER_URL=redis://redis:6379/2 REDIS_CELERY_RESULT_URL=redis://redis:6379/3 # ========================================== # MINIO / S3 STORAGE # ========================================== # For MinIO (local/S3-compatible) MINIO_ENDPOINT=minio:9000 MINIO_ACCESS_KEY=minioadmin MINIO_SECRET_KEY=minioadmin MINIO_BUCKET_RECORDINGS=recordings MINIO_BUCKET_TRANSCRIPTS=transcripts MINIO_BUCKET_MODELS=models MINIO_SECURE=false MINIO_REGION=us-east-1 # For AWS S3 (alternative to MinIO) # S3_ENDPOINT_URL=https://s3.amazonaws.com # S3_ACCESS_KEY_ID=xxx # S3_SECRET_ACCESS_KEY=xxx # S3_BUCKET_RECORDINGS=revintel-recordings # S3_REGION=us-east-1 # ========================================== # WEAVIATE VECTOR DATABASE # ========================================== WEAVIATE_URL=http://weaviate:8080 WEAVIATE_API_KEY= # Optional WEAVIATE_GRPC_PORT=50051 # ========================================== # CELERY CONFIGURATION # ========================================== CELERY_TASK_ALWAYS_EAGER=false CELERY_WORKER_PREFETCH_MULTIPLIER=1 CELERY_TASK_ACKS_LATE=true CELERY_TASK_REJECT_ON_WORKER_LOST=true # ========================================== # OAUTH PROVIDERS # ========================================== # Google OAuth GOOGLE_CLIENT_ID=xxx.apps.googleusercontent.com GOOGLE_CLIENT_SECRET=xxx GOOGLE_REDIRECT_URI=https://app.example.com/api/v1/auth/callback/google # Microsoft OAuth MICROSOFT_CLIENT_ID=xxx MICROSOFT_CLIENT_SECRET=xxx MICROSOFT_TENANT_ID=common MICROSOFT_REDIRECT_URI=https://app.example.com/api/v1/auth/callback/microsoft # Slack OAuth SLACK_CLIENT_ID=xxx SLACK_CLIENT_SECRET=xxx SLACK_REDIRECT_URI=https://app.example.com/api/v1/auth/callback/slack # GitHub OAuth GITHUB_CLIENT_ID=xxx GITHUB_CLIENT_SECRET=xxx GITHUB_REDIRECT_URI=https://app.example.com/api/v1/auth/callback/github # ========================================== # MEETING PLATFORMS # ========================================== # Zoom ZOOM_CLIENT_ID=xxx ZOOM_CLIENT_SECRET=xxx ZOOM_VERIFICATION_TOKEN=xxx ZOOM_WEBHOOK_URL=https://api.example.com/api/v1/webhooks/meeting # Microsoft Teams TEAMS_APP_ID=xxx TEAMS_APP_PASSWORD=xxx TEAMS_TENANT_ID=xxx # Google Meet GOOGLE_MEET_CREDENTIALS_JSON=/app/secrets/google_meet_credentials.json # ========================================== # CRM INTEGRATIONS # ========================================== # Salesforce SALESFORCE_CLIENT_ID=xxx SALESFORCE_CLIENT_SECRET=xxx SALESFORCE_REDIRECT_URI=https://app.example.com/api/v1/crm/callback/salesforce # HubSpot HUBSPOT_CLIENT_ID=xxx HUBSPOT_CLIENT_SECRET=xxx HUBSPOT_REDIRECT_URI=https://app.example.com/api/v1/crm/callback/hubspot # Pipedrive PIPEDRIVE_API_TOKEN=xxx # ========================================== # ML MODELS # ========================================== # Required for pyannote models (speaker diarization) HF_TOKEN=hf_xxx # Whisper (ASR) WHISPER_MODEL=large-v3 WHISPER_DEVICE=cuda # cuda or cpu WHISPER_COMPUTE_TYPE=float16 # float16 (GPU), int8 (CPU) # Speaker Diarization DIARIZATION_MODEL=pyannote/speaker-diarization-3.1 DIARIZATION_DEVICE=cuda # cuda or cpu # ========================================== # PII REDACTION # ========================================== PRESIDIO_LANGUAGE=en SPACY_MODEL=en_core_web_lg TRANSFORMERS_MODEL=dslim/bert-base-NER PII_CUSTOM_PATTERNS_PATH=/app/config/pii_patterns.yaml # ========================================== # DEAL INTELLIGENCE # ========================================== BERTOPIC_MODEL=MaartenGr/BERTopic_Wikipedia EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2 DEAL_SCORER_MODEL_PATH=/app/models/deal_scorer.xgb RISK_SCORER_MODEL_PATH=/app/models/risk_scorer.lgb NEXT_ACTION_MODEL_PATH=/app/models/next_action.xgb # ========================================== # OBSERVABILITY # ========================================== SENTRY_DSN=https://xxx@sentry.io/xxx LOG_LEVEL=INFO LOG_FORMAT=json PROMETHEUS_METRICS_PORT=9090 GRAFANA_ADMIN_USER=admin GRAFANA_ADMIN_PASSWORD=changeme # ========================================== # FRONTEND # ========================================== FRONTEND_URL=https://app.example.com CORS_ORIGINS=https://app.example.com,https://admin.example.com # ========================================== # BACKUP / RESTORE # ========================================== BACKUP_S3_BUCKET=revintel-backups BACKUP_S3_PREFIX=prod BACKUP_RETENTION_DAYS=30 BACKUP_ENCRYPTION_KEY= # Optional, for encrypted backups # ========================================== # FEATURE FLAGS # ========================================== ENABLE_MEETING_BOT=true ENABLE_TRANSCRIPTION=true ENABLE_DIARIZATION=true ENABLE_PII_REDACTION=true ENABLE_DEAL_INTELLIGENCE=true ENABLE_CRM_SYNC=true ENABLE_SEMANTIC_SEARCH=true