Comment créer un moteur de recherche avec SearXNG

Searxng Install 00 Featured Image
⏱️ 10 min read

SearXNG est un puissant méta-moteur de recherche que vous pouvez héberger n’importe où. Contrairement aux moteurs de recherche traditionnels, SearXNG est un agrégateur de moteurs : au lieu de traiter les recherches, il utilise d’autres moteurs pour effectuer la recherche. De plus, SearXNG est incroyablement léger et facile à configurer, et vous pouvez l’héberger sur un système aussi simple qu’un Raspberry Pi !

Pourquoi installer SearXNG

Les moteurs de recherche rendent la navigation et la découverte du Web incroyablement pratiques. Cependant, l’utilisation d’un moteur de recherche public a un prix : les sociétés de recherche modernes telles que Google utilisent vos données de recherche pour créer un profil très précis de vous.

Searchxng Installer 03 Google Myactivity

Ce comportement peut sembler intrusif pour les personnes qui souhaitent garder leurs recherches privées et anonymes. Par exemple, les journalistes qui traitent de sujets sensibles et controversés peuvent ne pas souhaiter que leurs requêtes de recherche soient associées à leur nom.

Searxng Install 04 Exemple d'informations classifiées

Une façon de traiter ce problème de confidentialité consiste à installer et à héberger votre propre instance de SearXNG pour vous assurer que vous seul aurez accès à vos journaux de recherche.

Ce dont vous aurez besoin

SearXNG nécessite que vous ayez quelques éléments prêts avant de pouvoir l’installer :

  • Un nom de domaine complet (FQDN): pour utiliser SearXNG, vous devez l’héberger via un serveur Web approprié avec un domaine.
  • Une machine accessible depuis l’extérieur de votre réseau domestique: il peut s’agir soit d’un ordinateur chez vous doté d’une adresse IP statique, soit d’un serveur privé virtuel (VPS) dédié que vous louez.
  • Accès root à votre machine: SearXNG vous oblige à installer certains outils système pour le configurer et l’héberger correctement.

Ce tutoriel se concentre sur l’installation et la configuration de SearXNG sur un VPS Debian 11 à partir de DigitalOcean.

Searxng Installer 05 Digitalocean Droplet

Installation des dépendances de SearXNG

Avant de pouvoir installer SearXNG, vous devez créer un compte utilisateur distinct dans votre système :

sudo useradd -s /bin/bash -d /home/searx -m -G sudo searx
sudo passwd searx
Searxng Installer 06 Créer un nouvel utilisateur

Cela vous permet d’isoler toutes les commandes et tous les fichiers lors de l’installation et de la configuration de SearXNG. Cela peut être particulièrement utile si vous avez l’intention d’héberger le moteur de recherche sur un VPS avec plusieurs services.

Passez au nouveau compte utilisateur en exécutant su searxpuis installez toutes les dépendances nécessaires pour SearXNG :

sudo apt install git nginx iptables iptables-persistent ufw certbot python3-certbox-nginx
Searxng Install 07 Dépendances d'installation

Configuration de votre pare-feu

Bien que ce ne soit pas une étape nécessaire, la configuration de votre pare-feu garantit que tout système extérieur ne pourra accéder qu’aux ports que vous autorisez pour empêcher tout acteur malveillant d’inonder votre machine de requêtes sans fin.

Searxng Install 08 Installer les règles du pare-feu

Vous pouvez utiliser les deux iptables et ufw pour activer uniquement les ports dont SearXNG a besoin :

sudo iptables -I INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
sudo netfilter-persistent save
sudo ufw allow 80
sudo ufw allow 443
  • Les deux iptables Les commandes créent une nouvelle règle qui accepte toutes les nouvelles connexions HTTP et HTTPS entrantes, permettant à votre système de servir la page Web SearXNG à vos utilisateurs.
  • La netfilter-persistent La commande enregistre et recharge toutes les modifications que vous apportez à votre pare-feu pour vous assurer que votre machine dispose des bons paramètres entre les redémarrages du système.
  • Les deux ufw garantissent que toute connexion actuelle en HTTP ou HTTPS reste ouverte pendant toute la durée de la session.

Clonage et installation de SearXNG

Les développeurs de SearXNG proposent un script d’installation simple qui gère la plupart des étapes de configuration compliquées.

Searxng Installer 09 Searxng Github Page

Obtenez ce script d’installation en clonant le programme Référentiel GitHub:

git clone https://github.com/searxng/searxng searxng && cd searxng
Searxng Install 10 Git Clone Repository

Une fois le clonage terminé, lancez le processus d’installation :

sudo -H ./utils/searxng.sh install all

Bien que ce processus soit en grande partie automatique, il existe des cas où le script vous demande de confirmer les modifications qu’il apporte. Par exemple, lorsque le script SearXNG imprime une liste des programmes qu’il va installer, vous devez appuyer sur Oui continuer.

Searxng Install 11 Exemple d'installation d'invite

Configuration de SearXNG

Vous devez configurer un serveur Web qui diffusera SearXNG, car le moteur de recherche n’est qu’un processus qui prend les demandes et publie les résultats. Sans un serveur Web approprié, il n’est pas possible d’interagir avec et d’utiliser SearXNG.

Searxng Install 12 Moteur de recherche en cours d'exécution

Actuellement, SearXNG prend officiellement en charge Apache et Nginx. Cette section se concentre sur la configuration de SearXNG en tant que service autonome à l’aide de Nginx.

Configuration de Nginx

Créez un nouveau fichier de configuration sous “/etc/nginx/sites-available/”:

sudo nano /etc/nginx/sites-available/searxng

Écrivez un bloc serveur dans le fichier qui contiendra la configuration du serveur Web. Par exemple, voici un bloc de base que j’utilise pour mon instance SearXNG :

server {
 
    # Ports.
    listen 80;
    listen [::]:80;
 
    # Hostname.
    server_name yetanothersearxserver.xyz;
 
    # Logging.
    access_log /dev/null;
    error_log  /dev/null;
 
    # Searx Redirect.
    location / {
        uwsgi_pass unix:///usr/local/searxng/run/socket;
 
        include uwsgi_params;
 
        uwsgi_param    HTTP_HOST             $host;
        uwsgi_param    HTTP_CONNECTION       $http_connection;
 
        # see flaskfix.py
        uwsgi_param    HTTP_X_SCHEME         $scheme;
        uwsgi_param    HTTP_X_SCRIPT_NAME    /searxng;
 
        # see limiter.py
        uwsgi_param    HTTP_X_REAL_IP        $remote_addr;
        uwsgi_param    HTTP_X_FORWARDED_FOR  $proxy_add_x_forwarded_for;
 
    }
}
  • La listen Les variables indiquent à Nginx que le serveur Web diffuse un service sur le port 80. Il est important de modifier cette valeur si vous exécutez déjà un hôte virtuel différent dans votre système.
  • server_name est une variable qui doit contenir un nom de domaine complet qui pointe vers votre machine. Dans mon cas, mon serveur Web utilise “yetanothersearxserver.xyz”.
  • La access_log et error_log les variables indiquent à Nginx où enregistrer les informations sur vos requêtes de recherche. Par exemple, le définir sur “/dev/null” garantit que vous n’enregistrez aucun journal sur la machine.
  • La location Le bloc indique à Nginx quoi faire chaque fois qu’un utilisateur se connecte au serveur Web.
Searxng Install 13 Exemple de configuration Nginx

Installation de SSL et activation de SearXNG

La création d’un certificat SSL pour votre instance SearXNG garantit que chaque connexion que vous établissez avec votre site Web est sécurisée.

Searxng Installer 14 exemples de certificat SSL

Activez facilement SSL gratuitement en vous inscrivant avec Permet de chiffrer‘s certbot. Par exemple, je peux exécuter la commande suivante pour émettre un certificat pour mon hôte SearXNG :

certbot --nginx yetanothersearxserver.xyz

Activez votre site Web via Nginx en créant un lien symbolique vers le dossier “sites_enabled” du serveur Web :

sudo ln -s /etc/nginx/sites-available/searx /etc/nginx/sites-enabled/

Rechargez SearXNG et Nginx pour appliquer et activer vos configurations :

sudo systemctl reload nginx
sudo service uwsgi restart searxng

Questions fréquemment posées

Est-il possible de mettre à jour SearXNG une fois que je l’ai installé ?

Oui! Bien que vous ne puissiez pas installer SearXNG via un gestionnaire de packages traditionnel, il est possible de mettre à jour et de migrer le moteur de recherche à partir de la ligne de commande. Par exemple, vous pouvez mettre à jour SearXNG en exécutant la commande suivante : sudo /home/$USER/searxng/utils/searxng.sh instance update.

Le script d’installation me dit que Redis n’est pas disponible. Mon installation a-t-elle échoué ?

Non. Mais cette erreur rendra très probablement votre instance SearXNG instable, car une défaillance Redis dans SearXNG signifie qu’elle s’exécute dans un système non-SystemD et que son démon de filtrage anti-bot ne fonctionne pas.

désinstallez SearXNG en exécutant la commande sudo /home/$USER/searxng/utils/searxng.sh remove allpour résoudre le problème et assurez-vous que vous utilisez SystemD en exécutant sudo systemctl --version.

Est-il possible de voir ce que SearXNG fait actuellement ?

Oui! Alors que SearXNG est un démon sans tête qui s’exécute en arrière-plan, il est possible de vérifier ce qu’il fait actuellement. C’est utile dans les cas où SearXNG rencontre des problèmes, et vous n’êtes pas sûr de ce qui cause des problèmes. Par exemple, je peux accéder à l’écran de débogage de SearXNG en exécutant sudo /home/$USER/searxng/utils/searxng.sh instance inspect.

Crédit image : Isaac Quesada via Unsplashmodifié par Ramces Red avec Logo SearXNG et Mot-symbole. Toutes les captures d’écran par Ramces Red.

Join our Newsletter and receive offers and updates! ✅

0 0 votes
Article Rating
Avatar of Routech

Routech

Routech is a website that provides technology news, reviews and tips. It covers a wide range of topics including smartphones, laptops, tablets, gaming, gadgets, software, internet and more. The website is updated daily with new articles and videos, and also has a forum where users can discuss technology-related topics.

Vous aimerez aussi...

S’abonner
Notification pour
guest
0 Comments
Commentaires en ligne
Afficher tous les commentaires
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x