Config Builder
Interactive configuration builder for hadrian.toml
Build your hadrian.toml configuration file interactively. Select a section, fill in the fields, and copy or download the generated TOML.
Server
HTTP server configuration.
Allow loopback addresses (127.0.0.1, ::1, localhost) in user-supplied URLs. When false (default), URLs targeting loopback addresses are blocked to prevent SSRF. Enable for development only. Private ranges and cloud metadata endpoints are always blocked regardless of this setting.
Allow private/internal IP ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) in user-supplied URLs. When false (default), URLs resolving to private IPs are blocked to prevent SSRF. Enable for Docker, Kubernetes, or other environments where services communicate over private networks (e.g., Keycloak at `http://keycloak:8080`). Cloud metadata endpoints (169.254.169.254) are always blocked.
Request body size limit in bytes for audio routes (`/v1/audio/transcriptions`, `/v1/audio/translations`). Whisper-style transcription requests can carry tens of megabytes of audio. Defaults to 100 MB.
Request body size limit in bytes (the *global* cap, applied to every request that doesn't have a more specific override). The audio and file upload routes get a higher per-route limit because their payloads are inherently larger than chat completions.
Request body size limit in bytes for `/v1/files` uploads. Defaults to 512 MB so multi-document RAG ingest works without manual tuning. Operators that don't use file uploads should drop this.
Host address to bind to.
Maximum number of per-issuer JWKS endpoints fetched in parallel when warming the gateway JWT validator registry on startup. Higher values speed up startup but risk overwhelming individual IdPs.
Maximum response body size for buffering provider responses (in bytes). This prevents OOM from malicious or malformed provider responses.
Port to listen on.
Maximum request body size for skill uploads (`POST /v1/skills` and version creates) in bytes. Covers zip bundles / multipart directories. Defaults to 64 MB.
Streaming response idle timeout in seconds. This is the maximum time allowed between chunks in a streaming response. If no chunk is received from the upstream provider within this timeout, the stream is terminated. This protects against: - Stalled upstream providers that stop sending data - Connection pool exhaustion from hung streams Set to 0 to disable idle timeout (not recommended). Default: 120 seconds (2 minutes)
Request timeout in seconds.
[server]
host = "0.0.0.0"
port = 8080
[database]
type = "sqlite"
path = "./hadrian.db"
[cache]
type = "memory"
[providers]
default_provider = "ollama"
[providers.ollama]
type = "open_ai"
base_url = "http://localhost:11434/v1"
[ui]
enabled = true
[ui.chat]
enabled = true
[ui.admin]
enabled = true
[docs]
enabled = true