# Central AI Hub — Configuration & Environment > **Writing Style**: ASD-STE100 Simplified Technical English (`ste-writing`). ## Secrets All secrets come from `~/.config/environment.d/10-secrets.conf` on each machine. Never hard-code a secret. Never commit a secret. Relevant keys: | Key | Use | |---|---| | `OMNIROUTE_API_KEY` | Model calls through OmniRoute. | | `PAPERCLIP_API_KEY` | File jobs to Paperclip. Does not exist yet. | | `TAVILY_API_KEY` | Web search. | | `OL_API_KEY` | Outline docs. | | `VIKUNJA_TOKEN` | Vikunja tasks. | | `GITEA_TOKEN` | Gitea repository. | ## Services and Ports | Service | Host | Port | Use | |---|---|---|---| | OmniRoute | 192.168.20.13 | 20129 | Model gateway. | | Paperclip | 192.168.20.13 | 3100 | Job orchestration. | | Jervis (voice) | 192.168.20.13 | 8501 | Speak and announce. | | Home Assistant | 192.168.20.30 | 8123 | Devices and timers. | | MQTT | 192.168.20.13 | 1883 | Voice topics. | | Apprise | 192.168.20.35 | 8210 | Notifications. | | Hub | not allocated | — | This service. | ## Config Paths - Brief: `hub_brief.md` - Rules: `AGENTS.md` - Docs: `docs/` - Outline context: `docs/outline/` ## Rule A new project gets its own service, its own port, and its own folder. Do not merge a destination into the Hub.