Dies ist die archivierte Version des Blogs vom 05.01.2017. Aktuelle Beiträge findest du unter thomas-leister.de
 

Die Open Source Metasuchmaschine, die Dennis in kürzlich auf diesem Blog vorgestellt hat, basiert auf Python und kann auch auf einem eigenen Server installiert werden. So erlangt man noch mehr Kontrolle und kann sich absolut sicher sein, dass keine Nutzungsstatistiken erhoben werden.

In diesem Beitrag werde ich die Installation und Einrichtung auf einem Ubuntu 12.04 Server mit Apache Webserver erklären. Dabei orientiere ich mich an der offiziellen, englischsprachigen Anleitung auf GitHub. Die Anleitung sollte aber auch für die meisten anderen Linux-basierten Server gelten (evtl. heißen die zu installierenden Pakete anders).

Searx Basis installieren

Zuerst müssen alle nötigen Python Pakete sowie Git und Kompilierungsbibliotheken auf dem System installiert werden:

sudo apt-get install git build-essential libxslt-dev python-dev python-virtualenv python-pybabel zlib1g-dev

Ein neuer Nutzer „searx“ wird angelegt:

sudo adduser searx --disabled-password --disabled-login

… und zu diesem Benutzer gewechselt:

sudo -i -u searx

Dann wird der Searx Code von GitHub heruntergeladen und im Verzeichnis /home/searx/ abgelegt:

sudo git clone https://github.com/asciimoo/searx.git

Nun wird in den searx-Unterordner gewechselt:

cd searx

… und eine virtuelle Pythonumgebung „searx-ve“ generiert und dann aktiviert.

virtualenv searx-ve
. ./searx-ve/bin/activate

Weitere Pythonbibliotheken, die von Searx benötigt werden, werden nun nachinstalliert:

pip install -r requirements.txt

Die Datei settings.yml soll einen zufälligen Schlüssel beinhalten, der durch folgendes Kommando generiert und an die entsprechende Stelle der Konfigurationsdatei geschrieben wird:

sed -i -e "s/ultrasecretkey/`openssl rand -hex 16`/g" searx/settings.yml

In der Konfiguration settings.yml lassen sich noch weitere Einstellungen festlegen, wie z.B. der Port, auf den die Suchmaschine lauschen soll. Standardmäßig ist das der Port 8888.

Außerdem können in der Datei Suchmaschinen definiert werden, die nach Ergebnisse abgefragt werden sollen. Auf diese Weise lassen sich z.B. Ergebnisse von Flickr und Bing ausschließen.

Die virtuelle Pythonumgebung und der Benutzer „searx“ werden nun durch Eingabe von „exit“ verlassen und wir kümmern und um den automatischen Start von Searx.

Automatischer Start mit uWSGI

uWSGI erlaubt es uns, die Suchmaschine beim Systemstart automatisch starten zu lassen und sorgt dafür, dass Searx im Hintergrund als Daemon läuft. Dazu wird uwsgi für Python installiert:

sudo -s
apt-get install uwsgi uwsgi-plugin-python

Mit root-Rechten wird eine Konfigurationsdatei für den neuen uwsgi Service erstellt:

nano /etc/uwsgi/apps-available/searx.ini

… und mit folgendem Inhalt gefüllt:

[uwsgi]
# Who will run the code
uid = searx
gid = searx

# Number of workers
workers = 4

# The right granted on the created socket
chmod-socket = 666

# Plugin to use and interpretor config
single-interpreter = true
master = true
plugin = python

# Application base folder
base = /home/searx/searx

# Module to import
module = searx.webapp

# Virtualenv and python path
virtualenv = /home/searx/searx/searx-ve/
pythonpath = /home/searx/searx/
chdir = /home/searx/searx/searx/

# The variable holding flask application
callable = app

Die Konfiguration wird im uwsgi Apps Verzeichnis registriert (verlinkt) und gestartet:

cd /etc/uwsgi/apps-enabled
ln -s ../apps-available/searx.ini
service uwsgi restart

 

Searx mit Apache Webserver verbinden

Searx wird soll durch den Apache Webserver aufgerufen werden. Sobald eine bestimmte Domain oder ein durch „<location>“ definierter Pfad aufgerufen wird z.B. suche.domain.tld, soll Searx aktiv werden. Ich gehe von einem fertig installierten und konfigurierten Webserver aus. Für die uwsgi-Funktionalität muss ein Apache Modul nachinstalliert werden:

apt-get install libapache2-mod-uwsgi
a2enmod uwsgi

In eine beliebige Apache Virtual Host Konfiguration können nun folgende Zeilen eingefügt werden:

Options FollowSymLinks Indexes
SetHandler uwsgi-handler
uWSGISocket /run/uwsgi/app/searx/socket

Sie sorgen dafür, dass Anfragen an das Searx Python Programm weitergeleitet werden. Zum Schluss wird der Webserver neu gestartet damit die Änderungen an der Konfiguration übernommen werden und das uwsgi Modul aktiv wird:

service apache2 restart

Searx aktualisieren

Wie ihr Searx updaten könnt, erfahrt ihr in diesem Beitrag: Searx aktualisieren


Post published on 31. Januar 2014 | Last updated on 14. Juli 2016
Tags:                     

Diesen Blog unterstützen

Wenn Dir der Beitrag gefallen hat, freue ich mich über einen kleinen Obolus :-) Bitcoin QR Code

PayPal-Seite: https://www.paypal.me/ThomasLeister
Meine Bitcoin-Adresse: 15z8 QkNi dHsx q9WW d8nx W9XU hsdf Qe5B 4s

Siehe auch: Unterstützung

Informationen zum Autor

Thomas Leister

Geb. 1995, Kurzhaar-Metaller, Geek und Blogger. Nutzt seit Anfang 2013 ausschließlich Linux auf Desktop und Servern. Student der Automobilinformatik an der Hochschule für angewandte Wissenschaften in Landshut.

15 thoughts on “Metasuchmaschine Searx auf eigenem Linux Server installieren

  • Danke für die Anleitung, hat alles geklappt

  • Ich werde das Ganze dann mal versuchen auf Nginx zu buttern oder euch sogar bitten, hierfür noch ein paar Zeilen zu ergänzen.
    Sonst einmal vielen Dank =)

  • Moinsen,
    vielen Dank für die Anleitung.
    Beim Kompilieren gab es einen Fehler „cannot find -lz“, weil zwischenzeitlich weitere Pakete notwendig geworden sind, und zwar zusätzlich python-pybabel und zlib1g-dev. Siehe Hier.
    Es wäre daher sinnvoll, wenn Du die Zeile bei änderst nach:
    sudo apt-get install git build-essential libxslt-dev python-dev python-virtualenv python-pybabel zlib1g-dev
    Schönen Tag noch
    henning

  • Hi,
    ich bekomm es leider nicht hin, es startet nicht :/
    Bekomme leider auch nur ein „Adresse kann nicht gefunden werden“. Bin zu doof dazu^^

  • Hallo,

    der erste Link im Beitrag (thomas-leister.de/internet/searx-metasuchmaschine-mit-potential/) funktioniert nicht mehr.

  • Hi,

    wie sieht es damit aus, wenn ich Searx auf meinem Server installiere? Kommen die Anfragen an google und co. von meiner Server-IP oder werden sie über eine Art Proxy (Searx-Server?) weitergeleitet?
    Da ich meine eigene Domain über den Server laufen lasse, ist anhand vom Reverse-Lookup sofort eine Personalisierung möglich.

    Gruß Marco

    • Hi,

      für die Suchmaschinen (z.b. Google) sieht es so aus, als würde dein Server die Suchanfragen stellen. Für sie ist nur die Searx-Server-IP sichtbar. Aus diesem Grund sollte man einen Searx Server niemals alleine nutzen, da – wie du schon sagst – sonst sogar noch ein besseres Profiling möglich wird. Die Server-IP ist ja idR. statisch.

      Eine Searx-Instanz sollte immer von so vielen Usern wie möglich genutzt werden, um kein exaktes Profiling zuzulassen, sondern die Nutzerprofile verschwimmen zu lassen.

      LG Thomas

  • Leider startet searx nicht. Wenn ich meine Sub-Domain aufrufe, bekomme ich einen Download mit MIME application/octet-stream und die Datei ist binär.

  • Na ja, über die Funktionalität kann ich nichts sagen, da bei „ubuntu-16.04.1-server-amd64“ die Zeile „sudo adduser searx –disabled-password –disabled-login“ wörtlich genommen wird und damit ein Zugriff als „searx“ verweigert wird. Somit wird auch das Aufspielen vom Githup torpediert. Da ich eine fertige Installationsanleitung suche (aus Zeitmangel wegen eigener Projekte), muss ich mich wohl noch etwas gedulden. Aber wirklich schön und ausführlich beschrieben – die Seite merk‘ ich mir. Yacy läuft bei mir auch schon seit mehreren monaten stabil, da wäre searx eine wundervolle Ergänzung.
    Grüße von der Insel, Fred

  • Hallo, ich habe alles nach Wiki und den u.a. Anweisungen auf meinem RPi installiert. Bevor ich uwsgi installiert hatte, konnte ich per links2 searx im terminal aufrufen. Nach der installation startet zwar die searx im Terminal, aber dort wo vorher die Eingabezeile für den Suchtext war, steht nun Page not found. Wenn meinen Server über den Browser aufrufe started searx auch aber es steh auch dort nur in der Mitte Seite nicht gefunden.
    Ich gehe davon aus, dass er die webapp.py nicht startet, bzw. findet. Sie ist im Verzeichnis /usr/local/searx/searx/ so wie auch in der searx.ini angegeben.
    Woran kann es nun liegen ??

    Danke schon mal

  • Sehr gute Anleitung – hat auch mit Ubuntu 16.04 wunderbar geklappt! :-)
    Danke!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.