Le problème

OpenClaw est un agent IA auto-hébergé qui tourne sur votre propre serveur. Par défaut, quand il a besoin de chercher sur le web, il s'appuie sur Brave Search API. Problème : c'est payant.

  • Brave Search API : 4 dollars par mois
  • Tavily (alternative) : 5 dollars par mois
  • SearXNG (auto-hébergé) : 0 franc

Pour un side project, payer un abonnement mensuel juste pour des recherches web, c'est absurde. La solution : SearXNG, un méta-moteur de recherche open source qui agrège les résultats de Google, Bing, DuckDuckGo et d'autres. Gratuit, auto-hébergé, sans limites.

Ce qu'on va faire

  • Installer SearXNG en Docker à côté d'OpenClaw
  • Configurer OpenClaw pour l'utiliser à la place de Brave
  • Tester que tout marche

Temps total : 10 minutes. Prérequis : un VPS avec Docker et OpenClaw déjà installé.

Étape 1. Créer la configuration SearXNG

Créez un dossier pour la config SearXNG :

mkdir -p ~/searxng

Créez le fichier ~/searxng/settings.yml :

use_default_settings: true

general:
  instance_name: "OpenClaw SearXNG"
  enable_metrics: false

search:
  safe_search: 0
  default_lang: "fr"
  formats:
    - html
    - json

server:
  secret_key: "changez-moi-par-une-vraie-cle"
  bind_address: "0.0.0.0"
  port: 8080
  limiter: false
  public_instance: false

engines:
  - name: google
    engine: google
    shortcut: g
    disabled: false
  - name: duckduckgo
    engine: duckduckgo
    shortcut: ddg
    disabled: false
  - name: bing
    engine: bing
    shortcut: b
    disabled: false
  - name: wikipedia
    engine: wikipedia
    shortcut: wp
    disabled: false

Points importants :

  • formats: [html, json] : le format JSON est indispensable pour qu'OpenClaw puisse parser les résultats
  • public_instance: false : votre instance n'est pas exposée sur internet
  • limiter: false : pas besoin de limiter les requêtes en interne

Créez aussi ~/searxng/limiter.toml (fichier vide, mais requis) :

touch ~/searxng/limiter.toml

Étape 2. Ajouter SearXNG au Docker Compose

Dans votre docker-compose.yml OpenClaw, ajoutez le service SearXNG :

services:
  # ... votre service openclaw-gateway existant ...

  searxng:
    image: searxng/searxng:latest
    volumes:
      - ~/searxng/settings.yml:/etc/searxng/settings.yml:ro
      - ~/searxng/limiter.toml:/etc/searxng/limiter.toml:ro
    restart: unless-stopped
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - SETGID
      - SETUID

Pas besoin d'exposer de port : SearXNG et OpenClaw sont sur le même réseau Docker. Ils communiquent en interne via le nom du service (searxng).

Étape 3. Configurer OpenClaw

Ouvrez ~/.openclaw/openclaw.json et ajoutez (ou modifiez) la section tools :

{
  "tools": {
    "web": {
      "search": {
        "enabled": true,
        "provider": "searxng",
        "searxng": {
          "baseUrl": "http://searxng:8080"
        }
      }
    }
  }
}

C'est tout. Trois lignes qui comptent :

  • "provider": "searxng" : dit à OpenClaw d'utiliser SearXNG au lieu de Brave
  • "baseUrl": "http://searxng:8080" : l'adresse interne Docker du service
  • "enabled": true : active la recherche web

Étape 4. Redémarrer et tester

docker compose up -d

Vérifiez que SearXNG tourne :

docker ps | grep searxng

Vous devriez voir quelque chose comme :

f958cb08d557  searxng/searxng:latest  Up 2 minutes  8080/tcp  openclaw-searxng-1

Testez une recherche via OpenClaw. Posez-lui une question qui nécessite une recherche web, par exemple « Quel temps fait-il à Genève demain ? » ou « Quel est le dernier modèle d'Anthropic ? ». L'agent devrait utiliser SearXNG pour aller chercher l'info, exactement comme il le faisait avec Brave.

Pourquoi SearXNG et pas autre chose

Ce qui rend SearXNG idéal

Méta-moteur : il agrège les résultats de Google, Bing, DuckDuckGo, Wikipedia et d'autres. Pas un seul point de défaillance.

Résultats structurés : le format JSON donne à OpenClaw des résultats propres et parsables. Pas de HTML brut à déchiffrer.

Aucune limite : pas de quota API, pas de clé, pas d'abonnement. Votre instance, vos règles.

Respectueux de la vie privée : aucune donnée de recherche ne quitte votre serveur.

Le calcul

  • Brave Search API : 4 $/mois = 48 CHF/an
  • Tavily : 5 $/mois = 60 CHF/an
  • SearXNG auto-hébergé : 0 CHF (négligeable en RAM : ~50 Mo)

Ce n'est pas la somme qui compte. C'est le principe : si un outil open source fait le même travail qu'un service payant, pourquoi payer ?

L'open source, c'est aussi la liberté de ne pas payer pour ce qui devrait être gratuit.
Sources
SearXNG : docs.searxng.org · OpenClaw : configuration ~/.openclaw/openclaw.json
#OpenClaw #SearXNG #IA #Docker #OpenSource #legeektech