# Search stack operator notes Live stack path on PD: - `/mnt/docker-ssd/docker/compose/search` Live SearXNG config path on PD: - `/mnt/tank/docker/appdata/searxng/settings.yml` Known update-sensitive points: 1. Firecrawl containers share Gluetun's network namespace. - `firecrawl-playwright-service` and `firecrawl-api` run with `network_mode: service:search-gluetun`. - If `search-gluetun` is recreated during an update, those containers must be recreated too or they can die with namespace errors like: - `joining network namespace of container ... No such container` - `getaddrinfo EAI_AGAIN firecrawl-redis` - The compose file now uses long-form `depends_on` with `restart: true` so explicit Compose updates to `search-gluetun` also restart the Firecrawl dependents. 2. SearXNG upstream can ship config drift. - After an image update, compare `/mnt/tank/docker/appdata/searxng/settings.yml` against `/mnt/tank/docker/appdata/searxng/settings.yml.new`. - Merge upstream changes deliberately instead of overwriting local behavior blindly. - One confirmed breakage was an obsolete `ask` engine stanza lingering in the live settings after upstream removed that engine module; the fix was to remove the stale stanza and restart `searxng`. Basic verification after updates: - `sudo -n docker compose -f /mnt/docker-ssd/docker/compose/search/docker-compose.yaml ps` - `curl -sS "http://127.0.0.1:8888/search?q=test&format=json" | head` - `curl -sS http://127.0.0.1:3302/` - optional functional scrape smoke test: - POST `{"url":"https://example.com"}` to `http://127.0.0.1:3302/v1/scrape` Rollback-first notes: - Back up `docker-compose.yaml` before live edits under `/home/truenas_admin/doris-backups/` - Back up `settings.yml` before SearXNG config edits under `/home/truenas_admin/doris-backups/` - If a Compose-side update breaks the stack and quick repair fails, restore the previous compose/config files and `docker compose up -d` the search stack again. AI maintenance flow: - Homelab Docker maintenance is seeded into the Hermes `homelab` kanban board on a daily cadence. - The maintenance lane should treat this stack as update-sensitive and must run the verification commands above after any search-stack image change. - If the stack cannot be repaired quickly after an update, roll back first, then leave the exact failure evidence in the kanban task so alerts route cleanly.