Good defaults
GOModel uses a good defaults philosophy. This means that the default settings should be enough to use it.How to override the default settings?
We use a three-layer configuration pipeline. Every setting has a sensible default, so you can start the server with zero configuration.Configuration Methods
1. Environment Variables
The most common way to configure GOModel. Set any of the variables below to override defaults.Server
Cache
Storage
Storage is shared by audit logging, usage tracking, and future features like IAM.Audit Logging
Token Usage Tracking
Metrics
HTTP Client
These control timeouts for upstream API requests to LLM providers.Provider API Keys
Set these to automatically register providers. No YAML configuration required.
You can also set a custom base URL for any provider using
<PROVIDER>_BASE_URL (e.g., OPENAI_BASE_URL).
2. .env File
GOModel automatically loads a .env file from the working directory at startup. This is convenient for local development.
.env.template to .env and uncomment the values you need:
Real environment variables always override values from the
.env file. The
.env file is only loaded if it exists — missing it is not an error.3. Configuration File (YAML)
For more complex setups, you can use an optional YAML configuration file. GOModel looks for it in two locations (in order):config/config.yamlconfig.yaml
${VAR} and ${VAR:-default} syntax:
Provider Configuration
Auto-Discovery from Environment Variables
The simplest way to add providers. GOModel checks for well-known API key environment variables and automatically registers providers:YAML Provider Blocks
For more control (custom base URLs, model restrictions, or custom provider names), use the YAML file:Ollama (Local Models)
Ollama does not require an API key. Set the base URL to enable it:Providers with missing or unresolved API keys are automatically filtered out
at startup. Ollama is the only exception — it only requires a base URL.