⚙️ Configuration Reference
Configure Aicser Platform for your specific needs with comprehensive configuration options.
🚀 Quick Configuration
Environment File Setup
# Copy example environment file
cp env.example .env
# Edit with your settings
nano .env
Minimal Configuration
# Required settings
AI_PROVIDER=openai
OPENAI_API_KEY=your_api_key_here
JWT_SECRET=your_jwt_secret_here
POSTGRES_PASSWORD=your_database_password
# Optional but recommended
DEBUG=false
LOG_LEVEL=INFO
ENVIRONMENT=production
🔐 Core Configuration
AI Provider Configuration
OpenAI:
AI_PROVIDER=openai
OPENAI_API_KEY=sk-your-openai-api-key-here
OPENAI_MODEL=gpt-4.1-mini
OPENAI_TEMPERATURE=0.1
Azure OpenAI:
AI_PROVIDER=azure_openai
AZURE_OPENAI_API_KEY=your-azure-api-key
AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com
AZURE_OPENAI_DEPLOYMENT_NAME=your-deployment-name
Google AI:
AI_PROVIDER=google_ai
GOOGLE_AI_API_KEY=your-google-api-key
GOOGLE_AI_MODEL=gemini-2.5
Security Configuration
JWT Settings:
JWT_SECRET=your-very-long-random-jwt-secret-here
JWT_ALGORITHM=HS256
JWT_ACCESS_TOKEN_EXPIRE_MINUTES=60
JWT_REFRESH_TOKEN_EXPIRE_DAYS=30
Encryption:
ENCRYPTION_KEY=your-very-long-random-encryption-key-here
ENCRYPTION_ALGORITHM=AES-256-GCM
Database Configuration
PostgreSQL:
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_DB=aicser_platform
POSTGRES_USER=aicser_user
POSTGRES_PASSWORD=your_secure_database_password_here
POSTGRES_SSL_MODE=prefer
Redis:
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_DB=0
REDIS_PASSWORD=your_secure_redis_password_here
🏗️ Application Configuration
Server Settings
HOST=0.0.0.0
PORT=8000
WORKERS=4
ENVIRONMENT=production
DEBUG=false
CORS Configuration
CORS_ENABLED=true
CORS_ORIGINS=https://your-domain.com,https://app.your-domain.com
CORS_ALLOW_CREDENTIALS=true
CORS_ALLOW_METHODS=GET,POST,PUT,DELETE,OPTIONS
Frontend Configuration
NEXT_PUBLIC_API_URL=https://your-aicser-instance.com/api/v1
NEXT_PUBLIC_AUTH_URL=https://your-aicser-instance.com/api/v1
NEXT_PUBLIC_CUBE_URL=https://your-aicser-instance.com
📊 Performance Configuration
Caching Settings
CACHE_ENABLED=true
CACHE_BACKEND=redis
CACHE_DEFAULT_TTL=3600
QUERY_CACHE_TTL=1800
CHART_CACHE_TTL=7200
Rate Limiting
RATE_LIMIT_ENABLED=true
RATE_LIMIT_REQUESTS_PER_MINUTE=100
RATE_LIMIT_BURST_SIZE=20
RATE_LIMIT_STORAGE_BACKEND=redis
Database Optimization
DB_POOL_SIZE=20
DB_MAX_OVERFLOW=30
DB_POOL_TIMEOUT=30
DB_POOL_RECYCLE=3600
🔒 Security Configuration
Authentication & Authorization
PASSWORD_MIN_LENGTH=8
PASSWORD_REQUIRE_UPPERCASE=true
PASSWORD_REQUIRE_DIGITS=true
PASSWORD_REQUIRE_SPECIAL_CHARS=true
OAuth Configuration
OAUTH_ENABLED=true
OAUTH_PROVIDERS=google,github,azure
OAUTH_GOOGLE_CLIENT_ID=your-google-client-id
OAUTH_GOOGLE_CLIENT_SECRET=your-google-client-secret
SAML Configuration
SAML_ENABLED=true
SAML_ENTITY_ID=https://your-domain.com
SAML_SSO_URL=https://your-idp.com/sso
SAML_CERT_FILE=path/to/cert.pem
📈 Monitoring Configuration
Logging Settings
LOG_LEVEL=INFO
LOG_FORMAT=json
LOG_FILE_ENABLED=true
LOG_FILE_PATH=logs/aicser.log
LOG_FILE_MAX_SIZE=100MB
LOG_FILE_BACKUP_COUNT=5
Metrics Configuration
METRICS_ENABLED=true
METRICS_BACKEND=prometheus
METRICS_PORT=9090
METRICS_PATH=/metrics
METRICS_COLLECTION_INTERVAL=15
Health Checks
HEALTH_CHECK_ENABLED=true
HEALTH_CHECK_ENDPOINT=/health
HEALTH_CHECK_INTERVAL=30
HEALTH_CHECK_TIMEOUT=10
🌐 Network Configuration
Proxy Settings
PROXY_ENABLED=true
PROXY_TRUSTED_HOSTS=127.0.0.1,::1,10.0.0.0/8
PROXY_FORWARDED_FOR_HEADER=X-Forwarded-For
PROXY_FORWARDED_PROTO_HEADER=X-Forwarded-Proto
SSL/TLS Configuration
SSL_ENABLED=true
SSL_CERT_FILE=path/to/cert.pem
SSL_KEY_FILE=path/to/key.pem
SSL_CA_CERT_FILE=path/to/ca.pem
SSL_MIN_VERSION=TLSv1.2
SSL_MAX_VERSION=TLSv1.3
🔧 Development Configuration
Development Mode
DEBUG=true
ENVIRONMENT=development
LOG_LEVEL=DEBUG
CORS_ORIGINS=http://localhost:3000,http://localhost:3001
ALLOWED_HOSTS=localhost,127.0.0.1,::1
Testing Configuration
TESTING_ENABLED=true
TEST_DATABASE_URL=postgresql://test_user:test_pass@localhost:5432/aicser_test
TEST_REDIS_URL=redis://localhost:6379/1
TEST_AI_PROVIDER=mock
📁 Configuration Files
Complete .env Example
# =============================================================================
# AI SERVER CONFIGURATION
# =============================================================================
# AI Provider Configuration
AI_PROVIDER=openai
OPENAI_API_KEY=your_openai_api_key_here
OPENAI_MODEL=gpt-4.1-mini
OPENAI_TEMPERATURE=0.1
OPENAI_MAX_TOKENS=4000
# Azure OpenAI Configuration
AZURE_OPENAI_API_KEY=your_azure_api_key_here
AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com
AZURE_OPENAI_API_VERSION=2024-02-15-preview
AZURE_OPENAI_DEPLOYMENT_NAME=your-deployment-name
# Google AI Configuration
GOOGLE_AI_API_KEY=your_google_api_key_here
GOOGLE_AI_MODEL=gemini-2.5
# =============================================================================
# SECURITY CONFIGURATION
# =============================================================================
# JWT Configuration
JWT_SECRET=your_very_long_random_jwt_secret_here
JWT_ALGORITHM=HS256
JWT_ACCESS_TOKEN_EXPIRE_MINUTES=60
JWT_REFRESH_TOKEN_EXPIRE_DAYS=30
# Encryption Configuration
ENCRYPTION_KEY=your_very_long_random_encryption_key_here
ENCRYPTION_ALGORITHM=AES-256-GCM
# =============================================================================
# DATABASE CONFIGURATION
# =============================================================================
# PostgreSQL Configuration
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_DB=aicser_platform
POSTGRES_USER=aicser_user
POSTGRES_PASSWORD=your_secure_database_password_here
POSTGRES_SSL_MODE=prefer
# Redis Configuration
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_DB=0
REDIS_PASSWORD=your_secure_redis_password_here
# =============================================================================
# SERVER CONFIGURATION
# =============================================================================
# Server Settings
HOST=0.0.0.0
PORT=8000
WORKERS=4
ENVIRONMENT=production
DEBUG=false
# CORS Configuration
CORS_ENABLED=true
CORS_ORIGINS=https://your-domain.com,https://app.your-domain.com
# =============================================================================
# LOGGING & MONITORING
# =============================================================================
# Logging Settings
LOG_LEVEL=INFO
LOG_FORMAT=json
LOG_FILE_ENABLED=true
LOG_FILE_PATH=logs/aicser.log
# Metrics Settings
METRICS_ENABLED=true
METRICS_PORT=9090
METRICS_PATH=/metrics
# =============================================================================
# PERFORMANCE CONFIGURATION
# =============================================================================
# Cache Settings
CACHE_ENABLED=true
CACHE_BACKEND=redis
CACHE_DEFAULT_TTL=3600
# Rate Limiting
RATE_LIMIT_ENABLED=true
RATE_LIMIT_REQUESTS_PER_MINUTE=100
RATE_LIMIT_BURST_SIZE=20
🔄 Configuration Management
Environment-Specific Configuration
Development:
# .env.development
ENVIRONMENT=development
DEBUG=true
LOG_LEVEL=DEBUG
CORS_ORIGINS=http://localhost:3000,http://localhost:3001
ALLOWED_HOSTS=localhost,127.0.0.1,::1
Production:
# .env.production
ENVIRONMENT=production
DEBUG=false
LOG_LEVEL=WARNING
CORS_ORIGINS=https://your-domain.com,https://app.your-domain.com
ALLOWED_HOSTS=your-domain.com,app.your-domain.com
Configuration Validation
Validation Script:
#!/bin/bash
# validate-config.sh
echo "🔍 Validating Aicser Platform configuration..."
# Check required environment variables
required_vars=(
"AI_PROVIDER"
"JWT_SECRET"
"ENCRYPTION_KEY"
"POSTGRES_PASSWORD"
)
for var in "${required_vars[@]}"; do
if [ -z "${!var}" ]; then
echo "❌ Error: Required environment variable $var is not set"
exit 1
fi
done
# Validate AI provider configuration
case "$AI_PROVIDER" in
"openai")
if [ -z "$OPENAI_API_KEY" ]; then
echo "❌ Error: OPENAI_API_KEY required for OpenAI provider"
exit 1
fi
;;
"azure_openai")
if [ -z "$AZURE_OPENAI_API_KEY" ] || [ -z "$AZURE_OPENAI_ENDPOINT" ]; then
echo "❌ Error: AZURE_OPENAI_API_KEY and AZURE_OPENAI_ENDPOINT required for Azure OpenAI"
exit 1
fi
;;
"google_ai")
if [ -z "$GOOGLE_AI_API_KEY" ]; then
echo "❌ Error: GOOGLE_AI_API_KEY required for Google AI provider"
exit 1
fi
;;
*)
echo "❌ Error: Invalid AI_PROVIDER: $AI_PROVIDER"
exit 1
;;
esac
echo "✅ Configuration validation passed!"
🚀 Configuration Best Practices
Security Best Practices
- Use environment variables for secrets
- Never commit secrets to version control
- Validate configuration on startup
- Use secret management services in production
Performance Best Practices
- Enable Redis caching for better performance
- Configure connection pools appropriately
- Use appropriate TTL values for different data types
- Monitor performance metrics regularly
Monitoring Best Practices
- Enable structured logging with JSON format
- Include relevant context in logs
- Enable Prometheus metrics for monitoring
- Configure health checks for dependencies
📚 Next Steps
- 🔐 Security Configuration - Advanced security settings
- 📊 Performance Tuning - Optimize for your workload
- 🔍 Monitoring Setup - Comprehensive monitoring
- 🌐 Production Deployment - Production configuration
Need help with configuration? Check our troubleshooting guide →