Voici la procèdure d'installation du méta-moteur de recherche Seeks en mode serveur web (pour avoir une jolie interface comme sur seeks.fr) sur serveur Fedora 18 hébergeant d'autres services web en parallèle.

Tout d'abord récupérer la dernière version du SRPM de WilQu, ce RPM Source est actuellement en revue pour être intègré au dépôt fedora.

Puis le compiler (si vous ne savez pas compiler un SRPM, suivez la doc).

Une fois le RPM construit, nous pouvons l'installer simplement avec YUM:

# yum install seeks-0.4.2-0.4.20130121git9f17d4a.fc18.x86_64.rpm

Seeks est un service géré par systemd qu'il faut tout d'abord configurer. Ses fichiers de configuration se situent dans le répertoire /etc/seeks/. J'ai dû en modifier 3 pour répondre à mes objectifs:

  • Activer le serveur web en chargeant le plugin correspondant
  • Désactiver le mode proxy automatiquement lorsque le serveur web est activé
  • Changer le port d'écoute du serveur web seeks
  • Ajouter le nœud seeks de gnunux.info en tant que pair

Ajouter à celà le minimum de configuration obligatoire comme il est très bien expliqué dans les commentaires des fichiers de conf, on obtient les changements suivants:

--- cf-config.bak       2013-07-16 04:54:56.717574124 +0200
+++ cf-config   2013-07-16 04:56:00.981903552 +0200
@@ -18,6 +18,7 @@ record-cache-timeout 600
 cf-peer http://www.seeks.fr bsn
 cf-peer http://seeks-project.info/search_exp.php bsn
 cf-peer http://seeks-project.info/search.php bsn
+cf-peer https://seeks.gnunux.info/ bsn
 
 # Time interval in seconds between two check on dead peers.
 # default: 300
--- config.bak  2013-07-16 04:58:19.703464280 +0200
+++ config      2013-07-16 06:00:45.648877805 +0200
@@ -85,7 +85,7 @@
 #      No email address is displayed on error pages and the CGI user
 #      interface.
 #
-# admin-address seeks-admin@example.com
+admin-address hostmaster@casperlefantom.net
 #
 #
 #  1.3. proxy-info-url
@@ -239,7 +239,7 @@ logdir /var/log/seeks
 #      Any log files must be writable by whatever user Seeks is
 #      being run as.
 #
-logfile logfile
+logfile seeks.log
 #
 #
 # 2.5. plugindir
@@ -269,7 +269,7 @@ logfile logfile
 #
 #      Use --plugin-repository your_repository to override the value at startup.
 #
-# plugindir /usr/local/lib/seeks
+plugindir /lib64/seeks/plugins
 #
 # 2.6. activated-plugin
 # ======================
@@ -311,7 +311,7 @@ activated-plugin uri-capture
 activated-plugin query-capture
 activated-plugin cf
 activated-plugin udb-service
-#activated-plugin httpserv
+activated-plugin httpserv
 #activated-plugin xsl-serializer
 activated-plugin readable

 #
@@ -341,7 +341,7 @@ activated-plugin readable
 #
 #      Use --data-repository your_repository to override the value at startup.
 #
-# datadir /usr/local/share/seeks
+datadir /usr/share/seeks/
 #
 #
 #  2.8. automatic-proxy-disable
@@ -361,7 +361,7 @@ activated-plugin readable
 #     1, the proxy is automatically disabled when the HTTP server plugin is
 #        running.
 #
-# automatic-proxy-disable 1
+automatic-proxy-disable 1
 #
 #
 #  2.9. user-db-file
@@ -646,7 +646,7 @@ debug 8192 # Non-fatal errors
 #
 #      Note that Seeks does not validate the specified hostname value.
 #
-#hostname hostname.example.org
+hostname search.casperlefantom.net
 #
 #
 #  4. ACCESS CONTROL AND SECURITY
--- httpserv-config.bak 2013-07-16 05:29:25.593094537 +0200
+++ httpserv-config     2013-07-16 05:29:40.896935556 +0200
@@ -1,6 +1,6 @@
 # HTTP server listening port.
 # default: 8080
-server-port 8080
+server-port 8081
 
 # HTTP server host
 # default: localhost

Le changement du port est facultatif, moi j'ai juste Apache qui occupe déjà ce port, tout est relié au port 80 grace au reverse proxy Squid, mais à vous d'adapter selon votre serveur bien entendu. Petite mise en garde sur les chemins des répertoires dans le fichier config, des fois le / de fin n'est pas nécessaire et c'est indiqué en commentaire, des fois rien n'est indiqué mais il est vital au bon fonctionnement du service. Sinon ça donne dans /var/log/messages une erreur du genre:

Error: Cannot open template file /usr/share/seeksplugins/websearch/templates/themes/compact/seeks_ws_hp.html: No such file or directory

Le service est correctement configuré, nous pouvons donc le démarrer comme n'importe quel service systemd. Si Apache occupe déjà le port 80 de votre machine, vous pouvez configurer Apache en ajoutant dans un hôte virtuel la fonction ProxyPass afin de réacheminer les requêtes du port 80 vers le port 8080.

Voilà, j'espère vous avoir mis sur de bonnes pistes, les fichiers de confs sont très bien commentés et leur lecture est indispensable. Vous aurez sans doute remarqué dans la barre des menus de mon blog une nouvelle entrée, n'hésitez pas à en user et en abuser.