Files
noema/docs/configuration.md
andy 3de6e53ab0 chore: initialise Noema repository
Foundation for the persistent, inspectable cognitive runtime: README,
implementation plan with phases and risk register, architecture,
security model, threat model, contributing guide, eight ADRs covering
the global workspace, event immutability, memory representation, LLM
abstraction, capability system, authentication, frontend and storage.
Includes Makefile, env example, compose stack (pgvector) and Dockerfile
skeleton, plus a record of the development environment assumptions.
2026-06-12 19:56:53 +01:00

40 lines
1.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Configuration
Precedence (later wins): built-in defaults → JSON file given by `noemad -config path` → environment variables → runtime settings stored in the `settings` table and edited in the UI (only for tunables that are safe to change at runtime).
## Environment variables
| Variable | Default | Purpose |
|---|---|---|
| `NOEMA_HTTP_ADDR` | `127.0.0.1:8080` | Listen address |
| `NOEMA_ENV` | `development` | `production` forces Secure cookies and disables the setup page after bootstrap |
| `NOEMA_LOG_LEVEL` | `info` | debug, info, warn, error |
| `NOEMA_LOG_FORMAT` | `text` | text or json |
| `NOEMA_DATABASE_URL` | – | PostgreSQL DSN (required) |
| `NOEMA_MASTER_KEY` | – | base64 32-byte key for `enc:` secret references |
| `NOEMA_BOOTSTRAP_ADMIN_USER` / `_PASSWORD` | – | Creates the first administrator when no users exist |
| `NOEMA_RESEARCH_DIR` | `./research` | Watched ingestion folder |
| `NOEMA_MAX_WORKERS` | `8` | Cognitive worker pool size |
| `NOEMA_MAX_CONCURRENT_LLM` | `4` | Concurrent model calls |
| `NOEMA_DAILY_TOKEN_BUDGET` | `2000000` | Global hard stop |
## Secret references
Wherever a secret is configured (provider API keys, webhook secrets) the stored value is a reference:
- `env:OPENAI_API_KEY` – read from the environment at use time
- `file:/run/secrets/openai` – read from a file
- `enc:<base64 ciphertext>` – encrypted with `NOEMA_MASTER_KEY` (AES-256-GCM); produced when a secret is typed into the UI
Plaintext secrets are never stored, exported or displayed.
## Config file
The JSON file mirrors the environment variables in lower snake case, e.g.
```json
{ "http_addr": "0.0.0.0:8080", "log_level": "debug", "database_url": "postgres://..." }
```
Secrets should not be placed in the config file; use environment variables or secret files.