Seeks est un moteur de recherche libre (sous licence AGPL).
Son objectif est de mettre en place un moteur ouvert, décentralisé, qui permet une recherche collaborative. A ce jour, un méta-moteur libre, avec personnalisation, et possibilité de collaboration avec d'autres instances est disponible.
Nœuds web public, de démonstration: Liste des nœuds publics
Une fois le paquet installé le service ne sera lancé automatiquement qu'après le redémarrage de l'ordinateur. Si vous ne voulez pas redémarrer ce dernier, exécutez dans un terminal la commande :
sudo service seeks start
Les fichiers de configuration sont disponibles dans le dossier /etc/seeks.
/etc/seeks/config
Permet la configuration du couple ip/port d'écoute (attention à ne pas laisser votre proxy ouvert) Par défaut, seeks écoute sur le port 8250 (depuis la version 0.3, il s'agissait du port 8118 pour les versions précédentes).
Un serveur web léger est disponible, sous forme de plugin, il suffit pour l'activer de décommenter la ligne
#activated-plugin http-serv
/etc/seeks/httpserv-config
permet la configuration du couple ip/port d'écoute pour le serveur web intégré (port 8080 par défaut). L'usage du serveur web n'est pas obligatoire, l'architecture prévue initialement est bien de passer par le proxy.
/etc/seeks/websearch-config et /etc/seeks/img-websearch-config
Permet la configuration des métamoteurs texte et images, (des)activation des moteur amonts, nombre de résultats par page, analyse de contenu, et timeouts divers
/etc/seeks/lsh-config
Sert pour le chargement des listes de «stopwords» utilisés pour les fonctionnalités similar et cluster (inutile en l'état, permet uniquement l'ajout de langues au moteur)
si l'on se trouve sur une machine de bureau, on peut ajouter :
mkdir ~/src cd ~/src echo "on télécharge les sources" sudo apt-get install git-core git clone git://seeks.git.sourceforge.net/gitroot/seeks/seeks cd seeks ./autogen.sh echo "compilation" ./configure --enable-libevent1 make
cd src ./seeks
Il est peut être intéressant de relancer automatiquement en cas de crash. Pour faire ça en vitesse, il est possible de le lancer dans une boucle :
while true ; do ./seeks ; done
Ou solution plus propre : on peut utiliser Cron et lancer Seeks en tant que daemon. Il faut pour cela mettre la ligne suivant dans la crontab :
*/5 * * * * root [ ! -f /var/run/seeks.pid -o -z "$(cat /var/run/seeks.pid 2>/dev/null )" -o ! -d "/proc/$(cat /var/run/seeks.pid 2>/dev/null)" ] && cd /chemin/vers/seeks/ && ./seeks --daemon
Et lancer Seeks en précisant le fichier .pid à utiliser et qu'il faut lancer le programme en tant que daemon :
./seeks --daemon --pidfile /var/run/seeks.pid
lighty-enable-mod fastcgi /etc/init.d/lighttpd force-reload
Le script de recherche doit être copié dans un fichier nommé, par exemple, “search.php” à placer dans le “Document-Root” de votre serveur web, par défaut le répertoire “/var/www” :
<? /* Copyright Camille Harang This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.fsf.org/licensing/licenses/agpl-3.0.html. */ if (array_key_exists('HTTPS', $_SERVER) && $_SERVER['HTTPS']) $scheme = 'https://'; else $scheme= 'http://'; $seeks_uri = 'http://s.s'; $proxy = 'localhost:8250'; $base_script = $_SERVER['SCRIPT_NAME']; $base_url = $scheme.$_SERVER['HTTP_HOST'].$base_script; if ($_SERVER['REQUEST_URI'] == '/') { header('Location: '.$base_url.'/websearch-hp'); } else $url = $seeks_uri.str_replace($base_script, '', $_SERVER['REQUEST_URI']); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_PROXY, $proxy); curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1) ; $header = array("Seeks-Remote-Location: ".$base_url); if (array_key_exists('HTTP_ACCEPT_LANGUAGE', $_SERVER)) $header[] = "Accept-Language: ".$_SERVER['HTTP_ACCEPT_LANGUAGE']; curl_setopt ($curl, CURLOPT_HTTPHEADER, $header); $result = curl_exec($curl); $result_info = curl_getinfo($curl); if(curl_errno($curl)) echo 'CURL ERROR: '.curl_error($curl); curl_close($curl); header('Content-Type: '.$result_info['content_type']); echo $result; ?>
Le script est maintenant disponible à l'adresse http://localhost/search.php/websearch-hp
Plusieurs solutions pour cela. La première et la plus simple consiste à classiquement rediriger les sorties de stderr vers /dev/null lors du lancement du proxy :
./seeks 2> /dev/null
Mais il est également possible d'indiquer au serveur web de ne pas conserver les requêtes en utilisant les lignes suivantes :
$HTTP["host"] =~ "^your_node_address$" { accesslog.filename = "/dev/null" server.errorlog = "/dev/null" }
Il est possible d'interroger Seeks de diverses manières :
# .google.*/search? # .google.*/custom? # .bing.*/search? # .cuil.com/search?
La base de données qui stocke les recherches passées et résultats associés se situe dans /var/lib/seeks ou ~/.seeks suivant la méthode d'installation.
#snip# activated-plugin httpserv #snip#
attention, cela désactive le proxy, il faut désactiver l'option automatic-proxy-disable pour utiliser à la fois le proxy et le plugin http.
Vous pouvez configurer le proxy (qui est basé sur Privoxy) grâce au fichier “/etc/seeks/config” ou ~/src/seeks/src/config suivant la méthode d'installation. Ce fichier de configuration est similaire à celui de Privoxy.
Il est également possible de paramétrer le comportement du proxy concernant les recherches, par exemple en choisissant les moteurs à interroger, l'affichage d'une vignette représentant chaque résultat et le nombre de résultats par page, etc. Pour cela il faut éditer le fichier “/etc/seeks/websearch-config ou ~/src/seeks/src/plugins/websearch/websearch-config”.
Pour plus de détails, voir la documentation de toutes les options de configuration de Seeks http://www.seeks-project.info/wiki/index.php/Seeks_Configuration (en anglais).
Contributeurs : Psychederic, piti, lylambda, …