[{"data":1,"prerenderedAt":213},["ShallowReactive",2],{"seo-verification":3,"blog-autoalojar-searxng-en-un-vps-ma-es":6,"promo-bar-likely":212},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-autoalojar-searxng-en-un-vps-ma-es",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":33,"intro":36,"sections":37,"ctaTitle":138,"ctaBody":139,"ctaButton":140,"ctaUrl":141,"relatedPosts":142},198,"autoalojar-searxng-en-un-vps",{"fr":12,"en":13,"ar":14,"es":10},"self-host-searxng-vps","searxng-on-a-vps-private-metasearch-for-devs-and-ai-agents","استضافة-searxng-على-vps-بحث-خاص-للمطورين-ووكلاء-الذكاء","Alojar SearXNG en un VPS: un metabuscador privado","Despliegue SearXNG en su VPS: un metabuscador autoalojado que consulta Google, Bing y 280 fuentes, sin rastreo ni clave de API.",10,2,false,"2026-07-31T00:00:00+00:00","2026-11-04T16:30:26+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},7,"Autoalojamiento","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fself-host-searxng-vps-poster.svg",{"categorySlug":34,"appSlug":35},"desarrollo","searxng","Cada búsqueda enviada a Google deja un rastro. Cada llamada a una API de búsqueda comercial engorda la factura. SearXNG resuelve las dos cosas de una vez: un metabuscador autoalojado que consulta más de 280 motores de origen y le devuelve resultados fusionados — en su VPS, bajo su control, sin coste por consulta.",[38,42,51,54,82,85,88,91,128,132,135],{"type":39,"title":40,"body":41},"h2","El problema: las API de búsqueda comerciales no son la respuesta","¿Está construyendo un agente de IA que necesita buscar en la web? Sus opciones se reducen a esto: pagar a Google 5 $ por cada mil consultas, chocar con los límites de tasa de la API de Bing, o pasar por la API no oficial de DuckDuckGo, que se rompe sin previo aviso. Ninguna le deja el control, y todas envían sus consultas — y las de sus usuarios — hacia servidores de terceros.\n\nPara los equipos de desarrollo en Marruecos y en la región MENA se añade otra fricción: bloqueos regionales, filtrado y resultados procedentes de un motor centrado en Estados Unidos, a menudo fuera de lugar para una búsqueda local. Un metabuscador autoalojado sortea todo eso.",{"type":43,"title":44,"items":45},"ul","Lo que SearXNG aporta desde la instalación",[46,47,48,49,50],"**Más de 280 motores de origen** — Google, Bing, DuckDuckGo, Brave, Wikipedia, Reddit, GitHub, arXiv, YouTube, Twitter\u002FX y cientos más, consultados simultáneamente.","**Ningún rastreo** — ni cookies, ni perfilado, ni historial conservado. La confidencialidad viene de la arquitectura: es el motor quien consulta los servicios de origen, no usted.","**Una API JSON** — añada `?format=json` a una consulta y obtenga resultados explotables por una máquina. Compatible de forma nativa con Open WebUI, n8n, Flowise, LangChain y CrewAI.","**Una caché Redis** — la caché de resultados compartida aligera la carga sobre los motores de origen, y la limitación de tasa evita los abusos en las instancias públicas.","**Licencia AGPL-3.0** — más de 33 000 estrellas en GitHub, publicaciones continuas, imagen Docker actualizada cada semana.",{"type":39,"title":52,"body":53},"Arquitectura: dos contenedores, menos de 512 MB de RAM","SearXNG se ejecuta en dos contenedores Docker: el propio motor Python (menos de 256 MB de RAM) y una instancia Redis (unos 30 MB) para la caché y la limitación de tasa. Sin base de datos, sin estado persistente más allá de la caché Redis. Con 1 GB de RAM, SearXNG deja sitio de sobra para Nginx y para el sistema; un VPS de 2 GB resulta cómodo para un equipo con varios usuarios simultáneos o un tráfico sostenido de agentes de IA.",{"type":55,"title":56,"steps":57},"steps","Alojar SearXNG en un VPS, paso a paso",[58,61,64,67,70,73,76,79],{"title":59,"body":60},"Contrate un VPS","Elija un VPS Cloud ServOrbit con al menos 1 GB de RAM (Ubuntu 22.04). El aprovisionamiento instala Docker y Docker Compose automáticamente.",{"title":62,"body":63},"Cree el archivo docker-compose.yml","Cree el directorio `\u002Fopt\u002Fsearxng` y coloque en él este `docker-compose.yml`:\n\n```yaml\nservices:\n  redis:\n    image: redis:7-alpine\n    restart: unless-stopped\n    command: redis-server --save \"\" --appendonly no\n    volumes:\n      - redis-data:\u002Fdata\n  searxng:\n    image: searxng\u002Fsearxng:latest\n    restart: unless-stopped\n    ports:\n      - \"127.0.0.1:8080:8080\"\n    volumes:\n      - .\u002Fsettings:\u002Fetc\u002Fsearxng:rw\n    environment:\n      - SEARXNG_BASE_URL=https:\u002F\u002Fsearch.su-dominio.com\u002F\n      - SEARXNG_SECRET_KEY=CAMBIAR_ESTE_SECRETO_32_CHARS_MIN\n    depends_on:\n      - redis\nvolumes:\n  redis-data:\n```\n\nGenere una clave segura con `openssl rand -hex 32` y sustituya `CAMBIAR_ESTE_SECRETO_32_CHARS_MIN`.",{"title":65,"body":66},"Configure settings.yml","Cree el directorio `.\u002Fsettings` y copie el archivo de configuración por defecto:\n\n```bash\nmkdir -p \u002Fopt\u002Fsearxng\u002Fsettings\ndocker run --rm searxng\u002Fsearxng:latest cat \u002Fetc\u002Fsearxng\u002Fsettings.yml \\\n  > \u002Fopt\u002Fsearxng\u002Fsettings\u002Fsettings.yml\n```\n\nAbra `settings.yml` y ajuste las claves esenciales:\n\n```yaml\nsearch:\n  formats:\n    - html\n    - json\nserver:\n  limiter: true\nredis:\n  url: redis:\u002F\u002Fredis:6379\u002F0\n```",{"title":68,"body":69},"Configure Nginx como reverse proxy con TLS","Instale Nginx y Certbot, luego cree `\u002Fetc\u002Fnginx\u002Fsites-available\u002Fsearxng` con dos bloques `server`: el primero redirige HTTP a HTTPS, y el segundo escucha en el puerto 443 con certificado Let's Encrypt y reenvía las peticiones a `http:\u002F\u002F127.0.0.1:8080` con las cabeceras `Host`, `X-Real-IP`, `X-Forwarded-For` y `X-Forwarded-Proto`.\n\nActive el sitio y obtenga el certificado: `certbot --nginx -d search.su-dominio.com && nginx -t && systemctl reload nginx`.",{"title":71,"body":72},"Arranque los contenedores","Desde `\u002Fopt\u002Fsearxng`, ejecute `docker compose up -d`. Compruebe que ambos contenedores están en estado `Up` con `docker compose ps`.",{"title":74,"body":75},"Active la API JSON y pruébela","Verifique que `json` está en la lista `formats` de `settings.yml`. Pruebe desde el VPS:\n\n```bash\ncurl -s 'https:\u002F\u002Fsearch.su-dominio.com\u002Fsearch?q=SearXNG+self+hosted&format=json' \\\n  | jq '.results[0] | {title, url, content}'\n```\n\nSi la API devuelve 403, compruebe `formats` y reinicie el contenedor.",{"title":77,"body":78},"Active el limitador de tasa anti-bots","El limitador integrado (respaldado por Redis) bloquea a los clientes que envían demasiadas peticiones. Actívelo con `limiter: true` en `settings.yml`. Para reforzar la protección en Nginx:\n\n```nginx\nlimit_req_zone $binary_remote_addr zone=searxng:10m rate=10r\u002Fm;\n# dentro de location \u002F :\nlimit_req zone=searxng burst=5 nodelay;\n```",{"title":80,"body":81},"Conecte Open WebUI o n8n","En **Open WebUI**: Ajustes → Búsqueda web → Proveedor: SearXNG → URL: `https:\u002F\u002Fsearch.su-dominio.com`. En **n8n**: nodo HTTP Request → GET a `https:\u002F\u002Fsearch.su-dominio.com\u002Fsearch?format=json`, con la consulta en el parámetro `q`. Sus agentes de IA disponen ya de búsqueda web privada, actualizada y sin filtrado.",{"type":39,"title":83,"body":84},"Configuración avanzada de SearXNG","Más allá de los ajustes básicos, `settings.yml` expone opciones que convierten SearXNG en una herramienta a medida.\n\n**Activar o desactivar motores**: bajo la clave `engines:`, cada motor dispone de un campo `disabled: true`. Deshabilite los motores lentos o geo-bloqueados para acelerar las respuestas.\n\n**Formato de respuesta JSON para agentes de IA**: los resultados JSON contienen `results[].title`, `results[].url`, `results[].content`, `results[].engine` y `results[].score`. Pase `&categories=general,news` para filtrar por categoría, o `&language=es` para español.\n\n**SafeSearch**: la clave `safe_search` acepta `0` (desactivado), `1` (moderado) o `2` (estricto).\n\n**Idiomas y regiones**: añada `&language=es-ES` para resultados en español de España, o `&language=ar-MA` para árabe marroquí.",{"type":39,"title":86,"body":87},"Usar SearXNG como fuente de búsqueda para agentes de IA","El endpoint `\u002Fsearch?q=...&format=json` es el punto de entrada universal para todos los frameworks de agentes de IA.\n\n**n8n**: cree un nodo *HTTP Request* en GET, URL `https:\u002F\u002Fsearch.su-dominio.com\u002Fsearch`, con los parámetros `q`, `format` = `json` y opcionalmente `categories` = `general`. Un nodo *Code* posterior puede extraer `$json.results.slice(0,5).map(r => r.url + ' — ' + r.content)` para alimentar su LLM.\n\n**LangChain (Python)**: la comunidad LangChain incluye `SearxSearchWrapper`:\n\n```python\nfrom langchain_community.utilities import SearxSearchWrapper\n\nsearch = SearxSearchWrapper(\n    searx_host=\"https:\u002F\u002Fsearch.su-dominio.com\",\n    k=5\n)\nresults = search.results(\"noticias IA open source\", num_results=5)\n```\n\n**Open WebUI**: una vez configurada la URL en los ajustes, cada conversación puede activar la búsqueda web con un clic. Open WebUI consulta SearXNG, inyecta los extractos en el contexto del modelo y cita las fuentes automáticamente.\n\n**curl directo para scripts**:\n\n```bash\ncurl -s \"https:\u002F\u002Fsearch.su-dominio.com\u002Fsearch?q=searxng+api&format=json\" \\\n  | jq '[.results[:3] | .[] | {title, url, content}]'\n```",{"type":39,"title":89,"body":90},"Asegurar y optimizar su instancia","Una instancia SearXNG abierta en Internet atrae rápidamente crawlers y scrapers. Aquí están los cuatro mecanismos a activar.\n\n**Rate limit Redis**: con `limiter: true` en `settings.yml`, Redis cuenta las peticiones por IP en una ventana deslizante.\n\n**Autenticación HTTP Basic**: para una instancia reservada a su equipo o agentes, añada en el bloque `location \u002F` de Nginx:\n\n```nginx\nauth_basic \"SearXNG privado\";\nauth_basic_user_file \u002Fetc\u002Fnginx\u002F.htpasswd;\n```\n\nGenere el archivo con `htpasswd -c \u002Fetc\u002Fnginx\u002F.htpasswd usuario`. Los agentes de IA pasan las credenciales en la URL.\n\n**Caché Redis y TTL**: Redis se configura por defecto sin persistencia (`--save \"\"`). Para ajustar el TTL, modifique la clave `cache:` en `settings.yml`: `cache: {ttl: 86400}` mantiene los resultados 24 horas.\n\n**Rotación de User-Agent**: SearXNG rota automáticamente los User-Agents para evitar bloqueos por parte de los motores de origen.",{"type":92,"title":93,"headers":94,"rows":100},"comparison","SearXNG vs alternativas: ¿qué motor autoalojado elegir?",[95,96,97,98,99],"Criterio","SearXNG","Searx (original)","Whoogle","Brave Search API",[101,107,113,119,124],[102,103,104,105,106],"Fuentes agregadas","280+ motores","100+ motores","Solo Google","Solo Brave",[108,109,110,111,112],"API JSON nativa","Sí (`?format=json`)","Sí","No","Sí (clave requerida)",[114,115,116,117,118],"RAM mínima","~300 MB (con Redis)","~200 MB","~128 MB","Cero (SaaS)",[120,121,122,121,123],"Mantenimiento activo","Sí (2026)","Abandonado (archivado)","Sí (SaaS)",[125,126,126,126,127],"Coste por consulta","Cero","3 $ \u002F 1.000 consultas",{"type":129,"title":130,"body":131},"tip","Restringir el acceso de una instancia pública","Si su instancia de SearXNG es accesible públicamente, añada una autenticación HTTP Basic en Nginx, o ponga `limiter: true` en `settings.yml` (Redis es necesario para el limitador). Para un uso reservado a los agentes de IA, puede desactivar por completo la interfaz HTML y exponer únicamente el punto de acceso JSON: retire `html` de `formats` y restrinja el acceso directo desde un navegador.",{"type":39,"title":133,"body":134},"Solución de problemas: 4 errores frecuentes","**1. `429 Too Many Requests` — bloqueo por un motor de origen**: Google o Bing ha detectado un volumen anormal y ha baneado temporalmente la IP de su VPS. Síntoma: SearXNG devuelve resultados de todos los motores menos uno. Solución inmediata: deshabilite el motor afectado en `settings.yml` y espere 2-6 horas.\n\n**2. `Error: Connection refused to Redis (127.0.0.1:6379)`**: el contenedor SearXNG intenta conectar a Redis en `127.0.0.1` en vez del nombre de servicio `redis`. Corrección: verifique que `settings.yml` tiene `url: redis:\u002F\u002Fredis:6379\u002F0`.\n\n**3. `403 Forbidden` en `\u002Fsearch?format=json`**: la API JSON está desactivada. Solución: verifique que `formats:` contiene `json` y reinicie el contenedor con `docker compose restart searxng`.\n\n**4. Instancia lenta (> 5 s por consulta)**: demasiados motores activos o motores geo-bloqueados llegando al timeout. Diagnóstico: `docker compose logs searxng | grep timeout`. Solución: reduzca los motores activos a los 5-8 más relevantes y ajuste `request_timeout: 3.0` en `settings.yml`.",{"type":39,"title":136,"body":137},"SearXNG, la columna vertebral de búsqueda de su pila de IA","SearXNG se ha impuesto como el motor de búsqueda web de las pilas de IA autoalojadas. Open WebUI, n8n, Flowise, LangChain, CrewAI y la mayoría de los marcos de orquestación de modelos cuentan con una integración nativa. El esquema es siempre el mismo: su modelo estima que necesita una información actualizada, llama a su punto de acceso SearXNG con una consulta, recibe una tabla JSON de resultados — títulos, URL, extractos — y la usa para fundamentar su respuesta.\n\nEsto elimina tres molestias con un solo despliegue: se acabó la facturación por consulta, se acabaron las fugas de datos hacia Google o Bing, y se acabó el límite de tasa alcanzado a las 2 de la madrugada mientras su agente encadena un lote de búsquedas.","La búsqueda privada, en su propio servidor","Despliegue SearXNG en un VPS ServOrbit y dé a su equipo y a sus agentes de IA un punto de búsqueda privado — sin rastreo, sin claves de API, sin facturación por consulta.","Desplegar SearXNG","\u002Fapplications\u002Fdesarrollo\u002Fsearxng",[143,166,188],{"id":144,"slug":145,"slugs":146,"title":150,"excerpt":151,"readTime":152,"views":144,"isPinned":19,"noindex":19,"publishedAt":153,"updatedAt":154,"category":155,"categories":160,"featuredImage":30,"bgImage":31,"posterImage":162,"relatedSolution":163},1,"como-alojar-open-webui-en-un-vps",{"fr":147,"en":148,"ar":149,"es":145},"heberger-open-webui","how-to-host-open-webui-on-a-vps","كيفية-استضافة-open-webui-على-خادم-vps","Cómo alojar Open WebUI en un VPS","Guía completa para desplegar Open WebUI en su propio VPS: conserve el control de sus datos, evite pagar API en la nube y acceda a sus LLM desde el navegador.",9,"2026-06-01T00:00:00+00:00","2026-11-09T20:55:18+00:00",{"id":144,"name":156,"slug":157,"color":158,"icon":159},"Inteligencia Artificial","intelligence-artificielle","bg-purple-500\u002F10 text-purple-400","ia",[161],{"id":144,"name":156,"slug":157,"color":158,"icon":159},"\u002Fblog\u002Fcovers\u002Fheberger-open-webui-poster.svg",{"categorySlug":164,"appSlug":165},"inteligencia-artificial","open-webui",{"id":167,"slug":168,"slugs":169,"title":173,"excerpt":174,"readTime":175,"views":176,"isPinned":19,"noindex":19,"publishedAt":177,"updatedAt":154,"category":178,"categories":182,"featuredImage":30,"bgImage":31,"posterImage":184,"relatedSolution":185},3,"instalar-n8n-en-vps-con-docker",{"fr":170,"en":171,"ar":172,"es":168},"installer-n8n-vps","install-n8n-on-vps-with-docker-complete-2026-guide","تثبيت-n8n-على-vps-مع-docker-دليل-شامل-2026","Instalar n8n en un VPS con Docker: guía completa 2026","Despliegue n8n en VPS con Docker, reverse proxy y HTTPS. Crash V8, 502 nginx, migración de npm a Docker y seguridad de ejecuciones persistidas (advisory agosto 2026).",19,4,"2026-06-05T00:00:00+00:00",{"id":18,"name":179,"slug":180,"color":181,"icon":180},"Automatización","automatisation","bg-brand-action\u002F10 text-brand-action",[183],{"id":18,"name":179,"slug":180,"color":181,"icon":180},"\u002Fblog\u002Fcovers\u002Finstaller-n8n-vps-poster.svg",{"categorySlug":186,"appSlug":187},"automatizacion","n8n",{"id":189,"slug":190,"slugs":191,"title":195,"excerpt":196,"readTime":197,"views":167,"isPinned":19,"noindex":19,"publishedAt":198,"updatedAt":199,"category":200,"categories":206,"featuredImage":30,"bgImage":31,"posterImage":208,"relatedSolution":209},67,"alojar-meilisearch-en-un-vps",{"fr":192,"en":193,"ar":194,"es":190},"heberger-meilisearch-vps","hosting-meilisearch-on-a-vps","استضافة-meilisearch-على-خادم-vps","Alojar Meilisearch en un VPS","Aloje Meilisearch en su VPS: motor de búsqueda instantáneo y tolerante a las erratas. Guía de Docker, master key y SSL.",5,"2026-04-14T00:00:00+00:00","2026-09-08T22:00:01+00:00",{"id":201,"name":202,"slug":203,"color":204,"icon":205},6,"Bases de datos","bases-de-donnees","bg-teal-500\u002F10 text-teal-400","database",[207],{"id":201,"name":202,"slug":203,"color":204,"icon":205},"\u002Fblog\u002Fcovers\u002Fheberger-meilisearch-vps-poster.svg",{"categorySlug":210,"appSlug":211},"bases-de-datos","meilisearch",true,1794270557773]