Outils pour utilisateurs

Outils du site


services:searxng

Ceci est une ancienne révision du document !


Déploiement et configuration de SearXNG

Documentation rédigée par : GADONNAUD Ewen

Formation : BTS SIO 1ère année - Option SISR

Établissement : Lycée Paul-Louis Courier, Tours

Date : Mars 2026

Logo PLC-SIO

1. Présentation et préparation du répertoire

SearXNG est un métamoteur de recherche respectueux de la vie privée. Le déploiement s'effectue via des conteneurs Docker sur le serveur.

Nous déploierons alors SearXNG à l'aide d'une image docker dédiée, sur notre infrastructure X200 + VPS, à l'adresse search.ewengadonnaud.xyz

Il convient donc de la création d'un record A sur notre registrar au préalable, pointant vers l'adresse du VPS.

Création des répertoires nécessaires à l'hébergement de la configuration :

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

2. Configuration des paramètres de SearXNG

Création du fichier de configuration principal settings.yml permettant de définir le port d'écoute et les paramètres de sécurité :

use_default_settings: true

server:
  port: 8080
  bind_address: "0.0.0.0"
  secret_key: "INSERER_CLE_SECRETE_ICI"
  base_url: "https://search.ewengadonnaud.xyz/"
  image_proxy: true

Création du fichier docker-compose.yml. L'ajout de serveurs DNS publics de manière explicite est nécessaire afin de pallier les erreurs de résolution de noms (temporary failure in name resolution) lors de l'initialisation des moteurs de recherche par le conteneur :

version: '3'

services:
  searxng:
    image: searxng/searxng:latest
    container_name: searxng
    ports:
      - "8087:8080"
    volumes:
      - ./searxng:/etc/searxng
    restart: unless-stopped
    dns:
      - 1.1.1.1
      - 8.8.8.8

Lancement de l'infrastructure via Docker :

sudo docker compose up -d

3. Configuration du Reverse Proxy Nginx

Création du bloc serveur Nginx sur le VPS pour relayer le trafic via le tunnel WireGuard vers le port 8087 de la machine cible :

server {
    server_name search.ewengadonnaud.xyz;
 
    location / {
        proxy_pass http://10.10.0.2:8087;
 
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

4. Sécurisation SSL/TLS avec Certbot

Afin de garantir la confidentialité des requêtes (HTTPS), nous allons générer un certificat SSL gratuit via Let's Encrypt en utilisant l'outil Certbot.

Installation de Certbot et de son plugin pour Nginx sur le VPS :

sudo apt update
sudo apt install python3-certbot-nginx

Génération du certificat et configuration automatique du Reverse Proxy Nginx :

sudo certbot --nginx -d search.ewengadonnaud.xyz

Certbot va automatiquement détecter le bloc serveur Nginx configuré à l'étape précédente, le modifier pour y inclure les certificats de sécurité, et forcer la redirection du trafic de HTTP vers HTTPS.

5. Intégration au navigateur web

Pour configurer SearXNG comme moteur de recherche par défaut au sein du navigateur client :

* Nom : SearXNG * Raccourci : sx * URL avec %s à la place de la requête : https://search.ewengadonnaud.xyz/search?q=%s

Intégration au navigateur

services/searxng.1773101592.txt.gz · Dernière modification : de ewen