Frank 4fa9fdf36e SearXNG: stop rate-limiting local subagents (pass_ip covers slirp/loopback)
Root cause of the 429s: the ip_limit rate limiter caps JSON (format!=html)
requests at API_MAX=4 per IP per hour, and that constant is hardcoded in
Python (searx/botdetection/ip_limit.py), not settable in limiter.toml. The
only bypass is pass_ip (filter_request returns before ip_limit runs).

Rootless podman strips the client IP on published-port hits, so the container
sees a slirp/bridge source (10.88.x/10.89.x), never the real client - hence
even a LAN-IP curl 429'd on /search. Expand pass_ip to loopback + the host's
private podman/slirp ranges (plus the existing LAN) so local subagents present
a trusted source and skip the rate limit entirely. All these ranges are
reachable only from the host or LAN, never the internet.
2026-08-19 12:29:27 -07:00

Server App Configs

Podman deployment configuration for two homelab servers: Dankserver and Dankclaw.

Targets

Host User IP Stack
dankclaw dank 192.168.0.143 AI, search, development, observability
dankserver dank 192.168.0.235 media and library

Active Services

Service Host Hostname Port
RomM dankserver romm.dankserver.local 8085
Copyparty dankserver files.dankserver.local 3923
Calibre-Web dankserver books.dankserver.local 8083
SearXNG dankclaw search.dankclaw.local 8081
ComfyUI dankclaw comfyui.dankclaw.local 8188
OpenWebUI dankclaw chat.dankclaw.local 3000
Hermes dankclaw hermes.dankclaw.local 8090
Gitea dankclaw gitea.dankclaw.local 3001
Grafana dankclaw grafana.dankclaw.local 3002
Prometheus dankclaw prometheus.dankclaw.local 9090

Structure

  • dankserver/ — compose.yaml + Caddyfile + .env.example for the Dankserver stack
  • dankclaw/ — compose.yaml + Caddyfile + .env.example for the Dankclaw stack
  • shared/ — homepage, prometheus config, deploy helpers
  • scripts/ — deploy.sh and stack control scripts
  • docs/ — project knowledge base (Obsidian vault, wikilinks)
  • tests/ — bats test suite (see Testing Policy)

Deployment

See [docs/Architecture/Deployment Flow.md](docs/Architecture/Deployment Flow.md). Run ./scripts/deploy.sh <dankclaw|dankserver> after pushing committed changes.

Knowledge Base

The docs/ directory is an Obsidian vault. Start at docs/index.md.

Testing

Run ./tests/run.sh before every push. See [docs/Architecture/Testing Policy.md](docs/Architecture/Testing Policy.md).

Also See

  • vllmScripts (local: ../vllmScripts) — the model-serving scripts this stack consumes: frank-default-large (llama.cpp PP head, :7770, backend of OpenWebUI) and frank-default-small (FastFlowLM NPU, :52625)
S
Description
Podman deployment configs for Dankserver and Dankclaw
Readme
8.2 MiB
Languages
Shell 60.4%
Python 21%
HTML 6.2%
Jinja 3.9%
C++ 3.9%
Other 4.6%