From 6132e6263e77ff799586604ae55d0a95fe011832 Mon Sep 17 00:00:00 2001 From: ArthurErlich Date: Thu, 3 Sep 2026 20:28:21 +0200 Subject: [PATCH] docs: fix gateway hostname to proxy-ai.home/proxy-ai.haylan.ch Docs said proxy.ai.home (dot) throughout, but the actual NPM Proxy Host is proxy-ai.home (hyphen) - confirmed with the user, who already has the reverse proxy pointing :4000 at http://proxy-ai.home/. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01VPZ6TogJiYxG8E4EQBB197 --- README.md | 2 +- docs/coding-cli-setup.md | 2 +- docs/network-access.md | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index f9d136b..846e4d7 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Pointing Claude Code CLI, Kimi CLI, or OpenCode CLI at the local endpoint: see [ An [AI gateway/proxy](https://git.arthurerlich.de/haylan/LLM-Server/issues/9) fronts llama.cpp: per-workload API keys and usage tracking. As of [issue #31](https://git.arthurerlich.de/haylan/LLM-Server/issues/31) this is [OmniRoute](https://github.com/diegosouzapw/OmniRoute), replacing the original LiteLLM setup. `./scripts/update.sh` handles most of OmniRoute's secrets (see `.env.example`); per-workload API keys still need minting by hand in the dashboard — see [`docs/proxy-key-onboarding.md`](docs/proxy-key-onboarding.md). -- Gateway API: `http://:${OMNIROUTE_PORT:-4000}/v1` locally, or `proxy.ai.home` / `proxy.ai.haylan.ch` once routed through NPM — see [`docs/network-access.md`](docs/network-access.md). +- Gateway API: `http://:${OMNIROUTE_PORT:-4000}/v1` locally, or `proxy-ai.home` / `proxy-ai.haylan.ch` once routed through NPM — see [`docs/network-access.md`](docs/network-access.md). - Dashboard (key/provider management): LAN/host-only, never published to the internet — see `docs/network-access.md`. - Issuing a key for a new workload: [`docs/proxy-key-onboarding.md`](docs/proxy-key-onboarding.md). diff --git a/docs/coding-cli-setup.md b/docs/coding-cli-setup.md index 5d5b8e4..8e9f34f 100644 --- a/docs/coding-cli-setup.md +++ b/docs/coding-cli-setup.md @@ -7,7 +7,7 @@ This stack routes through the [AI gateway](https://git.arthurerlich.de/haylan/LL Both serve the same underlying model — `Qwen3.8-27B-UD-Q4_K_XL.gguf`, registered in the gateway (naming is yours to pick when adding the llama-cpp provider connection — this doc assumes `qwen3.8-27b-local` for continuity) — behind whichever wire format the client speaks. -`` is this machine's LAN address, or `proxy.ai.home` if your local DNS resolves that hostname directly to the box — see `docs/network-access.md`. If you're running a coding CLI from this machine itself, `localhost` works too. +`` is this machine's LAN address, or `proxy-ai.home` if your local DNS resolves that hostname directly to the box — see `docs/network-access.md`. If you're running a coding CLI from this machine itself, `localhost` works too. **Each CLI needs its own virtual key** — create one per docs/proxy-key-onboarding.md (omniroute's dashboard, `-` naming, e.g. `claude-code-cli`, `kimi-cli`, `opencode-cli`). No budget set by default. These are the machine's interactive/high-priority workloads per `docs/proxy-request-priority.md`. diff --git a/docs/network-access.md b/docs/network-access.md index 4f9e4f3..5dffaa8 100644 --- a/docs/network-access.md +++ b/docs/network-access.md @@ -1,4 +1,4 @@ -# Network access: proxy.ai.home / proxy.ai.haylan.ch +# Network access: proxy-ai.home / proxy-ai.haylan.ch This stack has no chat UI — every client is a coding CLI reaching the AI gateway (OmniRoute). It doesn't run its own reverse proxy — it publishes the gateway's API port to the host and relies on the **existing Nginx Proxy Manager (NPM)** instance already fronting other self-hosted services on this network. @@ -8,11 +8,11 @@ The inference API (port `${LLAMA_PORT:-8080}`) is **not** registered in NPM and If you later want external CLI access too, that's a deliberate scope change — see the map ([issue #1](https://git.arthurerlich.de/haylan/LLM-Server/issues/1)) before doing it, since it changes the security posture. -## The AI gateway (OmniRoute) — `proxy.ai.home` / `proxy.ai.haylan.ch` +## The AI gateway (OmniRoute) — `proxy-ai.home` / `proxy-ai.haylan.ch` As of [issue #31](https://git.arthurerlich.de/haylan/LLM-Server/issues/31) (migrated from LiteLLM), the gateway is OmniRoute: -- **`proxy.ai.home`** and **`proxy.ai.haylan.ch`** both point only at `${OMNIROUTE_PORT:-4000}` — the API port. Set up as two NPM Proxy Hosts pointing at this machine's LAN IP on that port; `ai.home` internal-only, `ai.haylan.ch` external via the DMZ already forwarding to NPM (let NPM issue/manage the TLS cert as usual). +- **`proxy-ai.home`** and **`proxy-ai.haylan.ch`** both point only at `${OMNIROUTE_PORT:-4000}` — the API port. Set up as two NPM Proxy Hosts pointing at this machine's LAN IP on that port; `proxy-ai.home` internal-only, `proxy-ai.haylan.ch` external via the DMZ already forwarding to NPM (let NPM issue/manage the TLS cert as usual). - The **dashboard** (`${OMNIROUTE_DASHBOARD_PORT:-20128}`) is never registered in NPM at all, and `docker-compose.yml` never publishes that port to the host either — it manages every workload's keys, so it doesn't belong on the public internet, same reasoning as LiteLLM's old `/ui`. Unlike LiteLLM, OmniRoute's split-port mode means this is structural (no network route exists) rather than an NPM path-deny rule that has to be maintained and could be misconfigured. Reach the dashboard only from the host itself or over SSH port-forward. **Every gateway call already requires a valid API key** (Bearer token, see `docs/proxy-key-onboarding.md`), so no extra NPM-level auth is needed for the external hostname.