# 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. The `Hub` agent holds this key (id `108c6220-c9e1-4b62-9e0a-6a763e0d28fd`). Key name: `hub-service`. | | `TAVILY_API_KEY` | Web search. | | `OL_API_KEY` | Outline docs. | | `VIKUNJA_TOKEN` | Vikunja tasks. | | `GITEA_TOKEN` | Gitea repository. | | `HUB_TOKEN_PHONE` | Hub token for the phone app. | | `HUB_TOKEN_ESP32` | Hub token for the house voice. | | `HUB_TOKEN_DSH` | Hub token for dsh chat. | | `HUB_TOKEN_CONSOLE` | Hub token for the console portal. | | `HUB_TOKEN_ADMIN` | Hub token for the admin app. The only trusted door. | ## 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 | 192.168.20.13 | 8788 | This service. Allocated 2026-10-10. `HUB_PORT`, default 8788. | > Port 8787 was only a proposal. It is used by the `headroom` container. Port 8788 was free on 2026-10-10 and is the allocated Hub port. ## 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.