Skip to content

SearXNG is a metasearch engine that powers the web_search tool. It aggregates results from multiple search engines without tracking.

Setup

SearXNG is included in the default Docker Compose configuration:

yaml
searxng:
  image: searxng/searxng:2026.2.16
  ports:
    - "8080:8080"

Connect it to the engine with:

bash
FRONA_SEARCH_PROVIDER=searxng
FRONA_SEARCH_SEARXNG_BASE_URL=http://searxng:8080

JSON Format

Frona fetches search results from SearXNG as JSON. By default, SearXNG only enables HTML output. You need to enable the json format in your settings.yml:

yaml
search:
  formats:
    - html
    - json

Without this, the web_search tool will fail because SearXNG won't return JSON responses.

Customization

To customize SearXNG, create a settings.yml and mount it into the container:

yaml
searxng:
  volumes:
    - ./searxng/settings.yml:/etc/searxng/settings.yml

Common tweaks:

  • Enable or disable specific search engines
  • Set default language and region
  • Configure rate limits
  • Adjust result formatting

Security

Like Browserless, SearXNG should not be directly exposed to the public internet in production. Remove the port mapping:

yaml
searxng:
  image: searxng/searxng:2026.2.16
  # No ports: section