Configuration
ZIRI can be configured via config files, environment variables, or both.
Configuration Sources
Configuration is loaded in this order (later sources override earlier ones):
- Defaults - Built-in defaults
- Config file -
config.jsonin the config directory - Environment variables - Override config file values
Config Directory
The config directory location depends on your platform:
- Windows:
%APPDATA%\\ziri\\ - macOS/Linux:
~/.ziri/ - Docker:
/data/(whenCONFIG_DIR=/datais set)
Override with the CONFIG_DIR environment variable in Docker Compose.
Config Files
Files stored in the config directory:
config.json- Server configurationproxy.db- SQLite database.ziri-root-key- Root key for the built-inziriadmin (if not usingZIRI_ROOT_KEY)encryption.key- Encryption key (if not using env var)
Configuration Types
Server Configuration
Host, port, mode, public URL, email settings. See Config File for details.
Environment Variables
Quick overrides for common settings. See Environment Variables for details.
SMTP or SendGrid configuration. See Email Setup for details.
Updating Configuration
Via UI
Use the Config page in the admin UI to update settings. Changes are saved to config.json.
Via API
Use POST /api/config to update configuration programmatically.
Via File
Edit config.json directly. Restart the server for server settings (host, port) to take effect.
Configuration Precedence
Environment variables always override config file values:
# This overrides config.json
Set in Docker Compose environment variablesUseful for Docker and production deployments.
Next Steps
- Environment Variables - Quick reference
- Config File - Detailed config structure
- Email Setup - Email configuration