# ATOM Backend Environment Configuration # Copy this file to .env and update with your actual values # ============================================================================== # SECURITY CRITICAL - MUST BE SET IN PRODUCTION # ============================================================================== # Environment ENVIRONMENT=development # Options: development, staging, production # Security Keys (REQUIRED FOR PRODUCTION) # Generate with: python -c "import secrets; print(secrets.token_urlsafe(32))" SECRET_KEY=your-secret-key-here-change-in-production # Secrets Encryption (Optional but Recommended for Production) # Generate with: python -c "import secrets; print(secrets.token_urlsafe(32))" ENCRYPTION_KEY=your-encryption-key-here # Development Temporary Users (DISABLE IN PRODUCTION) ALLOW_DEV_TEMP_USERS=false # ============================================================================== # Database Configuration # ============================================================================== DATABASE_URL=sqlite:///atom.db # For PostgreSQL: postgresql://username:password@localhost:5432/atom # ============================================================================== # Redis Configuration (for background tasks) # ============================================================================== # Redis connection URL (used by RQ task queue) REDIS_URL=redis://localhost:6379/0 REDIS_HOST=localhost REDIS_PORT=6379 REDIS_DB=0 REDIS_PASSWORD= # Background Task Queue Configuration ENABLE_BACKGROUND_TASKS=true WORKER_NAME=atom-worker LOG_LEVEL=INFO # ============================================================================== # LLM API Configuration # ============================================================================== # OpenAI API Configuration OPENAI_API_KEY=your_openai_api_key_here # Anthropic API (Claude) ANTHROPIC_API_KEY=your_anthropic_api_key_here # ============================================================================== # Integration Service API Keys # ============================================================================== # Google Services GOOGLE_CLIENT_ID=your_google_client_id GOOGLE_CLIENT_SECRET=your_google_client_secret GOOGLE_DRIVE_API_KEY=your_google_drive_api_key # Microsoft Services MICROSOFT_CLIENT_ID=your_microsoft_client_id MICROSOFT_CLIENT_SECRET=your_microsoft_client_secret MICROSOFT_TENANT_ID=your_microsoft_tenant_id # Slack SLACK_CLIENT_ID=your_slack_client_id SLACK_CLIENT_SECRET=your_slack_client_secret SLACK_SIGNING_SECRET=your_slack_signing_secret # Asana ASANA_CLIENT_ID=your_asana_client_id ASANA_CLIENT_SECRET=your_asana_client_secret ASANA_ACCESS_TOKEN=your_asana_personal_access_token # Notion NOTION_CLIENT_ID=your_notion_client_id NOTION_CLIENT_SECRET=your_notion_client_secret NOTION_REDIRECT_URI=http://localhost:8000/api/notion/callback NOTION_OAUTH_ENABLED=true EMERGENCY_OAUTH_BYPASS=false # Stripe OAuth STRIPE_CLIENT_ID=your_stripe_client_id STRIPE_CLIENT_SECRET=your_stripe_client_secret STRIPE_REDIRECT_URI=http://localhost:8000/api/stripe/callback # Workflow System WORKFLOW_MOCK_ENABLED=false # Commission Calculation COMMISSION_AUTO_CALCULATE=true # Linear LINEAR_CLIENT_ID=your_linear_client_id LINEAR_CLIENT_SECRET=your_linear_client_secret # Dropbox DROPBOX_CLIENT_ID=your_dropbox_client_id DROPBOX_CLIENT_SECRET=your_dropbox_client_secret # Box BOX_CLIENT_ID=your_box_client_id BOX_CLIENT_SECRET=your_box_client_secret # Salesforce SALESFORCE_CLIENT_ID=your_salesforce_client_id SALESFORCE_CLIENT_SECRET=your_salesforce_client_secret SALESFORCE_USERNAME=your_salesforce_username SALESFORCE_PASSWORD=your_salesforce_password SALESFORCE_SECURITY_TOKEN=your_salesforce_security_token # GitHub GITHUB_CLIENT_ID=your_github_client_id GITHUB_CLIENT_SECRET=your_github_client_secret # Stripe (SaaS-specific - only public key for testing) STRIPE_PUBLISHABLE_KEY=pk_test_your_stripe_publishable_key # Zoom ZOOM_CLIENT_ID=your_zoom_client_id ZOOM_CLIENT_SECRET=your_zoom_client_secret # JWT Secret JWT_SECRET=your_jwt_secret_key_here_change_this_in_production # Application Settings DEBUG=true LOG_LEVEL=INFO CORS_ORIGINS=http://localhost:3000,http://127.0.0.1:3000 # Server Configuration HOST=0.0.0.0 PORT=8000 # LanceDB Configuration LANCE_DB_PATH=./data/lancedb # Email Service Configuration EMAIL_SERVICE_ENABLED=false EMAIL_PROVIDER=mailgun MAILGUN_API_KEY=your_mailgun_api_key_here MAILGUN_DOMAIN=your_mailgun_domain_here SOURCE_EMAIL=noreply@atom.ai # Development Settings USE_MOCK_DATA=true ENABLE_OAUTH_DEMO=true # ============================================================================== # Marketplace Connection (Atom SaaS) # ============================================================================== # Marketplace API URL (Public Atom SaaS) # Get your API token from: https://atomagentos.com/dashboard/settings/api-tokens # Default: https://atomagentos.com MARKETPLACE_API_URL=https://atomagentos.com # Marketplace API Token # Required for marketplace sync # Format: at_saas_xxxxx MARKETPLACE_API_TOKEN=your_marketplace_token_here # Enable marketplace sync # Default: false (opt-in for privacy) MARKETPLACE_SYNC_ENABLED=false # Sync interval in minutes # Default: 15 (range: 5-60) MARKETPLACE_SYNC_INTERVAL_MINUTES=15 # Rating sync interval in minutes # Default: 30 (range: 10-120) MARKETPLACE_RATING_SYNC_INTERVAL_MINUTES=30 # Conflict resolution strategy # Options: remote_wins, local_wins, merge, manual # Default: remote_wins (recommended) MARKETPLACE_CONFLICT_STRATEGY=remote_wins # WebSocket URL for real-time marketplace updates # Default: wss://atomagentos.com/ws MARKETPLACE_WS_URL=wss://atomagentos.com/ws # WebSocket reconnection attempts # Default: 10 MARKETPLACE_WS_RECONNECT_ATTEMPTS=10 # WebSocket heartbeat interval in seconds # Default: 30 MARKETPLACE_WS_HEARTBEAT_INTERVAL=30 # Federation API Key (for cross-instance agent sharing) # Optional: For private instance federation # Generate with: python -c "import secrets; print(secrets.token_urlsafe(32))" FEDERATION_API_KEY=