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 7000Check 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
- Go to Settings > Admin > Tools > Web Search.
- Enable Web Search.
- Set Web Search Engine to
openserp. - Set OpenSERP Base URL to your instance, for example
http://localhost:7000. - 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.
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.