All templates

SearXNG

v1.0.0

Privacy-respecting metasearch across multiple search engines.

searchprivacy by getarcaneapp
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:

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.

Upstream deployment documentation.