Document auth_token for non-loopback
This commit is contained in:
parent
3c608046e2
commit
960bf8f3e3
4 changed files with 23 additions and 1 deletions
|
|
@ -249,6 +249,13 @@ By default the ingester exposes a FastAPI control plane on
|
||||||
`127.0.0.1:8765`. Set `ingester.api.auth_token` to require a Bearer
|
`127.0.0.1:8765`. Set `ingester.api.auth_token` to require a Bearer
|
||||||
token; without one the API stays open and the service logs a warning.
|
token; without one the API stays open and the service logs a warning.
|
||||||
|
|
||||||
|
!!! warning "Non-loopback binds need a token"
|
||||||
|
Loopback (`127.0.0.1`) is local-only and safe to leave open. If
|
||||||
|
you bind to any other interface (`0.0.0.0`, a LAN IP, behind a
|
||||||
|
reverse proxy) **set `auth_token`** — the control plane can
|
||||||
|
cancel jobs, retry from the DLQ, and trigger source refreshes.
|
||||||
|
The startup warning is your only signal that you forgot.
|
||||||
|
|
||||||
| Method | Path | Purpose |
|
| Method | Path | Purpose |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| `GET` | `/` | browser dashboard (HTML; unauthenticated, the JS attaches the bearer on its own JSON fetches) |
|
| `GET` | `/` | browser dashboard (HTML; unauthenticated, the JS attaches the bearer on its own JSON fetches) |
|
||||||
|
|
@ -276,7 +283,7 @@ ingester:
|
||||||
enabled: true
|
enabled: true
|
||||||
host: 127.0.0.1
|
host: 127.0.0.1
|
||||||
port: 8765
|
port: 8765
|
||||||
auth_token: ${INGESTER_TOKEN} # null → unauthenticated
|
auth_token: secret # null → unauthenticated
|
||||||
```
|
```
|
||||||
|
|
||||||
## Operating
|
## Operating
|
||||||
|
|
|
||||||
|
|
@ -113,6 +113,15 @@ export ANTHROPIC_API_KEY=your-key-here
|
||||||
docker compose up -d
|
docker compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
|
The ingester container binds the control plane to `0.0.0.0` so the host
|
||||||
|
port-mapping works. The example config requires a bearer token via
|
||||||
|
`INGESTER_TOKEN`; set it in `.env` (gitignored) alongside the API keys
|
||||||
|
before bringing the stack up:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
echo "INGESTER_TOKEN=$(openssl rand -hex 32)" >> .env
|
||||||
|
```
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
- [Remote Processing](https://ggozad.github.io/haiku.rag/remote-processing/)
|
- [Remote Processing](https://ggozad.github.io/haiku.rag/remote-processing/)
|
||||||
|
|
|
||||||
|
|
@ -67,6 +67,9 @@ services:
|
||||||
# Logfire emits spans when this is set; stays silent (no telemetry) when unset.
|
# Logfire emits spans when this is set; stays silent (no telemetry) when unset.
|
||||||
# Set LOGFIRE_TOKEN in examples/docker/.env (gitignored) to enable.
|
# Set LOGFIRE_TOKEN in examples/docker/.env (gitignored) to enable.
|
||||||
- LOGFIRE_TOKEN=${LOGFIRE_TOKEN:-}
|
- LOGFIRE_TOKEN=${LOGFIRE_TOKEN:-}
|
||||||
|
# Bearer token the control plane requires when host isn't loopback.
|
||||||
|
# Set INGESTER_TOKEN in examples/docker/.env (gitignored).
|
||||||
|
- INGESTER_TOKEN=${INGESTER_TOKEN:-}
|
||||||
depends_on:
|
depends_on:
|
||||||
docling-serve-1:
|
docling-serve-1:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,9 @@ ingester:
|
||||||
api:
|
api:
|
||||||
# Bind to all interfaces inside the container so docker port-mapping works.
|
# Bind to all interfaces inside the container so docker port-mapping works.
|
||||||
host: 0.0.0.0
|
host: 0.0.0.0
|
||||||
|
# Non-loopback bind: set a bearer token. Source from an env var so the
|
||||||
|
# token doesn't sit in this file checked into ops repos.
|
||||||
|
auth_token: ${INGESTER_TOKEN}
|
||||||
sources:
|
sources:
|
||||||
- type: fs
|
- type: fs
|
||||||
id: docs
|
id: docs
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue