Autoalojar SearXNG: metabuscador privado y búsqueda web gratuita para Open WebUI y LobeHub
Despliega SearXNG en tu propio servidor con la plantilla de Zenavo, activa su API JSON y conéctalo a Open WebUI y LobeHub por la red privada del proyecto para dar a tus modelos búsqueda web en tiempo real sin pagar por consulta.
Este artículo también está disponible en English, 简体中文, 繁體中文, 日本語 y Bahasa Indonesia.
En cuanto tienes funcionando Open WebUI o LobeHub, surge siempre la misma pregunta: ¿cómo hago para que los modelos consulten noticias de hoy, documentación reciente o páginas web en vivo? Las API de búsqueda comerciales (Tavily, Serper, Brave Search) cobran por consulta, y las instancias públicas de SearXNG suelen bloquear las peticiones automáticas por límite de velocidad.
SearXNG es un metabuscador de código abierto: en lugar de mantener su propio índice, consulta en paralelo decenas de buscadores (Google, Bing, DuckDuckGo, Wikipedia, GitHub y más), elimina duplicados y devuelve los resultados sin crear perfiles de seguimiento. Mejor aún: si añades SearXNG al mismo proyecto de Zenavo donde corre Open WebUI o LobeHub, tu aplicación de chat puede consultarlo por la red privada sin coste por búsqueda.
1. Dos formas de desplegarlo: backend interno para IA o buscador personal
Primero conecta un servidor Linux a Zenavo y elige la opción que mejor encaje contigo:
- Opción A: Backend interno de búsqueda para Open WebUI o LobeHub (recomendado)
Abre tu proyecto actual de Open WebUI o LobeHub en Zenavo, haz clic en Add Service → Templates y elige SearXNG. Así SearXNG se ejecuta dentro de la misma red privada del proyecto (
http://searxng.zenavo.internal:8080) y ni siquiera necesita un dominio público, de modo que nadie desde fuera puede tocar tu buscador. - Opción B: Buscador privado independiente para usar también desde el navegador
Crea un proyecto nuevo desde la plantilla de SearXNG y asocia un dominio (como
search.example.com) al puerto8080en la pestaña Networking del serviciosearxng. Consulta Dominios y HTTPS.
La plantilla es muy ligera (suele consumir menos de 200 MB de memoria):
| Ajuste | Valor o finalidad |
|---|---|
| Imagen | searxng/searxng:latest |
| Puerto HTTP | 8080 |
| Volumen de configuración | /etc/searxng (genera settings.yml y limiter.toml en el primer arranque) |
| Volumen de caché | /var/cache/searxng |
SEARXNG_SECRET |
Clave secreta generada automáticamente al crear el proyecto |
2. Activa el formato JSON (imprescindible para herramientas de IA)
Por defecto, SearXNG solo sirve páginas HTML para navegadores y devuelve 403 Forbidden cuando un cliente pide ?format=json. Tanto Open WebUI como LobeHub necesitan la API JSON para obtener los resultados.
Una vez que el servicio haya arrancado por primera vez y creado /etc/searxng/settings.yml, edita /etc/searxng/settings.yml (desde la terminal del contenedor o la pestaña de archivos de configuración) y añade json dentro de search.formats:
search:
formats:
- html
- json
Si solo vas a llamar a SearXNG por la red privada de Zenavo, comprueba también que bajo server: esté limiter: false para que no bloquee las peticiones internas. Guarda los cambios y pulsa Restart en el servicio searxng.
3. Conecta Open WebUI
Si desplegaste Open WebUI:
- Entra en Open WebUI con tu cuenta de administrador y abre Admin Panel → Settings → Web Search.
- Activa Enable Web Search.
- En Web Search Engine, selecciona
searxng. - En Searxng Query URL, escribe:
- Mismo proyecto de Zenavo (red privada):
http://searxng.zenavo.internal:8080/search?q=<query> - Proyecto distinto (dominio público):
https://search.example.com/search?q=<query>
- Mismo proyecto de Zenavo (red privada):
- Haz clic en Guardar. En un chat nuevo, activa Web Search debajo del cuadro de texto y pregunta por una noticia reciente para ver cómo consulta la web antes de responder.
4. Conecta LobeHub
Si usas LobeHub, añade estas variables de entorno en la pestaña Variable del servicio lobehub, guarda y reinicia lobehub:
SEARCH_PROVIDERS=searxng
SEARXNG_URL=http://searxng.zenavo.internal:8080
(Si SearXNG está en otro proyecto, pon en SEARXNG_URL tu dominio https://search.example.com.) Al reiniciar, la búsqueda web de LobeHub consultará directamente tu instancia de SearXNG.
5. Copias de seguridad y actualizaciones
SearXNG no guarda cuentas de usuario ni historiales de conversación; lo único que interesa conservar es tu archivo /etc/searxng/settings.yml:
- Tras editar
settings.yml, guarda una copia del contenido o respalda el volumen/etc/searxngdesde la pestaña Backup & Restore durante una ventana de mantenimiento. - La plantilla usa
searxng/searxng:latestporque los buscadores cambian a menudo la estructura de sus páginas y SearXNG publica ajustes con frecuencia. Si prefieres fijar una versión concreta, cambia la etiqueta en Settings → Source.
Preguntas frecuentes
Open WebUI o LobeHub devuelve 403 Forbidden al buscar.
Casi siempre se debe a que aún no has añadido json bajo search.formats en /etc/searxng/settings.yml (paso 2) o a que no reiniciaste el servicio searxng tras guardar el archivo. Si además tienes protección antibots en el dominio público, usa la dirección interna http://searxng.zenavo.internal:8080.
¿Por qué Google da a veces tiempo de espera agotado o pide un CAPTCHA?
Las IP de centros de datos pueden activar límites si todas las consultas van a un único buscador. Activa varios motores a la vez (Bing, DuckDuckGo, Brave, Wikipedia) en Preferences → Engines de SearXNG o en settings.yml para repartir las consultas.
Si asocio un dominio público, ¿cómo evito que desconocidos abusen de mi API JSON?
Si solo lo usas con Open WebUI o LobeHub, lo más seguro es no asociar ningún dominio público y dejarlo únicamente en la red privada .zenavo.internal. Si también quieres usarlo desde el navegador, activa server.limiter: true en settings.yml o no expongas el formato JSON públicamente.
¿Puedo combinar SearXNG con una pasarela de modelos autoalojada? Por supuesto. Una combinación muy habitual es ejecutar Open WebUI / LobeHub + SearXNG + Magpie (o New API / LiteLLM) dentro del mismo proyecto de Zenavo para que el chat, la búsqueda web y el enrutamiento de modelos se comuniquen por la red interna de un solo servidor.
Despliega la plantilla de SearXNG —o añádelo directamente a tu proyecto de IA actual— para dotar a tus modelos de búsqueda web privada y sin coste por consulta en pocos minutos.
Esto es lo que leen los agentes de programación, en https://zenavo.app/es-ES/blog/self-host-searxng.md.
No se pudo cargar el Markdown. Ábrelo directamente: https://zenavo.app/es-ES/blog/self-host-searxng.md