Skip to main content

OpenSERP

OpenSERP is a self-hosted scraper that returns results from several major search engines. Like SearXNG and YaCy, it runs on your own infrastructure and needs no API key, so the only setting Open WebUI requires is a reachable base URL.

Open WebUI calls its /mega/search endpoint, which queries Google, Bing, Yandex, Baidu, DuckDuckGo and Ecosia together and returns the combined results.

1. Run OpenSERP

docker run -d --name openserp -p 7000:7000 karust/openserp serve -a 0.0.0.0 -p 7000

Check that it answers:

curl "http://localhost:7000/mega/search?text=open+webui&limit=3"

If Open WebUI itself runs in Docker, localhost points at the Open WebUI container rather than your host. Use http://host.docker.internal:7000 instead, or put both containers on the same Docker network and use the service name.

2. Point Open WebUI at it

  1. Go to Settings > Admin > Tools > Web Search.
  2. Enable Web Search.
  3. Set Web Search Engine to openserp.
  4. Set OpenSERP Base URL to your instance, for example http://localhost:7000.
  5. Save.

The base URL can also be set with OPENSERP_BASE_URL, which defaults to http://localhost:7000. A trailing slash is fine, it is stripped before the request.

3. Use it

Open a new chat, turn on Web Search from the + menu in the message input, and send a query.

Scraping engines can be rate limited

OpenSERP works by scraping search engine result pages rather than using official APIs. Those engines may throttle, present a CAPTCHA, or block the requesting address under load, which surfaces in Open WebUI as a failed search. This is a property of how it obtains results, not a fault in the configuration, and it is the trade-off for needing no API key.

This content is for informational purposes only and does not constitute a warranty, guarantee, or contractual commitment. Open WebUI is provided "as is." See your license for applicable terms.