--- title: 'Environment Variables' description: 'Configure MCPHub using environment variables' --- # Environment Variables MCPHub uses environment variables for configuration. This guide covers all available variables and their usage. ## Core Application Settings ### Server Configuration | Variable | Default | Description | | --- | --- | --- | | `PORT` | `3000` | Port number for the HTTP server | | `INIT_TIMEOUT` | `300000` | Initial timeout for the application | | `BASE_PATH` | `''` | The base path of the application | | `READONLY` | `false` | Set to `true` to enable readonly mode | | `MCPHUB_SETTING_PATH` | | Path to the MCPHub settings | | `NODE_ENV` | `development` | Application environment (`development`, `production`, `test`) | ```env PORT=3000 INIT_TIMEOUT=300000 BASE_PATH=/api READONLY=true MCPHUB_SETTING_PATH=/path/to/settings NODE_ENV=production ``` ## Authentication & Security ### JWT Configuration | Variable | Default | Description | | --- | --- | --- | | `JWT_SECRET` | - | Secret key for JWT token signing (required) | ```env JWT_SECRET=your-super-secret-key-change-this-in-production ``` ## Configuration Examples ### Development Environment ```env # .env.development NODE_ENV=development PORT=3000 # Auth JWT_SECRET=dev-secret-key ``` ### Production Environment ```env # .env.production NODE_ENV=production PORT=3000 # Security JWT_SECRET=your-super-secure-production-secret ``` ### Docker Environment ```env # .env.docker NODE_ENV=production PORT=3000 # Security JWT_SECRET_FILE=/run/secrets/jwt_secret ``` ## Environment Variable Loading MCPHub loads environment variables in the following order: 1. System environment variables 2. `.env.local` (ignored by git) 3. `.env.{NODE_ENV}` (e.g., `.env.production`) 4. `.env` ### Using dotenv-expand MCPHub supports variable expansion: ```env BASE_URL=https://api.example.com API_ENDPOINT=${BASE_URL}/v1 ``` ## Security Best Practices 1. **Never commit secrets** to version control 2. **Use strong, unique secrets** for production 3. **Rotate secrets regularly** 4. **Use environment-specific files** 5. **Validate all environment variables** at startup 6. **Use Docker secrets** for container deployments