fix(headroom): support Docker sidecar proxy

Treat configured Headroom proxy as running when its /health endpoint
responds, even if local headroom CLI is not installed. Dashboard
Start/Stop stays limited to local loopback proxies while external
Docker sidecars can be enabled via HEADROOM_URL.

Closes #1948

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Carmelo Campos
2026-06-21 16:03:26 +07:00
committed by decolua
parent 096491d8d7
commit 50ed79fe9e
8 changed files with 140 additions and 40 deletions

View File

@@ -64,6 +64,34 @@ docker run -d \
decolua/9router:latest
```
## Optional Headroom sidecar
The 9Router image does not bundle Python or Headroom. To use Headroom in Docker, run it as a separate service and point 9Router at that proxy:
```yaml
services:
9router:
image: decolua/9router:latest
ports:
- "20128:20128"
volumes:
- "$HOME/.9router:/app/data"
environment:
DATA_DIR: /app/data
HEADROOM_URL: http://headroom:8787
depends_on:
- headroom
headroom:
image: ghcr.io/chopratejas/headroom:latest
ports:
- "8787:8787"
```
In the dashboard, open `Endpoint``Token Saver``Headroom`, confirm the URL is `http://headroom:8787`, recheck status, then enable Headroom.
If Headroom runs on the Docker host instead of as a sidecar, use `http://host.docker.internal:8787` on macOS/Windows. On Linux, add `--add-host=host.docker.internal:host-gateway` or the equivalent compose `extra_hosts` entry.
## Update to latest
```bash