# Setup Guide Quick setup instructions for DeerFlow. ## Configuration Setup DeerFlow uses a YAML configuration file that should be placed in the **project root directory**. ### Steps 1. **Navigate to project root**: ```bash cd /path/to/deer-flow ``` 2. **Copy example configuration**: ```bash cp config.example.yaml config.yaml ``` 3. **Edit configuration**: ```bash # Option A: Set environment variables (recommended) export OPENAI_API_KEY="your-key-here" # Option B: Edit config.yaml directly vim config.yaml # or your preferred editor ``` 4. **Verify configuration**: ```bash cd backend python -c "from src.config import get_app_config; print('✓ Config loaded:', get_app_config().models[0].name)" ``` ## Important Notes - **Location**: `config.yaml` should be in `deer-flow/` (project root), not `deer-flow/backend/` - **Git**: `config.yaml` is automatically ignored by git (contains secrets) - **Priority**: If both `backend/config.yaml` and `../config.yaml` exist, backend version takes precedence ## Configuration File Locations The backend searches for `config.yaml` in this order: 1. `DEER_FLOW_CONFIG_PATH` environment variable (if set) 2. `backend/config.yaml` (current directory when running from backend/) 3. `deer-flow/config.yaml` (parent directory - **recommended location**) **Recommended**: Place `config.yaml` in project root (`deer-flow/config.yaml`). ## Troubleshooting ### Config file not found ```bash # Check where the backend is looking cd deer-flow/backend python -c "from src.config.app_config import AppConfig; print(AppConfig.resolve_config_path())" ``` If it can't find the config: 1. Ensure you've copied `config.example.yaml` to `config.yaml` 2. Verify you're in the correct directory 3. Check the file exists: `ls -la ../config.yaml` ### Permission denied ```bash chmod 600 ../config.yaml # Protect sensitive configuration ``` ## See Also - [Configuration Guide](docs/CONFIGURATION.md) - Detailed configuration options - [Architecture Overview](CLAUDE.md) - System architecture