--- 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 endpoint `frank-dragoon` (`:7770`) is a ROCmFPX llama.cpp fork serving the kingjones Qwen3.8-Flash-Next-ROCmFP4-STRIX GGUF on the card's pinned runtime; an NPU endpoint (`frank-npu`, `:7771`, FLM v1.0.1) serves sight+sound models. The completion endpoint `frank-medium` (ROCmFPX llama.cpp, `:7770`) runs on 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[llama.cpp dankserver :7770] O --> H[Hermes] O --> E[frank-dragoon :7770] ``` ## 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` | [[deployment]] | | frank-npu (host service) | — | `7771` (`/v1/version` health) | [[frank-npu]] | | frank-medium (host service, Dankserver) | — | `7770` | [[frank-medium-rocmfpx]] | The LLM rows are bare-metal systemd services, not containers. This repo owns their scripts, units, and knowledge base (see [LLM fleet knowledge base](../LLM/index.md)). Current mapping (2026-09-03): `frank-dragoon` runs the kingjones Qwen3.8-Flash-Next-ROCmFP4-STRIX GGUF on the card's pinned `kingjones30/ROCmFPX` llama.cpp build; `frank-npu` runs FLM v1.0.1 on the XDNA2 NPU; `frank-medium` runs charlie12345/ROCmFPX llama.cpp serving kingjones777/Qwen3.8-27B-ROCmFPX-Q8_0-AGENT-GGUF on Dankserver. ## 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 - [[index]] — repository index - [[Network Architecture]] — routing and proxy - [[Observability]] — Grafana, Prometheus, logs - [LLM fleet knowledge base](../LLM/index.md) — the model-serving endpoints on this host