# ============================================================ # SecureLens AI — Environment Configuration # ============================================================ # Copy this file to .env and fill in your values. # Never commit your actual .env file to version control. # ------------------------------------------------------------ # Application # ------------------------------------------------------------ APP_NAME=SecureLens AI APP_VERSION=1.1.0 DEBUG=true # ------------------------------------------------------------ # Server # ------------------------------------------------------------ HOST=0.0.0.0 PORT=8000 # ------------------------------------------------------------ # CORS — comma-separated list of allowed origins # ------------------------------------------------------------ CORS_ORIGINS=http://localhost:3000,http://localhost:5173 # ------------------------------------------------------------ # Rate Limiting # ------------------------------------------------------------ RATE_LIMIT=30/minute # ------------------------------------------------------------ # Scanner Timeouts (seconds) # ------------------------------------------------------------ SCAN_TIMEOUT=5 PATH_CHECK_TIMEOUT=3 # ------------------------------------------------------------ # Database # ------------------------------------------------------------ DATABASE_URL=postgresql+asyncpg://securelens:securelens@localhost:5433/securelens # ------------------------------------------------------------ # JWT Auth # ------------------------------------------------------------ JWT_SECRET=change-me-in-production-use-a-long-random-string # ------------------------------------------------------------ # AI Provider (LiteLLM — pick ONE of the options below) # ------------------------------------------------------------ # Option 1: Google Gemini (default) AI_MODEL=gemini/gemini-2.0-flash AI_API_KEY=your-gemini-api-key-here # Option 2: OpenAI # AI_MODEL=gpt-4o-mini # AI_API_KEY=your-openai-api-key-here # Option 3: Anthropic Claude # AI_MODEL=claude-3-5-haiku-20241022 # AI_API_KEY=your-anthropic-api-key-here # Option 4: OpenRouter (access to all models with one key) # AI_MODEL=openrouter/google/gemini-2.0-flash-exp:free # AI_API_KEY=your-openrouter-api-key-here # Option 5: Ollama (local, free — no key needed) # AI_MODEL=ollama/llama3.1 # AI_API_KEY= # Legacy: still works for Gemini backward compatibility # GEMINI_API_KEY=your-gemini-api-key-here # ------------------------------------------------------------ # Threat Intelligence (Optional — free tier available) # ------------------------------------------------------------ # VirusTotal: https://www.virustotal.com/ (500 lookups/day free) VIRUSTOTAL_API_KEY= # AbuseIPDB: https://www.abuseipdb.com/ (1000 lookups/day free) ABUSEIPDB_API_KEY= # ------------------------------------------------------------ # Scheduled Scans # ------------------------------------------------------------ # No extra configuration needed. The scheduler starts automatically # with the app and checks every hour for scans that are due. # Users create scheduled scans via POST /scheduled-scans (requires JWT auth). # Webhooks fire automatically if a scheduled scan detects a score drop.