Files
command-center/omp-docs/system/dankclaw.md
Frank 54bb0202c2 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
2026-10-21 02:22:37 -07:00

106 lines
5.3 KiB
Markdown

---
type: reference
title: Dankclaw
description: Inference and services box at 192.168.0.143 — frank-dragoon (halogen-flash-server, Strix Halo iGPU, :7770) and frank-zealot (llama.cpp on the RTX 3090, :7771), plus Gitea/Caddy/OpenWebUI services.
tags:
- network
- llamacpp
- inference
- server
- comfyui
generated:
by: chief-designer/agent
at: 2026-08-26T00:00:00Z
verified: 2026-10-21
---
# Dankclaw
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
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 |
|-------|-----------|
| Inference (root systemd, not quadlet) | `frank-dragoon` (:7770), `frank-zealot` (:7771) |
| TTS | `frank-tts` (:7772), `frank-tts-engine` (:8880) |
| Git forge | `gitea-server` (:3000/:2222), `gitea-postgres` — see [/tools/gitea/](/tools/gitea/index.md) |
| Web/search | `caddy` (:80/:443, Porkbun build), `searxng` (:8081/:8082 via `gluetun`), `searxng-valkey`, `marreta`, `marreta_browser`, `anubis` (bot shield), `chrome-devtools-protocol` (headless-shell) |
| Identity | `authentik-server` (:9000), `authentik-worker`, `authentik-outpost`, `authentik-outpost-ldap` (:389/:636), `authentik-postgres` |
| Monitoring | `prometheus` (:9090), `grafana` (:3002), `loki`, `alloy`, `alertmanager` (:9093), `node-exporter` — loopback-only ports |
| Media/apps | `open-webui` (:3005), `comfyui` (:8188, ROCm `gfx1151`), `seerr` (:5055), `hermes`/`hermes-webui`/`hermes-dashboard` (:9119), `ntfy` (pubsub), `pihole` (:53 DNS, :8083 admin) |
## Connection Details
| Property | Value |
|----------|-------|
| **Hostname** | dankclaw |
| **IP Address** | 192.168.0.143 (LAN) |
| **Auth** | none required on :7770 (verified 2026-10-18) |
## Inference Services
| 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, 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)" /
"(dankclaw-3090)" predate naming cleanup; the hardware column above is
current. Subagent roles `scout`, `sonic`, `designer`, `librarian`,
`security-reviewer` route to frank-zealot; `reviewer`/`task` run on
frank-archon (Dankserver).
```bash
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-21)
| Property | Value |
|----------|-------|
| **CPU/APU** | AMD Ryzen AI MAX+ 395 (Strix Halo, Radeon 8060S, gfx1151) |
| **dGPU** | NVIDIA GeForce RTX 3090 (moved from Dankserver 2026-09) |
| **RAM** | 121 GiB (mostly usable as GPU unified memory) |
| **Swap** | 64 GiB |
| **OS** | Ubuntu 26.04 LTS, kernel 7.0.0-38-generic |
The pre-rename story (`frank-default-large` on ROCmFPX llama.cpp/CIRU,
262,144-token context) was superseded by the 2026-10-08/09 model-id rename
and the dragoon/zealot engine swaps; the 119→121 GiB RAM figure follows the
live `free` reading.
## Related Knowledge Bases (sibling project)
- **serverAppConfigs** — deployment repo + vault, on this workstation at
`~/Projects/serverAppConfig/` (docs vault: `~/Projects/serverAppConfig/serverAppConfigs-docs/`).
Live runbooks: `LLM/frank-dragoon-flash-server-v2-native.md` and
`LLM/frank-zealot-llama-prism-bonsai2-pq20.md` — deploy-side source of
truth for engines, flags, and restart procedures. Service stack docs under
`Dankclaw/`, `Infrastructure/`.
## See Also
- [dankserver](/system/dankserver.md) — the main-model box (frank-archon)
- [/tools/gitea/index.md](/tools/gitea/index.md) — Gitea stack on this host
- [network](/system/network.md) — Network topology