Tropic Host

SearXNG: qué es y cómo instalar tu propio buscador en un VPS

6 min de lectura
Tropic
SearXNG: qué es y cómo instalar tu propio buscador en un VPS

SearXNG: tu propio buscador sin rastreo en un VPS

Un buscador convencional puede relacionar una consulta con la dirección IP, las cookies y el historial de actividad. SearXNG cambia el recorrido: el navegador accede a tu instancia, esta consulta varios motores de búsqueda externos y reúne sus respuestas en una sola página.

Las fuentes externas ven la dirección del servidor SearXNG, no las cookies del usuario. El propio servicio no crea un perfil publicitario. Sin embargo, esto no proporciona anonimato total: el propietario de una instancia pública puede mantener registros técnicamente y, después de abrir un enlace, el sitio de destino vuelve a interactuar directamente con el navegador.

Vamos a conocer las posibilidades de SearXNG e instalar nuestra propia instancia en un VPS con HTTPS y protección mediante contraseña.

Qué es SearXNG y cómo funciona

SearXNG es un metabuscador gratuito y de código abierto. No dispone de un índice propio de sitios web: el servicio obtiene resultados de los buscadores configurados y de fuentes especializadas, los normaliza y los muestra en una interfaz única.

Navegador → tu SearXNG → motores de búsqueda
                           ↓
                  resultados combinados

En cada consulta, SearXNG:

  1. determina la categoría de búsqueda: web, imágenes, noticias, vídeos u otra;
  2. consulta las fuentes seleccionadas en nombre del servidor;
  3. no les transmite las cookies del usuario y utiliza un perfil de navegador aleatorio para las solicitudes salientes;
  4. reúne las respuestas en una sola página de resultados.

La velocidad depende de sistemas externos: pueden responder lentamente, mostrar un CAPTCHA o bloquear la dirección IP. SearXNG es una capa intermedia controlable, no un índice autónomo.

Por qué SearXNG resulta más interesante que un solo buscador

Distintas fuentes en una sola página de resultados

Puedes combinar buscadores generales con fuentes especializadas: enciclopedias, mapas, publicaciones científicas, repositorios, noticias o catálogos de imágenes. Esto ayuda cuando una página de resultados convencional está saturada de páginas SEO o encuentra con dificultad materiales especializados.

En el momento de preparar este artículo, la documentación enumeraba 272 integraciones, de las cuales 83 estaban activadas de forma predeterminada. Esto no significa que todas sean igual de estables.

El conjunto depende de la configuración. Unas pocas fuentes estables suelen funcionar más rápido que todas las disponibles activadas al mismo tiempo.

Comandos rápidos

Los atajos permiten seleccionar temporalmente un motor, una categoría o un idioma:

!wp docker compose       — buscar en Wikipedia
!images aurora boreal    — buscar imágenes
:es !wp servidor proxy   — buscar en español en Wikipedia

El comando !! redirige al usuario directamente a un buscador externo. En este modo, la protección de SearXNG deja de aplicarse.

Búsqueda para el navegador y tus propias herramientas

SearXNG es compatible con OpenSearch, por lo que puede configurarse como buscador predeterminado del navegador. También ofrece una API HTTP con respuestas en JSON, CSV o RSS, siempre que el administrador haya permitido los formatos necesarios.

Una sola instancia puede convertirse en el backend de búsqueda de un panel interno, un bot, un script de investigación o un asistente de IA local. Conviene exponer la API solo después de configurar la autenticación y los límites de solicitudes.

Qué nivel de privacidad ofrece SearXNG

Lo que haceLo que no hace
No transmite las cookies del navegador a los buscadores externosNo proporciona anonimato total
Oculta la IP del usuario detrás de la IP del servidorNo protege al usuario después de abrir el sitio encontrado
Elimina publicidad de terceros y algunos parámetros de seguimientoNo garantiza que el propietario de un servidor ajeno no mantenga registros
Puede cargar imágenes mediante un proxyNo sustituye una VPN, Tor ni la protección del navegador

Una instancia pública resulta cómoda para conocer el servicio, pero hay que confiar en su administrador, y una dirección IP compartida recibe restricciones con mayor frecuencia.

Un servidor propio te da control sobre los registros, las fuentes y el acceso, pero no convierte el navegador en anónimo.

Instancia pública, servidor doméstico o VPS

OpciónVentajasLimitaciones
PúblicaNo hay que instalar nadaConfianza en el propietario, sobrecarga, CAPTCHA
Servidor domésticoControl total sin alquilar un VPSEl dispositivo debe funcionar continuamente; el acceso externo es más difícil de configurar
VPS propioFuncionamiento permanente, dominio, HTTPS, acceso desde distintos dispositivosHay que actualizar los contenedores y supervisar la seguridad

Una instancia propia de SearXNG es útil para una familia, un equipo, un desarrollador o herramientas locales de IA. Para búsquedas ocasionales, una instancia pública es más sencilla.

Qué VPS necesita SearXNG

La carga depende del número de usuarios, las fuentes y las consultas simultáneas. Configuraciones iniciales prácticas:

EscenarioCPURAMAlmacenamiento
Un usuario1 vCPU1 GB10 GB
Familia o equipo pequeño2 vCPU2 GB20 GB
API y servicios adicionales2–4 vCPUdesde 4 GBdesde 30 GB

No se necesita un disco grande. Son más importantes la calidad de la red, una dirección IP estable y una reserva de RAM.

Un VPS Linux de tropic.host es adecuado para este escenario: puedes empezar con una configuración pequeña y aumentar los recursos a medida que añadas usuarios o acceso a la API. Al elegir una tarifa, resulta más útil invertir en RAM y calidad de red que pagar de más por capacidad de almacenamiento.

Cómo instalar SearXNG en un VPS con Docker Compose

En el ejemplo utilizaremos Ubuntu 24.04 LTS, search.example.com, Valkey y Caddy. Dirige el registro DNS A al servidor y abre los puertos 80 y 443.

1. Instala Docker y crea un directorio

sudo apt update
sudo apt install -y docker.io docker-compose-v2 openssl
sudo systemctl enable --now docker

sudo mkdir -p /opt/searxng/searxng
cd /opt/searxng

Crea un archivo .env con el dominio y un secreto aleatorio:

printf 'SEARXNG_HOSTNAME=search.example.com\nSEARXNG_SECRET=%s\n' \
  "$(openssl rand -hex 32)" | sudo tee .env >/dev/null
sudo chmod 600 .env

2. Crea docker-compose.yml

name: searxng

services:
  searxng:
    image: docker.io/searxng/searxng:latest
    restart: unless-stopped
    environment:
      SEARXNG_BASE_URL: https://${SEARXNG_HOSTNAME}/
      SEARXNG_SECRET: ${SEARXNG_SECRET}
      SEARXNG_VALKEY_URL: valkey://valkey:6379/0
    volumes:
      - ./searxng:/etc/searxng:rw
      - searxng-cache:/var/cache/searxng
    depends_on: [valkey]

  valkey:
    image: docker.io/valkey/valkey:9-alpine
    restart: unless-stopped
    command: valkey-server --save 30 1 --loglevel warning
    volumes:
      - valkey-data:/data

  caddy:
    image: docker.io/caddy:2-alpine
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    environment:
      SEARXNG_HOSTNAME: ${SEARXNG_HOSTNAME}
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - caddy-data:/data
      - caddy-config:/config
    depends_on: [searxng]

volumes:
  searxng-cache:
  valkey-data:
  caddy-data:
  caddy-config:

3. Configura SearXNG

Crea searxng/settings.yml:

use_default_settings: true

general:
  instance_name: "Private Search"

search:
  safe_search: 1
  autocomplete: ""
  formats: [html]

server:
  limiter: true
  image_proxy: true

valkey:
  url: valkey://valkey:6379/0

Crea searxng/limiter.toml:

[botdetection]
trusted_proxies = [
  "127.0.0.0/8",
  "::1",
  "172.16.0.0/12",
]

El limiter reduce el riesgo de que los bots sobrecarguen la instancia y provoquen que los buscadores externos restrinjan antes su dirección IP.

4. Añade una contraseña y HTTPS

Genera el hash de una contraseña segura:

sudo docker run --rm caddy:2-alpine \
  caddy hash-password --plaintext 'SUSTITUYE_LA_CONTRASENA'

Inserta el hash obtenido en Caddyfile:

{$SEARXNG_HOSTNAME} {
    basic_auth {
        searchuser INSERTA_EL_HASH
    }

    reverse_proxy searxng:8080 {
        header_up X-Real-IP {remote_host}
    }
}

Caddy almacena el hash, no la contraseña en texto abierto. En lugar de Basic Auth, también puedes restringir el servicio dentro de una VPN.

5. Inicia los contenedores

sudo docker compose config
sudo docker compose pull
sudo docker compose up -d
sudo docker compose ps

Abre https://search.example.com. Caddy obtendrá automáticamente un certificado TLS y, después, el navegador solicitará el usuario searchuser y la contraseña. Los registros de SearXNG están disponibles con el comando:

sudo docker compose logs -f searxng

Qué configurar después del inicio

Mantén solo las fuentes útiles, elige el idioma y la configuración de SafeSearch y, después, añade SearXNG al navegador mediante OpenSearch. Para actualizarlo, basta con ejecutar:

sudo docker compose pull
sudo docker compose up -d

Haz copias de seguridad de .env, Caddyfile y del directorio searxng. Activa la API JSON solo cuando sea necesario y no la dejes sin contraseña ni limitación de frecuencia de solicitudes.

Errores habituales

ErrorConsecuenciaSolución
Abrir la instancia para todo el mundoLos bots generan carga y la IP recibe restricciones con mayor frecuenciaUsar una contraseña, una VPN o inicio de sesión único
Activar demasiadas fuentesResultados lentos y tiempos de espera agotadosMantener unos pocos motores estables
Considerar SearXNG un índice propioParte de los resultados desaparece cuando fallan los sistemas externosTener en cuenta la dependencia de las fuentes
Esperar anonimato totalEl sitio encontrado todavía puede rastrear el navegadorUsar protección del navegador, una VPN o Tor
Ejecutarlo sin HTTPSLas consultas y la contraseña se transmiten de forma inseguraUsar un proxy inverso con TLS

Conclusión

SearXNG reúne distintas fuentes en una sola interfaz, reduce la personalización y proporciona una búsqueda común al navegador, los scripts o una IA local. Una instancia pública basta para conocer el servicio. Para un uso habitual, es mejor disponer de un servidor propio con HTTPS, autenticación, limiter y un pequeño conjunto de fuentes estables.

Puedes empezar con 1 GB de RAM. Conviene aumentar los recursos cuando crezca el número de usuarios, al habilitar la API o al ejecutar contenedores adicionales.

FAQ

¿SearXNG es completamente anónimo?

No. Oculta algunos datos a los buscadores externos, pero el administrador de la instancia puede mantener registros. Después de abrir un sitio, se aplican sus propios mecanismos de seguimiento.

¿SearXNG es mejor que Google?

Resuelve un problema distinto. Google suele ser más rápido y personaliza más los resultados. SearXNG ofrece mayor control, permite combinar fuentes y depende menos del perfil del usuario.

¿Se puede utilizar SearXNG sin un VPS?

Sí. Puedes usar una instancia pública, un ordenador doméstico, un NAS o un miniservidor. Se necesita un VPS para disponer de acceso permanente desde cualquier red.

¿Cuánta memoria RAM se necesita?

Para un usuario, es razonable empezar con 1 GB. Para una familia, un equipo, una API o contenedores adicionales, es preferible disponer de 2 a 4 GB.

¿Se puede conectar SearXNG a un navegador o a una IA?

Sí. El navegador puede utilizar OpenSearch y los programas pueden usar la API HTTP. El acceso a la API debe protegerse mediante autenticación y un limiter.