.env.exampleโข10.8 kB
# =============================================================================
# AnyDocs MCP Server Environment Configuration
# =============================================================================
# Copy this file to .env and update the values according to your environment
# DO NOT commit .env file to version control - it contains sensitive information
# =============================================================================
# CORE SERVER CONFIGURATION
# =============================================================================
# Server Environment (development, staging, production)
ENVIRONMENT=development
# Debug mode (true/false)
DEBUG=true
# Server host and port
SERVER_HOST=0.0.0.0
SERVER_PORT=8000
# MCP Server specific port (if different from main server)
MCP_SERVER_PORT=8001
# Server workers (for production)
WORKERS=1
# Application secret key (generate a secure random string)
# You can generate one using: python -c "import secrets; print(secrets.token_urlsafe(32))"
SECRET_KEY=your-super-secret-key-change-this-in-production
# CORS settings
CORS_ORIGINS=http://localhost:3000,http://localhost:8000,http://127.0.0.1:3000,http://127.0.0.1:8000
CORS_ALLOW_CREDENTIALS=true
# =============================================================================
# DATABASE CONFIGURATION
# =============================================================================
# Database URL (SQLite for development, PostgreSQL for production)
# SQLite: sqlite:///./data/anydocs.db
# PostgreSQL: postgresql+asyncpg://user:password@localhost:5432/anydocs_mcp
# MySQL: mysql+aiomysql://user:password@localhost:3306/anydocs_mcp
DATABASE_URL=sqlite+aiosqlite:///./data/anydocs.db
# Database connection pool settings
DB_POOL_SIZE=5
DB_MAX_OVERFLOW=10
DB_POOL_TIMEOUT=30
DB_POOL_RECYCLE=3600
# Database migration settings
DB_AUTO_MIGRATE=true
DB_CREATE_TABLES=true
# =============================================================================
# REDIS CONFIGURATION (for caching and session storage)
# =============================================================================
# Redis URL
REDIS_URL=redis://localhost:6379/0
# Redis connection settings
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_DB=0
REDIS_PASSWORD=
# Redis connection pool
REDIS_MAX_CONNECTIONS=10
REDIS_RETRY_ON_TIMEOUT=true
# Cache settings
CACHE_TTL=3600
CACHE_PREFIX=anydocs_mcp
# =============================================================================
# AUTHENTICATION & SECURITY
# =============================================================================
# JWT settings
JWT_SECRET_KEY=your-jwt-secret-key-change-this
JWT_ALGORITHM=HS256
JWT_ACCESS_TOKEN_EXPIRE_MINUTES=30
JWT_REFRESH_TOKEN_EXPIRE_DAYS=7
# API Key settings
API_KEY_HEADER=X-API-Key
API_KEY_QUERY_PARAM=api_key
# OAuth2 settings (optional)
OAUTH2_CLIENT_ID=
OAUTH2_CLIENT_SECRET=
OAUTH2_REDIRECT_URI=http://localhost:8000/auth/callback
# Session settings
SESSION_SECRET_KEY=your-session-secret-key
SESSION_COOKIE_NAME=anydocs_session
SESSION_COOKIE_SECURE=false
SESSION_COOKIE_HTTPONLY=true
SESSION_COOKIE_SAMESITE=lax
SESSION_MAX_AGE=86400
# Password hashing
PASSWORD_HASH_ROUNDS=12
# =============================================================================
# DOCUMENTATION PLATFORM INTEGRATIONS
# =============================================================================
# GitBook Integration
GITBOOK_API_TOKEN=
GITBOOK_ORGANIZATION_ID=
GITBOOK_SPACE_ID=
GITBOOK_BASE_URL=https://api.gitbook.com
# Notion Integration
NOTION_API_TOKEN=
NOTION_DATABASE_ID=
NOTION_PAGE_ID=
NOTION_VERSION=2022-06-28
# Confluence Integration
CONFLUENCE_URL=https://your-domain.atlassian.net
CONFLUENCE_USERNAME=
CONFLUENCE_API_TOKEN=
CONFLUENCE_SPACE_KEY=
# GitHub Integration
GITHUB_TOKEN=
GITHUB_OWNER=
GITHUB_REPO=
GITHUB_BRANCH=main
GITHUB_DOCS_PATH=docs
# GitLab Integration
GITLAB_TOKEN=
GITLAB_PROJECT_ID=
GITLAB_BRANCH=main
GITLAB_DOCS_PATH=docs
GITLAB_BASE_URL=https://gitlab.com
# Microsoft Graph (SharePoint/Teams)
MSGRAPH_CLIENT_ID=
MSGRAPH_CLIENT_SECRET=
MSGRAPH_TENANT_ID=
MSGRAPH_SITE_ID=
MSGRAPH_DRIVE_ID=
# Slack Integration
SLACK_BOT_TOKEN=
SLACK_APP_TOKEN=
SLACK_CHANNEL_ID=
SLACK_SIGNING_SECRET=
# =============================================================================
# AI/ML INTEGRATIONS
# =============================================================================
# OpenAI
OPENAI_API_KEY=
OPENAI_MODEL=gpt-3.5-turbo
OPENAI_MAX_TOKENS=1000
OPENAI_TEMPERATURE=0.7
# Anthropic Claude
ANTHROPIC_API_KEY=
ANTHROPIC_MODEL=claude-3-sonnet-20240229
ANTHROPIC_MAX_TOKENS=1000
# Google AI
GOOGLE_API_KEY=
GOOGLE_MODEL=gemini-pro
# Embedding models
EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2
EMBEDDING_DIMENSION=384
# Vector database (ChromaDB)
CHROMA_HOST=localhost
CHROMA_PORT=8002
CHROMA_COLLECTION_NAME=anydocs_embeddings
# =============================================================================
# LOGGING & MONITORING
# =============================================================================
# Log level (DEBUG, INFO, WARNING, ERROR, CRITICAL)
LOG_LEVEL=INFO
# Log format (json, text)
LOG_FORMAT=json
# Log file path
LOG_FILE=logs/anydocs-mcp.log
# Log rotation
LOG_MAX_SIZE=10MB
LOG_BACKUP_COUNT=5
# Structured logging
STRUCTURED_LOGGING=true
# Prometheus metrics
PROMETHEUS_ENABLED=true
PROMETHEUS_PORT=9090
PROMETHEUS_PATH=/metrics
# Health check settings
HEALTH_CHECK_ENABLED=true
HEALTH_CHECK_PATH=/health
HEALTH_CHECK_INTERVAL=30
# Sentry error tracking (optional)
SENTRY_DSN=
SENTRY_ENVIRONMENT=development
SENTRY_TRACES_SAMPLE_RATE=0.1
# =============================================================================
# PERFORMANCE & OPTIMIZATION
# =============================================================================
# Rate limiting
RATE_LIMIT_ENABLED=true
RATE_LIMIT_REQUESTS=100
RATE_LIMIT_WINDOW=60
RATE_LIMIT_STORAGE=redis
# Request timeout (seconds)
REQUEST_TIMEOUT=30
# Connection timeout (seconds)
CONNECTION_TIMEOUT=10
# Max request size (bytes)
MAX_REQUEST_SIZE=10485760
# Async settings
ASYNC_POOL_SIZE=10
ASYNC_MAX_WORKERS=4
# Content processing
MAX_CONTENT_SIZE=5242880
CONTENT_CHUNK_SIZE=1024
CONTENT_PROCESSING_TIMEOUT=60
# Search settings
SEARCH_MAX_RESULTS=50
SEARCH_TIMEOUT=10
SEARCH_CACHE_TTL=300
# =============================================================================
# FILE STORAGE & UPLOADS
# =============================================================================
# File storage backend (local, s3, gcs, azure)
FILE_STORAGE_BACKEND=local
# Local file storage
FILE_STORAGE_PATH=./data/uploads
FILE_MAX_SIZE=52428800
FILE_ALLOWED_EXTENSIONS=.md,.txt,.pdf,.docx,.html,.json,.yaml,.yml
# AWS S3 (if using S3 backend)
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_REGION=us-east-1
AWS_S3_BUCKET=
AWS_S3_PREFIX=anydocs-mcp/
# Google Cloud Storage (if using GCS backend)
GCP_PROJECT_ID=
GCP_CREDENTIALS_PATH=
GCS_BUCKET=
GCS_PREFIX=anydocs-mcp/
# Azure Blob Storage (if using Azure backend)
AZURE_STORAGE_ACCOUNT=
AZURE_STORAGE_KEY=
AZURE_CONTAINER=
AZURE_PREFIX=anydocs-mcp/
# =============================================================================
# EMAIL CONFIGURATION (for notifications)
# =============================================================================
# Email backend (smtp, sendgrid, mailgun, ses)
EMAIL_BACKEND=smtp
# SMTP settings
SMTP_HOST=localhost
SMTP_PORT=587
SMTP_USERNAME=
SMTP_PASSWORD=
SMTP_USE_TLS=true
SMTP_USE_SSL=false
# Email settings
EMAIL_FROM=noreply@anydocs-mcp.com
EMAIL_FROM_NAME=AnyDocs MCP Server
# SendGrid (if using SendGrid backend)
SENDGRID_API_KEY=
# Mailgun (if using Mailgun backend)
MAILGUN_API_KEY=
MAILGUN_DOMAIN=
# AWS SES (if using SES backend)
AWS_SES_REGION=us-east-1
# =============================================================================
# WEBHOOK & NOTIFICATIONS
# =============================================================================
# Webhook settings
WEBHOOK_ENABLED=false
WEBHOOK_URL=
WEBHOOK_SECRET=
WEBHOOK_TIMEOUT=10
WEBHOOK_RETRY_COUNT=3
# Notification settings
NOTIFICATION_ENABLED=false
NOTIFICATION_CHANNELS=email,slack
# =============================================================================
# DEVELOPMENT & TESTING
# =============================================================================
# Development settings
DEV_RELOAD=true
DEV_RELOAD_DIRS=src,config
DEV_RELOAD_INCLUDES=*.py,*.yaml,*.yml,*.json
# Testing settings
TEST_DATABASE_URL=sqlite+aiosqlite:///:memory:
TEST_REDIS_URL=redis://localhost:6379/1
TEST_SKIP_AUTH=true
TEST_MOCK_EXTERNAL_APIS=true
# Profiling
PROFILING_ENABLED=false
PROFILING_OUTPUT_DIR=./profiling
# =============================================================================
# DOCKER & DEPLOYMENT
# =============================================================================
# Docker settings
DOCKER_IMAGE_TAG=latest
DOCKER_REGISTRY=
DOCKER_NAMESPACE=anydocs-mcp
# Kubernetes settings
K8S_NAMESPACE=anydocs-mcp
K8S_SERVICE_ACCOUNT=anydocs-mcp
K8S_CONFIG_MAP=anydocs-mcp-config
K8S_SECRET=anydocs-mcp-secrets
# Load balancer settings
LOAD_BALANCER_ENABLED=false
LOAD_BALANCER_ALGORITHM=round_robin
LOAD_BALANCER_HEALTH_CHECK=/health
# =============================================================================
# BACKUP & MAINTENANCE
# =============================================================================
# Backup settings
BACKUP_ENABLED=false
BACKUP_SCHEDULE=0 2 * * *
BACKUP_RETENTION_DAYS=30
BACKUP_STORAGE_PATH=./backups
BACKUP_COMPRESSION=gzip
# Maintenance mode
MAINTENANCE_MODE=false
MAINTENANCE_MESSAGE=System is under maintenance. Please try again later.
# Cleanup settings
CLEANUP_ENABLED=true
CLEANUP_SCHEDULE=0 3 * * 0
CLEANUP_RETENTION_DAYS=90
# =============================================================================
# FEATURE FLAGS
# =============================================================================
# Feature toggles
FEATURE_WEB_INTERFACE=true
FEATURE_API_DOCS=true
FEATURE_METRICS=true
FEATURE_HEALTH_CHECKS=true
FEATURE_RATE_LIMITING=true
FEATURE_CACHING=true
FEATURE_SEARCH=true
FEATURE_AI_INTEGRATION=false
FEATURE_WEBHOOKS=false
FEATURE_NOTIFICATIONS=false
FEATURE_BACKUP=false
# Experimental features
FEATURE_EXPERIMENTAL_SEARCH=false
FEATURE_EXPERIMENTAL_AI=false
FEATURE_EXPERIMENTAL_REALTIME=false
# =============================================================================
# CUSTOM CONFIGURATION
# =============================================================================
# Add your custom environment variables here
# CUSTOM_SETTING_1=value1
# CUSTOM_SETTING_2=value2
# =============================================================================
# END OF CONFIGURATION
# =============================================================================