This guide details how to configure the LLM over DNS server using environment variables and .env files.
The server supports four ways to load configurations, resolved in order of priority:
.env.local File (Local-only gitignored overrides).env File (Shared environment defaults)The server natively integrates with two major LLM API gateway providers: AnyRouter and OpenRouter.
[!TIP] AnyRouter is the highly recommended default because it is built for high speed, low latency, native OpenAI/Anthropic compatibility, and resilient model fallback lists.
To configure the server to route requests through the AnyRouter gateway, simply set ANYROUTER_API_KEY. If this key is present, the server automatically switches the base completion endpoint and defaults to optimized AnyRouter models.
ANYROUTER_API_KEY (Required for AnyRouter)
sk-ar-v1-...ANYROUTER_API_KEY=sk-ar-v1-yourkeyhere
ANYROUTER_MODEL (Optional)
google/gemini-2.5-flash-lite,meta/llama-3.2-3b-instructANYROUTER_MODEL=google/gemini-2.5-flash-lite,meta/llama-3.2-3b-instruct
If ANYROUTER_API_KEY is not set, the server falls back to using OpenRouter.
OPENROUTER_API_KEY (Required if using OpenRouter)
sk-or-v1-...OPENROUTER_API_KEY=sk-or-v1-yourkeyhere
OPENROUTER_MODEL (Optional)
nvidia/nemotron-nano-9b-v2:free,meituan/longcat-flash-chat:free,minimax/minimax-m2:freeOPENROUTER_MODEL=nvidia/nemotron-nano-9b-v2:free
DNS_PORT or PORT (Optional)
PORT takes precedence over DNS_PORT if both are set).53 (Requires standard root privileges on Linux/macOS).5454 or 5353 for local non-root development.DNS_PORT=5454
DNS_ADDRESS or HOST (Optional)
HOST takes precedence).0.0.0.0 (listens on all network interfaces).127.0.0.1 (localhost only).DNS_ADDRESS=127.0.0.1
RUST_LOG (Optional)
infotrace, debug, info, warn, errorRUST_LOG=info,llm_over_dns=debug
| Variable | Precedence Fallback | Default Value | Description |
|---|---|---|---|
ANYROUTER_API_KEY |
None | None | Primary AnyRouter API key. Set this to activate AnyRouter. |
OPENROUTER_API_KEY |
None | None | OpenRouter API key. Used if ANYROUTER_API_KEY is empty. |
ANYROUTER_MODEL |
None | google/gemini-2.5-flash-lite,meta/llama-3.2-3b-instruct |
List of models used in fallback order for AnyRouter. |
OPENROUTER_MODEL |
None | nvidia/nemotron-nano-9b-v2:free,meituan/longcat-flash-chat:free... |
List of fallback models for OpenRouter. |
DNS_PORT |
PORT |
53 |
Listening port for UDP DNS server. |
DNS_ADDRESS |
HOST |
0.0.0.0 |
IP binding address. |
RUST_LOG |
None | info |
Logging verbosity filter. |
.env: Make sure .env and .env.local are explicitly added to .gitignore. Never commit keys to a shared VCS..env file secure:
chmod 600 .env