docs(system): the fleet re-read from the boxes, and the math that no longer belongs here
Three pages described the fleet; two of them still described the pre-September arrangement. Re-read live on 2026-10-21 (`/v1/models`, `systemctl`, `lspci`, `nproc`, `resolvectl`): - `system/network.md` called Dankclaw the "large inference model" box and Dankserver the "small" one — that is the topology from before the RTX 3090 moved in September. The served ids today are `frank-archon` on Dankserver:7770 (the main model) and `frank-dragoon` (:7770) + `frank-zealot` (:7771) on Dankclaw. The gateway and the DNS pin were re-read too. - `system/dankserver.md` claimed `frank-medium` is *masked*: the unit file does not exist (`is-enabled` answers `not-found`), which is a different fact with a different remedy. And it claimed 8C/16T: this 7700X exposes **8 threads** (`nproc` = 8), so anything sized for 16 is sized for a machine that is not this one. - `system/dankclaw.md` transcribed the engine's slot/KV/context math — `2×262,144 slots over one 524,288 pool, unquantized f16 K+V, MTP off` — while the live unit says `3x200704 slots over one 602112 pool, f16 K + q8_0 V, MTP armed`, and dragoon's ctx had moved too. That math belongs to the serverAppConfigs runbook the page already names: the unit's `ExecStart` is a wrapper script, so any copy here rots on the next engine change. The page now keeps the contract — id, unit, port, engine family, which GPU, and how to prove it — and disowns the numbers, with the reason stated so the next agent does not re-transcribe them. Also recorded, because it is how this audit nearly missed a stopped service: `curl :7770/v1/models` answered normally while `frank-dragoon.service` sat `inactive` with `Result=exit-code` — the container is running outside systemd. A serving port is not a healthy unit. (Flagged for Frank separately; no production unit was touched.) Refs #64
This commit is contained in:
@@ -11,7 +11,7 @@ tags:
|
||||
generated:
|
||||
by: chief-designer/agent
|
||||
at: 2026-08-26T00:00:00Z
|
||||
verified: 2026-10-19
|
||||
verified: 2026-10-21
|
||||
---
|
||||
|
||||
# Dankclaw
|
||||
@@ -20,10 +20,12 @@ Strix Halo mini-PC carrying the fleet's secondary models and the bulk of the
|
||||
service stack. Two GPU-class devices: the Radeon 8060S iGPU with 119 GiB
|
||||
unified memory, and the RTX 3090 moved over from Dankserver in September 2026.
|
||||
|
||||
## Service Stack (live census, 32 containers, 2026-10-19)
|
||||
## Service Stack
|
||||
|
||||
User-scope Podman Quadlet units (`~/.config/containers/systemd/`) unless
|
||||
noted. Full names; detail pages where they exist.
|
||||
Re-derive the census rather than trusting this table — the stack changes weekly:
|
||||
`podman ps --format '{{.Names}} {{.Ports}}'` (user) plus the root units
|
||||
(`systemctl list-units --all | grep -E 'gitea|caddy|frank'`). User-scope Podman Quadlet units
|
||||
(`~/.config/containers/systemd/`) unless noted. Full names; detail pages where they exist.
|
||||
|
||||
| Group | Containers |
|
||||
|-------|-----------|
|
||||
@@ -47,8 +49,18 @@ noted. Full names; detail pages where they exist.
|
||||
|
||||
| Model ID | Unit | Endpoint | Engine / weights |
|
||||
|----------|------|----------|------------------|
|
||||
| `frank-dragoon` | `frank-dragoon.service` (root) | `:7770` (container `frank-dragoon-halogen`, 7770→8731) | halogen-flash-server container (`ghcr.io/peonist-ai/halogen-flash-server`, digest-pinned) — Quat3rnion NATIVE v2 abliterated Qwen3.8-Flash-Next, MTP spec decode, 2 slots over ONE **401,408**-position pool at ctx **200,704**, vision ON, **Strix Halo iGPU** (unified memory) |
|
||||
| `frank-zealot` | `frank-zealot.service` (root) | `:7771` | llama.cpp (PrismML fork, build 10777) — Ternary-Bonsai-**2-9B** PQ2_0-MTP GGUF (qwen35 hybrid), 2×262,144 slots over one 524,288 pool, **unquantized f16 K+V**, MTP off, mmproj Q8_0 vision, **RTX 3090** |
|
||||
| `frank-dragoon` | `frank-dragoon.service` (root) | `:7770` (container `frank-dragoon-halogen`, 7770→8731) | halogen-flash-server container (`ghcr.io/peonist-ai/halogen-flash-server`, digest-pinned) — Quat3rnion NATIVE v2 abliterated Qwen3.8-Flash-Next, MTP spec decode, vision ON, on the **Strix Halo iGPU** (unified memory) |
|
||||
| `frank-zealot` | `frank-zealot.service` (root) | `:7771` (container `frank-zealot`) | llama.cpp, PrismML fork — Ternary-Bonsai-2-9B PQ2_0-MTP GGUF (qwen35 hybrid) + refusal adapter, mmproj vision, on the **RTX 3090**; flags come from `~/serverAppConfigs/scripts/frank-zealot.env` + `serve-frank-zealot.sh` |
|
||||
|
||||
Slot counts, KV-cache types and context math are deliberately **not** transcribed here: the
|
||||
unit `ExecStart` is a wrapper script and the numbers move with every engine change, so they
|
||||
belong to the serverAppConfigs runbooks named below. What an agent needs from this page is the
|
||||
contract — id, unit, port, engine family, which GPU — and the two commands that prove it live.
|
||||
|
||||
**A serving port is not a healthy unit.** On 2026-10-21 `curl :7770/v1/models` answered
|
||||
normally while `frank-dragoon.service` sat `inactive` with `Result=exit-code`: the container had
|
||||
been started outside systemd. Health is `systemctl is-active frank-dragoon` (root), not the
|
||||
curl.
|
||||
|
||||
Harness-side context windows (`agent/models.yml`): dragoon 155,648,
|
||||
zealot 200,704 per slot. The models.yml display labels "(dankclaw-gpu)" /
|
||||
@@ -62,7 +74,7 @@ curl http://192.168.0.143:7770/v1/models # dragoon
|
||||
curl http://192.168.0.143:7771/v1/models # zealot
|
||||
```
|
||||
|
||||
## Hardware (verified live 2026-10-18)
|
||||
## Hardware (verified live 2026-10-21)
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
|
||||
@@ -9,7 +9,7 @@ tags:
|
||||
- server
|
||||
generated:
|
||||
by: chief-designer/agent
|
||||
verified: 2026-10-18
|
||||
verified: 2026-10-21
|
||||
status: stable
|
||||
---
|
||||
|
||||
@@ -41,7 +41,9 @@ Dankclaw.
|
||||
| **Engine** | radiance, tensor-parallel 2 across both R9700s |
|
||||
| **Context Window** | 200,000 tokens (harness `models.yml`; served pool may differ — see runbook) |
|
||||
|
||||
`frank-medium` (former dual-GPU mid tier) is masked and retired.
|
||||
`frank-medium` (the former dual-GPU mid tier) no longer exists on this box —
|
||||
`systemctl list-unit-files | grep frank-` returns only `frank-archon.service`. It was retired,
|
||||
not masked: on 2026-10-21 `systemctl is-enabled frank-medium` answers `not-found`.
|
||||
|
||||
## Usage
|
||||
|
||||
@@ -59,11 +61,11 @@ curl http://192.168.0.235:7770/v1/chat/completions \
|
||||
-d '{"model":"frank-archon","messages":[{"role":"user","content":"Hello"}],"max_tokens":32}'
|
||||
```
|
||||
|
||||
## Hardware (verified live 2026-10-18)
|
||||
## Hardware (verified live 2026-10-21)
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| **CPU** | AMD Ryzen 7 7700X (8C/16T, Raphael iGPU on board) |
|
||||
| **CPU** | AMD Ryzen 7 7700X — 8 cores, **8 threads exposed** (`nproc` = 8; SMT is not enabled, so do not plan for 16) |
|
||||
| **GPU** | 2× AMD Radeon AI PRO R9700 (Navi 48, 32 GiB each) |
|
||||
| **RAM** | 246 GiB |
|
||||
| **Swap** | effectively none (~0.1 GiB) — the 64 GiB swapfile is on Dankclaw, not here |
|
||||
|
||||
@@ -8,7 +8,7 @@ tags:
|
||||
- systemd-resolved
|
||||
- workstation
|
||||
- unverified
|
||||
verified: 2026-08-28
|
||||
verified: 2026-10-21
|
||||
---
|
||||
|
||||
# Network
|
||||
@@ -23,11 +23,12 @@ bites every Linux workstation with both Wi-Fi and Ethernet plugged in.
|
||||
| Host | IP | Role |
|
||||
|------|----|------|
|
||||
| Router | 192.168.0.1 | DHCP; hands out the DNS server to clients |
|
||||
| Dankclaw | 192.168.0.143 | Pi-hole DNS, Caddy edge, Gitea, large inference model |
|
||||
| Dankserver | 192.168.0.235 | small inference model |
|
||||
| Dankclaw | 192.168.0.143 | Pi-hole DNS, Caddy edge, Gitea, service stack, secondary inference (`frank-dragoon` :7770, `frank-zealot` :7771) |
|
||||
| Dankserver | 192.168.0.235 | Main inference — `frank-archon` on 2× R9700 (TP=2), :7770 |
|
||||
| Clients | DHCP from 192.168.0.0/24 | workstations, phones |
|
||||
|
||||
The router hands clients `192.168.0.143` as their DNS server; Pi-hole answers
|
||||
The router (default gateway `192.168.0.1`, both re-read 2026-10-21) hands clients
|
||||
`192.168.0.143` as their DNS server; Pi-hole answers
|
||||
every `*.franksdank.cloud` name with the LAN address of the box that serves
|
||||
it. Names that resolve to the public WAN address time out on the LAN because
|
||||
the G36 has no NAT loopback — a symptom that looks like "the network is
|
||||
@@ -88,8 +89,8 @@ A single successful `dig` proves nothing on a flapping resolver.
|
||||
|
||||
## Servers
|
||||
|
||||
- [Dankserver](/system/dankserver.md) — small inference model
|
||||
- [Dankclaw](/system/dankclaw.md) — large inference model, DNS, proxy
|
||||
- [Dankserver](/system/dankserver.md) — main model, `frank-archon`
|
||||
- [Dankclaw](/system/dankclaw.md) — secondary models, DNS, edge, forge
|
||||
|
||||
## See Also
|
||||
|
||||
|
||||
Reference in New Issue
Block a user