Update CLAUDE.md: add agent stacks (Open WebUI, citadel, varys, sam, searxng), Open WebUI/Citadel gotchas
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -38,8 +38,15 @@
|
||||
| Netbird | `/opt/stacks/netbird/` | 3479/udp STUN |
|
||||
| Caddy (Netbird sidecar) | `/opt/stacks/caddy-netbird/` | 8443/tcp — gRPC proxy for Netbird clients |
|
||||
| Plane | `/opt/stacks/plane/` | 8095 (HTTP, via NPM) |
|
||||
| Flowise | `/opt/stacks/flowise/` | 3010 — AI agent/flow GUI, login: admin / admin@nxm |
|
||||
| Gitea | `/opt/stacks/gitea/` | 3000 (web), 2222 (SSH git) — self-hosted git, infrastructure docs |
|
||||
| Open WebUI | `/opt/stacks/open-webui/` | 3010 — Chat UI for Ollama + MCP (replaced Flowise 2026-05-01) |
|
||||
| agent-sites | `/opt/stacks/sites/` | internal only (proxy network) — nginx:alpine serving /opt/sites/ at agents.nxm.co.za |
|
||||
| hodor-gateway | `/opt/stacks/hodor-gateway/` | 8200 — FastAPI agent gateway, POST /ask → Ollama |
|
||||
| bran-changelog | `/opt/stacks/bran-changelog/` | one-shot container, run.sh + cron 06:00 daily |
|
||||
| citadel-mcp | `/opt/stacks/citadel-mcp/` | 8300 — MCP SSE+HTTP server, tools: list_agents/get_agent_status/get_agent_output/web_search |
|
||||
| varys-monitor | `/opt/stacks/varys-monitor/` | one-shot container, run.sh + cron every 15 min |
|
||||
| sam-research | `/opt/stacks/sam-research/` | 8500 — Research agent, POST /research → SearXNG + Ollama |
|
||||
| searxng | `/opt/stacks/searxng/` | 8600 — Self-hosted search backend (internal only, used by sam + citadel) |
|
||||
|
||||
## Public Subdomains (via NPM + Let's Encrypt)
|
||||
| Subdomain | Internal Target |
|
||||
@@ -136,3 +143,5 @@ If a subdomain isn't resolving internally, check:
|
||||
- NPM (OpenResty) has no gRPC module — Caddy sidecar is the workaround until Traefik migration
|
||||
- Netbird config.yaml contains authSecret + encryptionKey — back this file up, losing it breaks all peers
|
||||
- Servers running Tailscale must run `sudo tailscale set --accept-dns=false` before joining Netbird (Tailscale DNS overrides Unbound and resolves via public IP, breaking gRPC hairpin)
|
||||
- Open WebUI → Citadel MCP: auth_type must be `none` — empty bearer key generates an illegal header and the connection silently fails
|
||||
- Open WebUI connects via Streamable HTTP POST at `http://citadel-mcp:8300/mcp` — do NOT use /sse (Open WebUI 0.9+ only supports POST-based transport)
|
||||
|
||||
Reference in New Issue
Block a user