C贸mo instalar SearXNG + Open WebUI en Docker: b煤squeda web para tu IA. Tu Chat personalizado al estilo ChatGPT en contenedores separados.

馃惓 Docker · 馃彔 Self-Host · 馃攷 Privacidad

SearXNG + Open WebUI en Docker: b煤squeda web para tu IA, en contenedores separados

Dale acceso a internet a Open WebUI con un metabuscador autoalojado, sin API keys ni cuotas. Cada servicio en su propio compose y comunicados por una red Docker compartida.

Ver el v铆deo en YouTube · Suscr铆bete al canal GENBYTE

¿Qu茅 vamos a montar?

SearXNG es un metabuscador libre que consulta varios motores (DuckDuckGo, Brave, Startpage…) sin rastrearte. Open WebUI es la interfaz web para chatear con tus modelos de IA. Al unirlos, tu modelo puede buscar informaci贸n actual en internet y citar fuentes, todo desde tu propio servidor.

Lo haremos con dos composes independientes (uno por servicio) y una red Docker externa llamada ai. As铆 puedes actualizar o reiniciar cada uno por separado y reutilizar la red para futuros servicios.

Ventajas

Sin API keysNo dependes de cuotas ni de servicios de pago.
PrivacidadLas b煤squedas salen desde tu servidor, sin perfilado.
Servicios desacopladosSi SearXNG se reinicia, Open WebUI sigue funcionando.
LigeroFunciona bien en una Raspberry Pi (arm64).
Buscador propioSearXNG trae su interfaz web: 煤salo tambi茅n desde el navegador.
Red reutilizableLa red ai sirve para Ollama, n8n y lo que a帽adas.

Requisitos

  • Docker y Docker Compose instalados.
  • Open WebUI ya funcionando (o listo para desplegar).
  • Un puerto libre en el host para la interfaz de SearXNG (opcional). En este ejemplo, el 8082.

Instalaci贸n en 3 pasos

Paso 1: crear la red compartida (una sola vez)

docker network create ai

Paso 2: desplegar SearXNG

Estructura de carpetas y configuraci贸n:

mkdir -p ~/docker/searxng/searxng cd ~/docker/searxng cat > searxng/settings.yml <<'EOF' use_default_settings: true server: secret_key: "CAMBIA_ESTO" limiter: false image_proxy: false search: formats: - html - json EOF sed -i "s|CAMBIA_ESTO|$(openssl rand -hex 32)|" searxng/settings.yml
Importante: el formato json es imprescindible. Sin 茅l, Open WebUI recibe un error 403 al buscar.

~/docker/searxng/docker-compose.yml

services: searxng: container_name: searxng image: searxng/searxng:latest ports: - "8082:8080" # host:interno (cambia el 8082 si est谩 ocupado) volumes: - ./searxng:/etc/searxng networks: - ai restart: unless-stopped networks: ai: external: true

Si solo lo vas a usar desde Open WebUI, elimina el bloque ports y no publicar谩s nada.

docker compose up -d

Paso 3: conectar Open WebUI a la red

~/docker/open-webui/compose.yml

services: openwebui: container_name: open-webui image: ghcr.io/open-webui/open-webui:main ports: - "7000:8080" environment: - WEBUI_SECRET_KEY=${WEBUI_SECRET_KEY} - WEBUI_AUTH=True - WEBUI_REGISTER=false - ENABLE_WEB_SEARCH=true - WEB_SEARCH_ENGINE=searxng - SEARXNG_QUERY_URL=http://searxng:8080/search?q=<query> volumes: - ./open-webui-data:/app/backend/data networks: - ai restart: unless-stopped networks: ai: external: true
docker compose up -d

Activar la b煤squeda en Open WebUI

Las variables de entorno solo se leen en el primer arranque. Si Open WebUI ya ten铆a configuraci贸n guardada, manda la interfaz:

  1. Panel de administraci贸n → Ajustes → B煤squeda web
  2. Activa el interruptor B煤squeda web.
  3. Motor de b煤squeda: searxng
  4. URL de consulta: http://searxng:8080/search?q=<query>
  5. Resultados: 3-5. Concurrencia: 1-2 en una Raspberry Pi.
  6. Guardar.
Usa siempre el puerto interno 8080 en esa URL. El 8082 es solo el puerto publicado en el host para entrar t煤 desde el navegador; dentro de la red ai los contenedores se hablan por el 8080.

Despu茅s, en un chat nuevo, activa la b煤squeda con el bot贸n + o el icono del globo.

Comprobar que todo funciona

# Contenedores conectados a la red docker network inspect ai --format '{{range .Containers}}{{.Name}} {{end}}' # Open WebUI llega a SearXNG y recibe JSON docker exec open-webui curl -s "http://searxng:8080/search?q=test&format=json" | head -c 200

Y desde el navegador, la interfaz de SearXNG: http://IP-DE-LA-RASPBERRY:8082

Casos de uso

  • Preguntar a tu modelo por noticias o versiones recientes de software.
  • Usar SearXNG como buscador privado de todo tu hogar.
  • Montar asistentes que consulten documentaci贸n actualizada antes de responder.

Gesti贸n y mantenimiento

# Actualizar (dentro de cada carpeta) docker compose pull && docker compose up -d # Logs docker logs searxng --tail 50 docker logs open-webui --tail 50

Problemas frecuentes

S铆ntomaSoluci贸n
curl devuelve 403Falta json en search.formats. A帽谩delo y ejecuta docker compose restart searxng.
Could not resolve host: searxngLos contenedores no comparten red. Revisa networks: - ai en ambos composes.
SearXNG no arranca por permisossudo chown -R 977:977 ~/docker/searxng/searxng
Las variables del compose no hacen efectoConfig煤ralo en Ajustes → B煤squeda web. Alternativa: ENABLE_PERSISTENT_CONFIG=False (los cambios desde la interfaz no se conservar谩n).
No aparece el motor searxngImagen antigua: docker compose pull openwebui && docker compose up -d
Un motor te bloqueaDesact铆valo en settings.yml y deja DuckDuckGo, Brave o Startpage.
Consejo de seguridad: no abras el puerto de SearXNG a internet. Para acceder desde fuera de casa usa una VPN (WireGuard, Tailscale) o un proxy inverso con HTTPS y autenticaci贸n.

Compose 煤nico vs. contenedores separados

Opci贸nVentajaInconveniente
Un solo composeM谩s simple, red autom谩ticaSe reinician y actualizan juntos
Composes separados + red aiIndependientes y reutilizablesHay que crear la red una vez

Referencias oficiales

Apoya el canal

Si este tutorial te ha servido, suscr铆bete al canal de GENBYTE y comparte el post. Hay m谩s tutoriales de Docker, homelab y self-hosting cada semana.

S铆gueme en redes

Comentarios

Entradas populares de este blog

C贸mo Instalar y configurar SERVIDOR VPN WIREGUARD en MIKROTIK 馃攼 #VPN #Wireguard #Mikrotik #RouterOS

C贸mo instalar y configurar DSM SYNOLOGY 7.2.2 en PC | Gu铆a completa, instalaci贸n, RAID 1, SMB

Soluci贸n al Error "No se encontr贸 la imagen de Windows RE" en Windows 10 al ejecutar reagentc /enable