Write down why the GPU port cannot be loopback (V-673)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ESv8hqNPseYt1CnotZpqDz
This commit is contained in:
+1
-1
@@ -102,7 +102,7 @@ Text-to-speech has not moved. piper on homesrv is the only synthesizer.
|
||||
| `mavpoll` | Environment poller: netdata alarms, uptime-kuma, zenmoney, wireguard presence. Writes facts, sends nothing. Telegram is `internal/delivery/telegramsink`. |
|
||||
| `mavcaldav` | CalDAV calendar sync. |
|
||||
| `mavmaild` | Mail reader (IMAP, read-only). Holds the IMAP password, core never sees it. |
|
||||
| `mavgpud` | GPU supervisor. **Runs on workpc**, own unit `deploy/mavgpud.service`. Keeps llama-server loaded while the card is free (V-488). Maven never asks it for anything and reads `/health` through `llm.Pair`. |
|
||||
| `mavgpud` | GPU supervisor. **Runs on workpc**, own unit `deploy/mavgpud.service`. Keeps llama-server loaded while the card is free (V-488). Maven never asks it for anything and reads `/health` through `llm.Pair`. Its LAN port needs a bearer token in the file named by `token_file`, matching `MAVEN_GPU_TOKEN` on homesrv, or it refuses to start (V-673). |
|
||||
| `mavupdate` | Not a daemon. Operator CLI a human runs on the box to deploy a new build. |
|
||||
|
||||
Two binaries have no Makefile target and neither is deployed. `mavseal` encrypts
|
||||
|
||||
@@ -105,6 +105,19 @@ how we find out whether the blind spot is real.
|
||||
untouched. The model, the context size, the layer count and the MTP flags are the
|
||||
owner's business and not this daemon's schema.
|
||||
|
||||
**The port carries a bearer token and cannot be loopback** (V-673). homesrv is
|
||||
the client, so this hop is on the LAN. Until 2026-08-11 anything on the network
|
||||
could spend the card, hold the model resident by touching the idle clock, and
|
||||
read `/slots`, which returns other callers' prompts. mavgpud now reads
|
||||
`token_file` and refuses to start when the listen address is reachable from the
|
||||
network without one. Downgrading to loopback instead would look safe and take
|
||||
the model arm down. Maven sends the same token from `workstation.token`, on the
|
||||
completion and on the `/health` probe alike. An unsigned probe answers 401,
|
||||
which Pair reads as a busy card, so a missing token degrades to the resident
|
||||
model rather than breaking a turn. The proxy also
|
||||
allowlists the five paths Maven calls, so a leaked token buys the model API and
|
||||
not llama-server's admin surface.
|
||||
|
||||
**Every GPU service on that box belongs under this supervisor**, added to
|
||||
`cmd/mavgpud` rather than to systemd beside it. The rule was learned on
|
||||
2026-08-09. The CW2 transcriber ran as its own user unit and registered on the
|
||||
|
||||
Reference in New Issue
Block a user