Files
serverAppConfigs/docs/Dankclaw/Dankclaw Stack.md
T
Frank 8660209c35 caddy + pihole: make both boot-persistent and self-healing
Caddy left compose.yaml for a quadlet unit (caddy.service): joins
dankclaw_default for container-name upstreams, Pull=never for the local-only
image, Porkbun credentials via /home/dank/Containers/caddy/env written by
deploy from .env, bare-IP-catch-all health check. deploy_caddy installs,
enables, and starts the unit after retiring the bare container (state is in
host volumes).

Pi-hole: the repo now owns the sysctl drop-in
(dankclaw/pihole/sysctl/99-dnsmasq.conf, ip_unprivileged_port_start=53);
deploy_pihole installs it to /etc/sysctl.d/, stages conflicting later-sorted
drop-ins in the home trash, and applies 'sysctl --system' (the boot code
path). This fixes the 2026-08-26 crash loop (port-53 bind denied, restart
counter 1645) caused by a second drop-in resetting the value to 80.

Tests: new caddy_quadlet.bats seam; caddyfile/deployment_flow assertions
repointed from the removed compose service to the quadlet; pihole.bats pins
the sysctl drop-in and its deployment; test-changed.sh routes dankclaw/caddy/
and the pihole subtree to their seams. Docs: Caddy, Pi-hole, Dankclaw Stack,
work log.
2026-08-26 19:52:57 -07:00

3.3 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.
dankclaw
services
containers
caddy
2026-08-26

Dankclaw Stack

Dankclaw (192.168.0.143) runs the AI, search, and development stack. It hosts the LLM inference endpoint (frank-default-large, :7770, CIRU ROCmFPX llama.cpp), the agent tools, the privacy search, and the observability stack. The llama.cpp endpoint (frank-default-small, :7770) runs on 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[llama.cpp dankserver :7770]
    O --> H[Hermes]
    O --> E[CIRU llama.cpp :7770]

Services

Service Hostname Port Docs
SearXNG search.dankclaw.local 8081 SearXNG
ComfyUI comfyui.dankclaw.local 8188 ComfyUI
OpenWebUI chat.dankclaw.local 3005 OpenWebUI
Hermes hermes.dankclaw.local 8090 Hermes
Gitea gitea.dankclaw.local 3000 Gitea
Grafana grafana.dankclaw.local 3002 Grafana
Prometheus prometheus.dankclaw.local 9090 Prometheus
Homepage dankclaw.local 80/443 —
frank-default-large (host service, Dankclaw) — 7770 deployment
frank-default-small (host service, Dankserver) — 7770 deployment

The last two rows are bare-metal systemd services, not containers. This repo owns their scripts, units, and knowledge base (see docs/LLM/index.md). Current mapping (2026-08-22): frank-default-large runs the CIRU ROCmFPX llama.cpp on Dankclaw; frank-default-small runs the upstream llama.cpp 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