serveur_hebergement:installer_une_instance_searx

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
serveur_hebergement:installer_une_instance_searx [2022/10/05 14:03] fateserveur_hebergement:installer_une_instance_searx [2024/01/20 18:17] (Version actuelle) – [Redis] fate
Ligne 3: Ligne 3:
 ===== Présentation de Searxng ===== ===== Présentation de Searxng =====
  
-[[https://github.com/searxngng/searxng|Searxng]] est un métamoteur de recherche libre, c'est à dire qu'il ne gère pas lui même la recherche mais s'appuie sur des moteurs de recherches tels que bing, google, duckduckgo, etc.+[[https://github.com/searxngng/searxng|Searxng]] est un métamoteur de recherche libre, cest-à-dire qu'il ne gère pas lui-même la recherche mais s'appuie sur des moteurs de recherches tels que bing, google, duckduckgo, etc.
  
 ===== Préparation ===== ===== Préparation =====
Ligne 12: Ligne 12:
 <code bash>sudo useradd --shell /bin/bash --system --home-dir "/usr/local/searxng" --comment 'Privacy-respecting metasearch engine' searxng</code> <code bash>sudo useradd --shell /bin/bash --system --home-dir "/usr/local/searxng" --comment 'Privacy-respecting metasearch engine' searxng</code>
  
-Créez le répertoire home :  +Créez le répertoire home ainsi que le sous répertoire pour le socket uWSGI 
-<code bash>sudo  mkdir "/usr/local/searxng"</code>+<code bash>sudo mkdir -p /usr/local/searxng/run/</code>
  
 Modifiez le propriétaire du répertoire home : Modifiez le propriétaire du répertoire home :
Ligne 32: Ligne 32:
 <code bash>echo ". /usr/local/searxng/searx-pyenv/bin/activate" >>  "/usr/local/searxng/.profile"</code> <code bash>echo ". /usr/local/searxng/searx-pyenv/bin/activate" >>  "/usr/local/searxng/.profile"</code>
  
-Déconnectez vous avec la commande <code bash>exit</code>+Déconnectez-vous avec la commande <code bash>exit</code>
 Connectez-vous de nouveau avec l'utilisateur searxng : Connectez-vous de nouveau avec l'utilisateur searxng :
 <code bash>sudo -u searxng -i</code> <code bash>sudo -u searxng -i</code>
Ligne 46: Ligne 46:
 Lancez l'installation : Lancez l'installation :
 <code bash> <code bash>
-cd "/usr/local/searxng/searx-src"+cd "/usr/local/searxng/searxng-src"
 pip install -e . pip install -e .
 </code> </code>
Ligne 142: Ligne 142:
   * safe_search: 0 -> la Recherche sécurisée est désactivée   * safe_search: 0 -> la Recherche sécurisée est désactivée
   * autocomplete: 'duckduckgo' -> l'autocomplétion est fournie par duckduckgo   * autocomplete: 'duckduckgo' -> l'autocomplétion est fournie par duckduckgo
-  * formats: - html -> seule l'accès via le site est autorisée. L'accès via RSS/JSON est désactivée (seuls les bot utilisent ces accès)+  * formats: - html -> seule l'accès via le site est autorisée. L'accès via RSS/JSON est désactivée (seuls les bots utilisent ces accès)
   * limiter: true -> active le filtre anti-bot   * limiter: true -> active le filtre anti-bot
   * results_on_new_tab: true -> ouvre les résultats dans un nouvel onglet   * results_on_new_tab: true -> ouvre les résultats dans un nouvel onglet
   * use_mobile_ui: true -> permet d'éviter le blocage de Google   * use_mobile_ui: true -> permet d'éviter le blocage de Google
-  * + 
 +===== Redis ===== 
 + 
 +Redis va stocker la base de donnée du plugin "limiter" servant à lutter contre les bots. 
 + 
 +On va utiliser le script d'installation fourni par SearXNG pour l'installer et le configurer : 
 +<code bash> 
 +sudo -s  
 +sudo /usr/local/searxng/searxng-src/utils/searxng.sh install redis 
 +</code> 
 + 
 +Choisissez les réponses par défaut à chaque question.
 ===== uWSGI ===== ===== uWSGI =====
  
Ligne 156: Ligne 167:
 Collez-y les lignes suivantes : Collez-y les lignes suivantes :
 <code bash> <code bash>
 +# -*- mode: conf; coding: utf-8  -*-
 [uwsgi] [uwsgi]
  
Ligne 163: Ligne 175:
 # https://uwsgi-docs.readthedocs.io/en/latest/Options.html#uwsgi-core # https://uwsgi-docs.readthedocs.io/en/latest/Options.html#uwsgi-core
  
-# Who will run the code+# Who will run the code / Hint: in emperor-tyrant mode uid & gid setting will be 
 +# ignored [1].  Mode emperor-tyrant is the default on fedora (/etc/uwsgi.ini). 
 +
 +# [1] https://uwsgi-docs.readthedocs.io/en/latest/Emperor.html#tyrant-mode-secure-multi-user-hosting 
 +#
 uid = searxng uid = searxng
 gid = searxng gid = searxng
Ligne 173: Ligne 189:
  
 # chdir to specified directory before apps loading # chdir to specified directory before apps loading
-chdir = /usr/local/searxng/searxng-src/searxng+chdir = /usr/local/searxng/searxng-src/searx
  
-searxng configuration (settings.yml) +SearXNG configuration (settings.yml) 
-env = SEARX_SETTINGS_PATH=/etc/searxng/settings.yml+env = SEARXNG_SETTINGS_PATH=/etc/searxng/settings.yml
  
 # disable logging for privacy # disable logging for privacy
Ligne 210: Ligne 226:
  
 # load a WSGI module # load a WSGI module
-module = searxng.webapp+module = searx.webapp
  
 # set PYTHONHOME/virtualenv # set PYTHONHOME/virtualenv
-virtualenv = /usr/local/searxng/searxng-pyenv+virtualenv = /usr/local/searxng/searx-pyenv
  
 # add directory (or glob) to pythonpath # add directory (or glob) to pythonpath
Ligne 221: Ligne 237:
 # speak to upstream # speak to upstream
 # ----------------- # -----------------
-# 
-# Activate the 'http' configuration for filtron or activate the 'socket' 
-# configuration if you setup your HTTP server to use uWSGI protocol via sockets. 
  
-# using IP: +socket = /usr/local/searxng/run/socket 
-+buffer-size = 8192
-# https://uwsgi-docs.readthedocs.io/en/latest/Options.html#pluginttp +
-# Native HTTP support: https://uwsgi-docs.readthedocs.io/en/latest/HTTP.html+
  
-http = 127.0.0.1:8888 +uWSGI serves the static files and in settings.yml we use::
- +
-using unix-sockets: +
-+
-# On some distributions you need to create the app folder for the sockets::+
 # #
-#   mkdir -p /run/uwsgi/app/searxng +#   ui: 
-  chown -R searxng:searxng  /run/uwsgi/app/searxng+    static_use_hashtrue
 # #
-# socket = /run/uwsgi/app/searxng/socket+static-map = /static=/usr/local/searxng/searxng-src/searx/static 
 +# expires set to one year since there are hashes 
 +static-expires = /* 31557600 
 +static-gzip-all = True 
 +offload-threads = %k
  
 # Cache # Cache
Ligne 253: Ligne 264:
 ===== Configuration d'Apache ===== ===== Configuration d'Apache =====
  
-On va configurer Apache2 pour pour voir accéder à notre instance Searx via un sous domaine style searx.domaine.fr (je ne traiterai pas la gestion du nom de domaine)+On va configurer Apache2 pour pouvoir accéder à notre instance Searx via un sous domaine style searx.domaine.fr (je ne traiterai pas la gestion du nom de domaine)
  
 Activez les modules Apache2 nécessaires : Activez les modules Apache2 nécessaires :
-<code bash>sudo a2enmod headers proxy proxy_http</code>+<code bash>sudo a2enmod headers proxy proxy_http ssl proxy_uwsgi</code>
  
 Créez le fichier de config Apache2 : Créez le fichier de config Apache2 :
 <code bash>sudo nano /etc/apache2/sites-available/searx.domaine.fr.conf</code> <code bash>sudo nano /etc/apache2/sites-available/searx.domaine.fr.conf</code>
  
-Copiez-y les lignes suivantes (remplacez le noom de domaine par le votre ainsi que l'emplacement des fichiers SSL) : +Copiez-y les lignes suivantes (remplacez le noom de domaine par le vôtre ainsi que l'emplacement des fichiers SSL) : 
 <code apache> <code apache>
 <VirtualHost *:80> <VirtualHost *:80>
  
         ServerName searx.nomdedomaine.fr         ServerName searx.nomdedomaine.fr
-        ServerAdmin fate@nomdedomaine.fr 
  
         Redirect / https://searx.nomdedomaine.fr/         Redirect / https://searx.nomdedomaine.fr/
  
 </VirtualHost> </VirtualHost>
 +
 +<VirtualHost *:443>
 +        ServerName searx.rasp.fr
  
         LogLevel warn         LogLevel warn
         ErrorLog ${APACHE_LOG_DIR}/searxng.error.log         ErrorLog ${APACHE_LOG_DIR}/searxng.error.log
  
-        <IfModule mod_ssl.c> + 
-                SSLEngine on +        SSLEngine on 
-                SSLProxyEngine On +        SSLProxyEngine On 
-                ProxyRequests Off +        ProxyRequests Off 
-                ProxyPreserveHost On +        ProxyPreserveHost On 
-                SSLCertificateFile /etc/letsencrypt/live/nomdedomaine.fr/fullchain.pem +        SSLCertificateFile /etc/letsencrypt/live/nomdedomaine.fr/fullchain.pem 
-                SSLCertificateKeyFile /etc/letsencrypt/live/nomdedomaine.fr/privkey.pem +        SSLCertificateKeyFile /etc/letsencrypt/live/nomdedomaine.fr/privkey.pem 
-                AddDefaultCharset utf-8 +        AddDefaultCharset utf-8 
-                HostnameLookups off +        HostnameLookups off 
-                UseCanonicalName off +        UseCanonicalName off 
-                ProxyBadHeader Ignore +        ProxyBadHeader Ignore 
-                KeepAlive off +        KeepAlive off 
-                Header set Content-Security-Policy "upgrade-insecure-requests; default-src 'none'; script-src 'self'; style-src 'self' 'unsafe-inline'; form-action 'self'; font-src 'self'; frame-ancestors 'self'; base-uri 'self'; connect-src 'self' https://overpass-api.de; img-src *; frame-src https://www.youtube-nocookie.com https://player.vimeo.com https://www.dailymotion.com https://www.deezer.com https://www.mixcloud.com https://w.soundcloud.com https://embed.spotify.com; media-src *" +        Header set Content-Security-Policy "upgrade-insecure-requests; default-src 'none'; script-src 'self'; style-src 'self' 'unsafe-inline'; form-action 'self'; font-src 'self'; frame-ancestors 'self'; base-uri 'self'; connect-src 'self' https://overpass-api.de; img-src *; frame-src https://www.youtube-nocookie.com https://player.vimeo.com https://www.dailymotion.com https://www.deezer.com https://www.mixcloud.com https://w.soundcloud.com https://embed.spotify.com; media-src *"
-        </IfModule>+
                  
         ProxyPreserveHost On         ProxyPreserveHost On
Ligne 300: Ligne 312:
 </VirtualHost> </VirtualHost>
  
-# modern configuration, tweak to your needs 
-SSLProtocol             all -SSLv3 -TLSv1 -TLSv1.1 
-SSLCipherSuite          ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256 
-SSLHonorCipherOrder     on 
-SSLCompression          off 
-SSLSessionTickets       off 
- 
-# OCSP Stapling, only in httpd 2.3.3 and later 
-SSLUseStapling          on 
-SSLStaplingResponderTimeout 5 
-SSLStaplingReturnResponderErrors off 
-SSLStaplingCache        shmcb:/var/run/ocsp(128000) 
 </code> </code>
  
 Activez le fichier de configuration : Activez le fichier de configuration :
 <code bash>sudo a2ensite searx.nomdedomaine.fr.conf</code> <code bash>sudo a2ensite searx.nomdedomaine.fr.conf</code>
- 
-===== Redis ===== 
- 
-Redis va stocker la base de donnée du plugin "limiter" servant à lutter contre les bots. 
- 
-On va utiliser le script d'installation fourni par SearXNG pour l'installer et le configurer : 
-<code bash>sudo -H /usr/local/searxng/searxng-src/utils/searxng.sh install redis</code> 
- 
-Choissisez les réponses par défaut à chaque question. 
  
 Votre instance SearXNG est maintenant accessible à l'adresse searx.nomdedomaine.fr. Votre instance SearXNG est maintenant accessible à l'adresse searx.nomdedomaine.fr.
  • serveur_hebergement/installer_une_instance_searx.1664978585.txt.gz
  • Dernière modification : 2023/08/08 14:01
  • (modification externe)