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.
78 lines
4.1 KiB
Markdown
78 lines
4.1 KiB
Markdown
---
|
|
type: reference
|
|
title: Dankclaw Stack
|
|
description: Service inventory and routing overview for the Dankclaw AI, development, and observability host.
|
|
tags:
|
|
- dankclaw
|
|
- services
|
|
- containers
|
|
- caddy
|
|
timestamp: 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).
|
|
|
|
```mermaid
|
|
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
|