The vault was 155 pages / 31,210 lines, most of it measurement ledgers for payloads that no longer run. A throughput figure for a runtime nobody operates is not a record: AI moves faster than the vault, so the number is wrong before anyone reads it, and a wrong number in a runbook gets believed. Per the new purpose test in `AGENTS.md` → *Documentation Policy*, it is destroyed. Gone (`.AGENTTRASH/20261019-destruction/`, KILL-LIST.txt is the manifest): - the `frank-medium` endpoint and its five era pages, `frank-npu`, FastFlowLM, the ikllama/kingjones/dealign/frank-redo eras, the ling/swift15/freetoken/ubatch campaign pages, qwen3.8 spec-matrix and strix-optimizations, the two "Running Qwen3.6 …" pages; - the whole `Pipeline Parallelism/` folder (no live script passes a pipeline flag) and the multi-device/x4-pair/hybrid/offload experiment pages; - every vLLM page — no vLLM endpoint exists on this fleet; - `LLM/deployment.md` (`Architecture/Deployment Flow.md` is the test-referenced owner) and the external surveys (SGLang, Lemonade, llama.cpp forks/diff, self-hosted app census, the TTS survey) that were obsolete by construction; - `log.md`, 2,380 lines. Git holds the chronology; a causal law belongs to the page that owns the thing it governs, never to a diary. Survivors: 101 pages, 17,542 lines, 0 OKF violations, 0 unresolved links. Eras tables keep the window, payload, runtime, reason and rollback pointer; the rate columns are blanked. The live shapes stay verbatim — those numbers are what the deployer and `models.yml` consume.
4.1 KiB
type, title, description, tags, timestamp
| type | title | description | tags | timestamp | ||||
|---|---|---|---|---|---|---|---|---|
| reference | Dankclaw Stack | Service inventory and routing overview for the Dankclaw AI, development, and observability host. |
|
2026-08-26 |
Dankclaw Stack
Dankclaw (192.168.0.143) runs the AI, search, development, and observability stack. Its LLM inference endpoints are bare-metal host services, not part of the container stack; each has its own page — shape, payload, eras and wire contract live there, nowhere else. See frank-dragoon and frank-zealot (both on this host) and frank-archon (Dankserver, 192.168.0.235).
graph LR
U[User] --> C[Caddy :80/:443]
C --> O[OpenWebUI]
C --> S[SearXNG]
C --> G[Gitea]
C --> F[ComfyUI]
C --> D[Grafana]
S --> V[Gluetun VPN]
O --> L[LLM endpoints]
O --> H[Hermes]
Services
| Service | Vhost (guard status) | Port/route | Docs |
|---|---|---|---|
| SearXNG | search.franksdank.cloud (guarded: Anubis → Authentik) |
published by gluetun at 8081:8080; searxng itself has no published port |
SearXNG |
| ComfyUI | none — LAN-only by construction | 8188 |
ComfyUI |
| OpenWebUI | ai.franksdank.cloud (exempt — own auth) |
3005 → 8080 |
OpenWebUI |
| Hermes | hermes.franksdank.cloud (exempt by construction; internal-only via DNS absence) |
webui 8787; gateway publishes none |
Hermes |
| Gitea | gitea.franksdank.cloud (exempt — git smart HTTP) |
3000, SSH 2222 |
Gitea |
| Grafana | grafana.franksdank.cloud (guarded) |
Caddy routes post-auth to grafana:3000 |
Grafana |
| Prometheus | prometheus.franksdank.cloud (guarded) |
9090 |
Prometheus |
| Loki | loki.franksdank.cloud (guarded; dedicated loki-proxy outpost provider with internal_host = caddy:8017) |
3100 |
Observability |
| Seerr | seerr.franksdank.cloud (guarded) |
Caddy routes post-auth to seerr:5055 |
Seerr |
| Homepage | franksdank.cloud + www. (root site; guarded for admin actions) |
served by Caddy itself from /srv/homepage |
— |
| Pi-hole | pihole.franksdank.cloud (basicauth edge, not the guard chain) |
admin UI 8083; DNS on :53 LAN-wide |
Pi-hole |
| frank-dragoon (host service) | — | 7770 |
frank-dragoon |
| frank-zealot (host service) | — | 7771 |
frank-zealot |
| frank-archon (host service, Dankserver) | — | 7770 |
frank-archon |
The LLM rows are bare-metal systemd services, not containers, and this repo
owns their scripts, units and knowledge base (see
). Which payload and runtime sits on
each port is era state and lives on the endpoint page, not here. frank-npu
(the XDNA2 NPU endpoint) and frank-medium (the predecessor of frank-archon
on the Dankserver port) are both retired — see and
Boot Persistence
The Gitea database and server, the SearXNG trio (gluetun, searxng, valkey), open-webui, Pi-hole, and Caddy run as Quadlet units, so they start at boot. Caddy left compose.yaml on 2026-08-26 after a reboot exposed that bare compose containers never come back; see Caddy for the unit and the incident. The former standalone Gitea Caddy unit is retired. User linger is on. ComfyUI runs as a systemd unit around a bare process. The remaining services in the table are defined in compose.yaml and are not yet boot-persistent — per AGENTS.md (Boot Persistence & Self-Healing) they each need a quadlet before they may be considered reliably deployed.
Deploy the SearXNG trio with scripts/deploy-searxng-quadlet.sh dankclaw, open-webui with scripts/deploy-open-webui-quadlet.sh dankclaw, and Pi-hole with scripts/deploy-pihole-quadlet.sh dankclaw. The Gitea units install to ~/.config/containers/systemd/ (see Gitea); Caddy is deployed through scripts/deploy.sh dankclaw --service caddy.
Routing Rules
- SearXNG outbound traffic exits through the Gluetun VPN container.
- Every other service uses the normal LAN route.
- The homepage lists all services with status.
See Also
- repository index
- Network Architecture — routing and proxy
- Observability — Grafana, Prometheus, logs
- the model-serving endpoints on this host