fix(searxng-docker): pin image and fix Valkey capability drop - #168
Conversation
The prior dated tag 404s on Docker Hub, and Valkey's setpriv entrypoint cannot start under cap_drop:ALL. Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Pull request overview
This PR updates the searxng-docker Docker Compose deployment to use a currently-available, date-tagged SearXNG image and adjusts Valkey hardening so the container can start successfully, with the change recorded in the repo-level changelog.
Changes:
- Pin SearXNG to
docker.io/searxng/searxng:2026.8.10-0a118066din the static compose file. - Sync the copier default
searxng_imageto the same pinned tag. - Remove
cap_drop: ALLfrom the Valkey service and document why; add a rootCHANGELOG.mdentry.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| searxng-docker/docker-compose.yaml | Pins the SearXNG image tag and removes Valkey cap_drop: ALL with rationale. |
| searxng-docker/copier.yaml | Updates the copier template default to match the new SearXNG image pin. |
| CHANGELOG.md | Records the searxng-docker pin + Valkey change under [Unreleased]. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Fold buzz/auto-pr/searxng Unreleased notes into the single Added/Fixed sections so markdownlint siblings_only passes. Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.
Suppressed comments (1)
searxng-docker/docker-compose.yaml:7
- The comment references
.github/copilot-instructions.md §3.7(Kubernetes) and a non-existentsearxng-docker/template/copier.yaml. This can mislead future bumps; the pinned-image guidance is in §3.8 and the copier defaults live insearxng-docker/copier.yaml.
# Pinned per .github/copilot-instructions.md §3.7 (immutable tags).
# SearXNG publishes dated tags — see https://hub.docker.com/r/searxng/searxng/tags
# When bumping, also update the canonical template at
# searxng-docker/template/copier.yaml's `searxng_image` default.
Point the pin note at copilot-instructions §3.8 and searxng-docker/copier.yaml (not template/copier.yaml). Co-authored-by: Cursor <cursoragent@cursor.com>
|
Addressed Copilot's suppressed note on the image-pin comment: corrected §3.7→§3.8 and \searxng-docker/template/copier.yaml\ → \searxng-docker/copier.yaml. |
Probe GET /user before checkout so an expired bot PAT skips green instead of failing every feature-branch push. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Also landed the missing |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.
Suppressed comments (2)
searxng-docker/docker-compose.yaml:4
- The comment says “immutable tags”, but this compose file is pinned to a Docker tag (not a digest). To avoid confusion with the repo’s guidance (digest preferred, tags acceptable), reword this to explicitly say it’s pinned to a non-floating tag and that digests are preferred when practical.
# Pinned per .github/copilot-instructions.md §3.8 (immutable tags).
.github/workflows/auto-pr-to-main.yml:98
- This gate step passes the PAT as part of the curl command line (Authorization header), which places the secret on the process argv. Since this workflow already depends on the GitHub CLI, use
gh apiwithGH_TOKENinstead so the token stays in the environment rather than argv.
# Present-but-dead PAT must not fail checkout (red on every push).
# Probe without printing the token; treat non-200 as "not applicable".
http_code="$(curl -sS -o /dev/null -w '%{http_code}' \
-H "Authorization: Bearer ${WEOWN_BOT_PAT}" \
-H "Accept: application/vnd.github+json" \
https://api.github.com/user || true)"
Summary
docker.io/searxng/searxng:2026.8.10-0a118066din staticdocker-compose.yamland copier default (prior2026.5.13-eb12c9b404s on Docker Hub; copier was still on2024.12.16).cap_drop: ALLfrom the Valkey/redis service — Valkey's entrypoint usessetpriv/setresuidand exits 127 under a full capability drop (verified on the Labs droplet deploy).CHANGELOG.md[Unreleased].Decisions
security_opt: no-new-privileges:trueon Valkey; only drop the brokencap_drop: ALL.searxng_imagedefault with the static compose pin per the in-file comment.Test plan
docker compose pullsucceeds with the new image tag on the Labs SearXNG dropletcap_drop: ALLhttps://searxng.weown.tools/search?q=test&format=jsonreturns 200 with resultsNot-in-scope
searxng.weown.app(separate DO account / DNS)