# QueryWeaver example environment file # Copy this to `.env` and edit values before running the app or the Docker image: # # cp .env.example .env # # edit .env # # Minimal required variables for a basic run (these are left uncommented below): # - FASTAPI_SECRET_KEY (REQUIRED) # - FALKORDB_URL (REQUIRED) — preferred single connection string for FalkorDB # # Optional (commented) variables are provided as examples; uncomment and set them # only if you need the functionality (OAuth, AI keys, local host/port overrides, etc.). # ----------------------------- # Application / Server settings # ----------------------------- # REQUIRED: secret used by FastAPI session middleware — change this before running in production FASTAPI_SECRET_KEY=your_super_secret_key_here # Optional: enable debug/reload when running the app directly # FASTAPI_DEBUG=False # Optional: set application environment (development, staging, production) # Default: development # APP_ENV=development # General prefix for graph names used for Demo Graphs # GENERAL_PREFIX=your_general_prefix_here # Optional: allow OAuth over HTTP in development (disable in production) # OAUTHLIB_INSECURE_TRANSPORT=1 # ----------------------------- # FalkorDB connection (REQUIRED / preferred) # ----------------------------- # Preferred: single connection URL. Edit to point at your FalkorDB/Redis instance. # Example: redis://localhost:6379/0 FALKORDB_URL=redis://localhost:6379/0 # REQUIRED - change to your FalkorDB URL # Optional: separate host/port settings for local testing (only used if FALKORDB_URL is not set) # FALKORDB_HOST=localhost # FALKORDB_PORT=6379 # ----------------------------- # API / secret tokens # ----------------------------- # Optional: static bearer token for internal / programmatic API access. # When set, this token is accepted as a "master" API key. # When unset, only user-generated tokens are accepted. # SECRET_TOKEN_ERP=your_erp_token # ----------------------------- # AI / LLM configuration (optional) # ----------------------------- # QueryWeaver supports multiple AI providers. Set ONE of the following API keys. # Provider selection precedence (first match wins): # OLLAMA_MODEL > OPENAI_API_KEY > GEMINI_API_KEY > ANTHROPIC_API_KEY > COHERE_API_KEY > Azure (fallback) # # Optional: Override the default models (both must be from the SAME provider): # COMPLETION_MODEL=provider/model-name # EMBEDDING_MODEL=provider/model-name # # IMPORTANT: The provider must match your API key. If you set gemini/* models, # you must have GEMINI_API_KEY set. Mismatched overrides may cause runtime errors. # # Examples (using Gemini - requires GEMINI_API_KEY): # COMPLETION_MODEL=gemini/gemini-3-pro-preview # EMBEDDING_MODEL=gemini/gemini-embedding-001 # Examples (using OpenAI - requires OPENAI_API_KEY): # COMPLETION_MODEL=openai/gpt-4.1 # EMBEDDING_MODEL=openai/text-embedding-ada-002 # OpenAI - uses openai/gpt-4.1 and openai/text-embedding-ada-002 # OPENAI_API_KEY=your_openai_api_key # Google Gemini - uses gemini/gemini-3-pro-preview and gemini/gemini-embedding-001 # GEMINI_API_KEY=your_gemini_api_key # Anthropic - uses anthropic/claude-sonnet-4-5-20250929 # Note: Anthropic has no native embeddings. You MUST also set one of: # VOYAGE_API_KEY or EMBEDDING_MODEL for embeddings (startup fails otherwise). # ANTHROPIC_API_KEY=your_anthropic_api_key # VOYAGE_API_KEY=your_voyage_api_key # Optional: for Voyage AI embeddings with Anthropic # Cohere - uses cohere/command-a-03-2025 and cohere/embed-v4.0 # COHERE_API_KEY=your_cohere_api_key # COHERE_MODEL=command-a-03-2025 # COHERE_EMBEDDING_MODEL=embed-v4.0 # Local open-source model via Ollama (through LiteLLM) # OLLAMA_MODEL=llama3.1 # OLLAMA_EMBEDDING_MODEL=nomic-embed-text # OLLAMA_API_BASE=http://localhost:11434 # Azure OpenAI (default fallback) - uses azure/gpt-4.1 and azure/text-embedding-ada-002 # AZURE_API_KEY=your_azure_api_key # AZURE_API_BASE=https://your-resource.openai.azure.com/ # AZURE_API_VERSION=2023-05-15 # ----------------------------- # OAuth configuration (optional — uncomment to enable login flows) # ----------------------------- # Google OAuth # GOOGLE_CLIENT_ID=your_google_client_id # GOOGLE_CLIENT_SECRET=your_google_client_secret # GitHub OAuth # GITHUB_CLIENT_ID=your_github_client_id # GITHUB_CLIENT_SECRET=your_github_client_secret # If your OAuth app uses a different base URL than the request base (e.g., using 127.0.0.1 vs localhost) # you can override the base used for building callback URLs. Example: # OAUTH_BASE_URL=http://localhost:5000 # ----------------------------- # Email Configuration (optional - for sending invitation emails) # ----------------------------- # MAIL_SERVER=smtp.mailgun.org # MAIL_PORT=587 # MAIL_USE_TLS=True # MAIL_USERNAME=your_mail_username # MAIL_PASSWORD=your_mail_password # MAIL_DEFAULT_SENDER=noreply@yourdomain.com # EMAIL_AUTH_ENABLED=false # ----------------------------- # Frontend / analytics (optional) # ----------------------------- # Google Tag Manager ID (optional) # GOOGLE_TAG_MANAGER_ID=GTM-XXXXXXX # ----------------------------- # Memory TTL (optional) # ----------------------------- # Set a TTL (in seconds) on per-user memory graphs so they auto-expire. # When unset, memory graphs persist indefinitely. # Example: 604800 = 1 week # MEMORY_TTL_SECONDS=604800 # ----------------------------- # Optional MCP (Model Context Protocol) settings # ----------------------------- # Control QueryWeaver's built-in MCP endpoints (default: enabled) # Set to "true" to disable mounting the MCP HTTP surface without editing code # DISABLE_MCP=false # Notes # ----------------------------- # - Keep secrets out of source control. Use your local `.env` (ignored by git) or a secrets manager in production. # - For Docker runs, pass `--env-file .env` to `docker run` or provide individual `-e` args. # - See api/config.py for additional runtime configuration defaults and model overrides.