Le problème : les API de recherche commerciales ne sont pas la réponse
Vous construisez un agent IA qui doit chercher sur le web ? Vos options se résument à ceci : payer Google 5 $ par millier de requêtes, buter sur les limites de débit de l'API de Bing, ou passer par l'API non officielle de DuckDuckGo, qui casse sans préavis. Aucune ne vous laisse le contrôle, et toutes envoient vos requêtes — et celles de vos utilisateurs — vers des serveurs tiers.
Pour les équipes de développement au Maroc et dans la région MENA s'ajoute une friction : blocages régionaux, filtrage, et des résultats issus d'un moteur centré sur les États-Unis, souvent hors sujet pour une recherche locale. Un métamoteur auto-hébergé contourne tout cela.
Ce que SearXNG apporte dès l'installation
- Plus de 280 moteurs en amont — Google, Bing, DuckDuckGo, Brave, Wikipedia, Reddit, GitHub, arXiv, YouTube, Twitter/X et des centaines d'autres, interrogés simultanément.
- Aucun traçage — ni cookies, ni profilage, ni historique conservé. La confidentialité tient à l'architecture : c'est le moteur qui interroge les services en amont, pas vous.
- Une API JSON — ajoutez
?format=jsonà une requête et récupérez des résultats exploitables par une machine. Prise en charge nativement par Open WebUI, n8n, Flowise, LangChain et CrewAI. - Un cache Redis — le cache de résultats partagé allège la charge en amont, et la limitation de débit prévient les abus sur les instances publiques.
- Licence AGPL-3.0 — plus de 33 000 étoiles sur GitHub, publications en continu, image Docker mise à jour chaque semaine.
Architecture : deux conteneurs, moins de 512 Mo de RAM
SearXNG tourne en deux conteneurs Docker : le moteur Python lui-même (moins de 256 Mo de RAM) et une instance Redis (environ 30 Mo) pour le cache et la limitation de débit. Pas de base de données, pas d'état persistant au-delà du cache Redis. Sur un VPS ServOrbit de 1 Go, SearXNG laisse largement la place à Nginx et au système ; un VPS de 2 Go est confortable pour une équipe à plusieurs utilisateurs simultanés ou un trafic d'agents IA soutenu.
Héberger SearXNG sur un VPS, pas à pas
Commandez un VPS
Choisissez un VPS Cloud ServOrbit doté d'au moins 1 Go de RAM (Ubuntu 22.04). Le provisionnement installe Docker tout seul.
Déployez depuis le catalogue
Sélectionnez SearXNG dans le catalogue. Le provisionnement démarre deux conteneurs — le moteur SearXNG et Redis — et génère une clé secrète affichée dans votre espace client. L'interface web répond immédiatement sur le port 8080.
Configurez Nginx et le certificat
Faites pointer votre domaine (par exemple
search.votre-domaine.com) vers l'IP du VPS, chez Cloudflare ou votre fournisseur DNS. Ajoutez ensuite un bloc de proxy inverse Nginx avec un certificat Let's Encrypt : unserveren écoute surlisten 443 ssl, unserver_name search.votre-domaine.com, et dans lelocation /unproxy_pass http://127.0.0.1:8080;accompagné deproxy_set_header Host $host;.Mettez à jour
SEARXNG_BASE_URL=https://search.votre-domaine.com/puis redémarrez le conteneur.Activez l'API JSON pour vos agents IA
Éditez
/etc/searxng/settings.ymlsur votre VPS (monté comme volume Docker). Sous la clésearch:, complétez la listeformats:pour qu'elle contiennehtmletjson.Redémarrez le conteneur avec
docker compose restart searxng, puis testez la sortie JSON aveccurl 'https://search.votre-domaine.com/search?q=SearXNG&format=json' | jq '.results[0]'.Branchez Open WebUI ou n8n
Dans Open WebUI : Réglages → Recherche web → Fournisseur : SearXNG → URL :
https://search.votre-domaine.com. Dans n8n : nœud HTTP Request → GET surhttps://search.votre-domaine.com/search?format=json, en passant votre requête dans le paramètreq. Vos agents IA disposent désormais d'une recherche web privée, à jour et sans filtrage.Se connecter la première fois
Il n'y a ni compte ni mot de passe : ouvrez l'URL et vous pouvez chercher immédiatement. Vos préférences sont stockées dans votre navigateur, pas dans un compte.
Restreindre l'accès d'une instance publique
Si votre instance SearXNG est joignable publiquement, ajoutez une authentification HTTP Basic dans Nginx, ou posez limiter: true dans settings.yml (Redis est requis pour le limiteur). Pour un usage réservé aux agents IA, vous pouvez désactiver entièrement l'interface HTML et n'exposer que le point d'accès JSON : retirez html de formats et restreignez l'accès direct depuis un navigateur.
SearXNG, colonne vertébrale de recherche de votre pile IA
SearXNG s'est imposé comme le moteur de recherche web des piles IA auto-hébergées. Open WebUI, n8n, Flowise, LangChain, CrewAI et la plupart des cadres d'orchestration de modèles disposent d'une intégration native. Le schéma est toujours le même : votre modèle estime qu'il lui faut une information à jour, appelle votre point d'accès SearXNG avec une requête, reçoit un tableau JSON de résultats — titres, URL, extraits — et s'en sert pour ancrer sa réponse.
Cela lève trois irritants d'un seul déploiement : plus de facturation à la requête, plus de fuite de données vers Google ou Bing, et plus de limite de débit atteinte à 2 h du matin pendant que votre agent enchaîne un lot de recherches.