• Applications
  • [Discussion] Installer searx, un méta-moteur de recherche

Sympa le tuto Wonder o/
8 jours plus tard
Salut,

Merci pour le tuto

Par contre j'ai ça au moment du make:
 make production
bin/buildout -c production.cfg
Develop: '/var/www/searx/searx/.'
/var/www/searx/searx/eggs/setuptools-18.0.1-py2.7.egg/pkg_resources/__init__.py:203: RuntimeWarning: You have iterated over the result of pkg_resources.parse_version. This is a legacy behavior which is inconsistent with the new version class introduced in setuptools 8.0. In most cases, conversion to a tuple is unnecessary. For comparison of versions, sort the Version instances directly. If you have another use case requiring the tuple, please file a bug with the setuptools project describing that need.
  stacklevel=1,
While:
  Installing.
  Getting section crontab_reboot.
  Initializing section crontab_reboot.
  Loading zc.buildout recipe entry z3c.recipe.usercrontab:default.

An internal error occurred due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
  File "/var/www/searx/searx/eggs/zc.buildout-1.7.1-py2.7.egg/zc/buildout/buildout.py", line 1866, in main
    getattr(buildout, command)(args)
  File "/var/www/searx/searx/eggs/zc.buildout-1.7.1-py2.7.egg/zc/buildout/buildout.py", line 509, in install
    [self[part]['recipe'] for part in install_parts]
  File "/var/www/searx/searx/eggs/zc.buildout-1.7.1-py2.7.egg/zc/buildout/buildout.py", line 1104, in __getitem__
    options._initialize()
  File "/var/www/searx/searx/eggs/zc.buildout-1.7.1-py2.7.egg/zc/buildout/buildout.py", line 1189, in _initialize
    recipe_class = _install_and_load(reqs, 'zc.buildout', entry, buildout)
  File "/var/www/searx/searx/eggs/zc.buildout-1.7.1-py2.7.egg/zc/buildout/buildout.py", line 1149, in _install_and_load
    req.project_name, group, entry)
  File "/var/www/searx/searx/eggs/setuptools-18.0.1-py2.7.egg/pkg_resources/__init__.py", line 558, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/var/www/searx/searx/eggs/setuptools-18.0.1-py2.7.egg/pkg_resources/__init__.py", line 2682, in load_entry_point
    return ep.load()
  File "/var/www/searx/searx/eggs/setuptools-18.0.1-py2.7.egg/pkg_resources/__init__.py", line 2355, in load
    return self.resolve()
  File "/var/www/searx/searx/eggs/setuptools-18.0.1-py2.7.egg/pkg_resources/__init__.py", line 2361, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/var/www/searx/searx/eggs/z3c.recipe.usercrontab-1.4-py2.7.egg/z3c/recipe/usercrontab/__init__.py", line 12, in <module>
    from zc.buildout.buildout import bool_option
ImportError: cannot import name bool_option
Makefile:38: recipe for target 'production' failed
make: *** [production] Error 1
Les make capricieux... :noel

Essaie :
pip install -r requirements.txt
make clean && make production
Si ça marche pas, essaie :
make clean && make minimal
nano searx/settings.yml # Configuration
python searx/webapp.py # S'il n'y aucune erreur c'est que c'est bon
bin/searx-run # Pour lancer en background, mais tu n'auras pas supervisor
Capricieux, c'est le mot oui! Quelque-chose fait méchamment planter le tout chez moi

Ça n'a pas super bien fonctionné mais après environ 20 000 warnings, quelques erreurs fatales et l'installation de moultes dépendances manquantes, j'ai réussi, en faisant la 2ème manipulation que tu m'a donné et depuis un user créer par le script d'installation de rutorrent, à faire fonctionner tout ça!

Maintenant j'aimerai juste:

- Pouvoir fermer le terminal que je suis obligé de laissé ouvert pour faire tourner searx.
- Rajouter le moteur par défaut dans mes navigateurs, mais ça, j'ai l'impression que c'est pas possible...
- Restreindre l'accès de la page pour éviter qu'elle soit publique . Bon j'ai une url assez exotique mais on sait jamais.

C'est dommage que ça foire un peu, parce-que je suis vraiment enthousiasmé par le principe!
C'est du bricolage polonais tout ça, mais si ça marche, tant mieux ! :noel
Pouvoir fermer le terminal que je suis obligé de laissé ouvert pour faire tourner searx.
bin/searx-run ne fait pas tourner en background, déjà ? Sinon tu lui adjoins un '&' à la fin.
Rajouter le moteur par défaut dans mes navigateurs, mais ça, j'ai l'impression que c'est pas possible...
Faisable uniquement avec Firefox, je ne sais pas pourquoi Chrome ne veut pas, mais j'utilise Firefox pour tout. Avec Safari, tu peux utiliser un mot-clé, puisque searx a un truc genre Open Search qui le permet. Quels sont tes navigateurs ?
Restreindre l'accès de la page pour éviter qu'elle soit publique . Bon j'ai une url assez exotique mais on sait jamais.
Utiliser l'authentification HTTP, avec htpasswd comme pour ton rutorrent.
merci pour le & à la fin de la commande: ça fonctionne!

Mes navigateurs sont opéra et firefox principalement, et pour l'un comme pour l'autre impossible de définir mon instance de searx comme moteur par défaut.

Sous ff j'ai juste un lien 'ajouter d'autres moteurs de recherches' qui me renvoi vers une page de plugins quant à opéra je peux bien spécifier un moteur à la main mais ça ne fonctionne pas. J'ai une loupe qui s'ajoute en bas du menu déroulant du champ unifié mais ça lance pas la recherche. Et impossible de le rajouter aux moteurs par défaut. Je me suis mis un lien en favoris mais c'est quand même moins pratique.
Sous ff j'ai juste un lien 'ajouter d'autres moteurs de recherches' qui me renvoi vers une page de plugins
Ça marche pas comme ça chez toi ? D'abord il faut aller sur searx.domaine.tld (bien entendu) :






Le premier screen montre la barre de recherche FF, la deuxième son menu une fois déroulé en cliquant sur la loupe, la troisième dans les paramètres de FF section recherche. Pour Opera, désolé, je connais moins.
hum si si ça fonctionne comme ca

Bon par contre ça fonctionne pas non plus ça me renvoi vers http://localhost:monport. Doit falloir modifier quelque chose, quelque part.
C'est pas ton reverse proxy qui flanche ? Du côté de settings.yml il n'y rien de plus à déclarer.
Wonderfall wrote:Les make capricieux... :noel

Essaie :
pip install -r requirements.txt
make clean && make production
Résulat :

pip install -r requirements.txt => OK
http://sebsauvage.net/paste/?048e74220807cbcb#BJwUjOT7y1uGwGvcVfr037jzgMEpoS4cskWrSesw3u4=

make clean && make production => NOK
http://sebsauvage.net/paste/?e61d80e814851ab1#/b0UfzGoYNVhYxF8onPljW5sYH142R0AAWShNlokg4E=
Wonderfall wrote: Si ça marche pas, essaie :
make clean && make minimal
nano searx/settings.yml # Configuration
python searx/webapp.py # S'il n'y aucune erreur c'est que c'est bon
bin/searx-run & # Pour lancer en background, mais tu n'auras pas supervisor
make minimal => OK
http://sebsauvage.net/paste/?084e7998c33f046c#Ytzwm59v3sLNUfoPvCImLlV2nlSKFFeVEcXI7AXu0NI=

Cela fonctionne sur le RPI même si c'est un peu lent. C'est possible de faire sans https? Je n'arrive plus à retrouver le searx/settings.yml.
C'est possible de faire sans https? Je n'arrive plus à retrouver le searx/settings.yml.
C'est du côté du reverse proxy, il faut commenter le block qui écoute sur 80 et pour le reste tu désactives tout ce qui touche à SSL/TLS.
Bon ça fonctionne aussi sur mon serveur kim maintenant.
Au final j'ai pas fais de make.

J'ai fais comme suit :
git clone https://github.com/asciimoo/searx.git && cd searx
Je pouvais pas faire de commande pip, alors j'ai fais un
apt-get install python-pip

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  python-cffi python-chardet python-colorama python-cryptography python-distlib python-html5lib python-ndg-httpsclient python-openssl python-ply python-pyasn1 python-pycparser python-requests python-urllib3 python-wheel
Suggested packages:
  python-cryptography-doc python-cryptography-vectors python-genshi python-lxml python-openssl-doc python-openssl-dbg python-ply-doc doc-base
Recommended packages:
  python-dev-all
The following NEW packages will be installed:
  python-cffi python-chardet python-colorama python-cryptography python-distlib python-html5lib python-ndg-httpsclient python-openssl python-pip python-ply python-pyasn1 python-pycparser python-requests python-urllib3 python-wheel
0 upgraded, 15 newly installed, 0 to remove and 0 not upgraded.
Need to get 1 240 kB of archives.
After this operation, 6 117 kB of additional disk space will be used.
Do you want to continue? [O/n] 
[...]
J'ai d'abord fais un "# pip install -r requirements.txt" sans les droits root et je me suis mangé un
error: could not create '/usr/local/lib/python2.7/dist-packages/flask': Permission denied
Sinon quand ça réussi ça donne ça

Après j'ai re-suivis le tuto :
sed -i -e "s/ultrasecretkey/`openssl rand -hex 16`/g" searx/settings.yml
Puis pour le lancer : python searx/webapp.py

Le problème est qu'il n'est pas définit comme service, donc au reboot faudra le relancer à la main, pas cool.

Alors impossible de lancer en tant que service de cette manière !
bin/searx-run ne fonctionne pas et on se retrouve avec le même problème que Hiden :
Hiden wrote:Pouvoir fermer le terminal que je suis obligé de laissé ouvert pour faire tourner searx.
La méthode qui fonctionne bien et tout simplement la méthode recommandée, elle est super rapide à mettre en place :

Alternative (Recommended) Installation

clone source: git clone https://github.com/asciimoo/searx.git && cd searx
build in current folder: make minimal
run bin/searx-run to start the application

Bon bah voilà, ça tourne ! xd
Ou bien tu mets le '&', pareil.
La méthode recommandée (celle qui est utilisée pour le tutoriel d'ailleurs mais développée) recommande ( :noel ) d'utiliser make, mais pas forcément l'environnement minimal. Pour du déploiement, ça aurait toujours été mieux de réussir à lancer make production, même si à part supervisor je vois pas de grand avantage. webapp.py est juste à lancer en tant que tel puis à fermer de suite pour vérifier s'il n'y a pas d'erreurs.

Je rajoute python-pip dans les dépendances, j'avais oublié, c'est un des premiers trucs que j'installe en général. :noel
Wonderfall wrote:Ou bien tu mets le '&', pareil.
La méthode recommandée (celle qui est utilisée pour le tutoriel d'ailleurs mais développée) recommande ( :noel ) d'utiliser make, mais pas forcément l'environnement minimal. Pour du déploiement, ça aurait toujours été mieux de réussir à lancer make production, même si à part supervisor je vois pas de grand avantage. webapp.py est juste à lancer en tant que tel puis à fermer de suite pour vérifier s'il n'y a pas d'erreurs.

Je rajoute python-pip dans les dépendances, j'avais oublié, c'est un des premiers trucs que j'installe en général. :noel
Je retente le make production, ça ne passe pas, j'ai fais un make test, il me sort ça :
Running searx.testing.SearxTestLayer tests:
  Set up searx.testing.SearxTestLayer in 0.000 seconds.
  Running:
                    
  Ran 125 tests with 0 failures, 0 errors, 0 skipped in 2 minutes 10.998 seconds.
Tearing down left over layers:
  Tear down searx.testing.SearxTestLayer in 0.000 seconds.
make: grunt: Command not found
Makefile:29: recipe for target 'tests' failed
make: *** [tests] Error 127
Wonderfall wrote:C'est pas ton reverse proxy qui flanche ? Du côté de settings.yml il n'y rien de plus à déclarer.
Le reverse proxy c'est bien le bloc avec "proxy_pass htttp://blabla" dans searx.conf? Si c'est ça j'ai essayé avec le vhost du tuto et en modifiant "localhost:le_port" par "mon_ip:le_port" mais la je me mange une erreur 504. (ouais désolé je débute 8o)). J'ai pensé à un conflit avec rutorrent.conf (c'est possible?) qui est celui créer par le script du fofo mais je vois pas trop ce qui pourrait bloquer.
Il faut choisir un port qui n'est pas utilisé, mais je pense que tu as compris.
Normalement c'est bel et bien http://localhost😛ort (https si tu as défini https dans settings.yml ce qui ne sert à rien). Quand tu dis que ça te renvoie vers "http://localhost:monport" c'est une redirection ?
Je pense pas, ça me renvoie directement sur localhost😛ort (sans http). J'ai l'impression d'avoir pas été clair, alors je précise:

J'arrive à accéder a searx via http://sd.ndd.tld, c'est après (une fois la manip' pour le rajouter aux moteurs faite dans ff) quand je lance une recherche que j’atterris sur localhost😛ort.
Par contre je dois relancer quasi tout les jours le service parce qu'il plante... on ne peut pas automatiser ça, même avec un installation via "make minimal" ?
Hiden wrote:Je pense pas, ça me renvoie directement sur localhost😛ort (sans http). J'ai l'impression d'avoir pas été clair, alors je précise:

J'arrive à accéder a searx via http://sd.ndd.tld, c'est après (une fois la manip' pour le rajouter aux moteurs faite dans ff) quand je lance une recherche que j’atterris sur localhost😛ort.
C'est effectivement le cas. Il faudrait ajouter la directive (dans le vhost nginx) :
proxy_set_header Host $host
Afin que l'URL soit conforme. On arrive donc à ça :
...
location / {
        proxy_pass http://127.0.0.1:8888;
        proxy_set_header Host $host;
...
Néanmoins, je ne sais pas comment forcer le https. En effet, je me retrouve avec une URL en http. (même si la redirection est faite par la suite.)



Si quelqu'un a une idée ?