x-arcane:
icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/searxng.svg
urls:
- https://docs.searxng.org/admin/installation-docker.html
services:
searxng:
image: docker.io/searxng/searxng:latest
restart: unless-stopped
ports:
- "${BIND_ADDRESS:-127.0.0.1}:${APP_PORT:-8888}:8080"
environment:
SEARXNG_BASE_URL: ${BASE_URL:-http://localhost:8888/}
SEARXNG_SECRET: ${SEARXNG_SECRET}
SEARXNG_BIND_ADDRESS: 0.0.0.0
SEARXNG_PORT: "8080"
volumes:
- searxng-config:/etc/searxng
- searxng-data:/var/cache/searxng
labels:
com.getarcaneapp.arcane.icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/searxng.svg
volumes:
searxng-config:
searxng-data:
BIND_ADDRESS=127.0.0.1
APP_PORT=8888
BASE_URL=http://localhost:8888/
# Generate with: openssl rand -hex 32
SEARXNG_SECRET=change-me-before-deploying
README
The web interface binds to loopback by default. Open it on the Docker host or through an SSH tunnel. For LAN access, set BIND_ADDRESS to a trusted interface after completing account setup; use an authenticated HTTPS reverse proxy for remote access.
Generate SEARXNG_SECRET with openssl rand -hex 32, set BASE_URL to your reachable URL, and open that URL after deployment.
This is a private-instance configuration without authentication or a public-instance rate limiter. Restrict access to your LAN or an authenticated reverse proxy. Before operating a public instance, follow upstream guidance for Valkey, bot protection, and proxy headers.
Settings persist in searxng-config; customize settings.yml there and restart the service. Search engine availability depends on the upstream providers and their rate limits.