BLog

ImprintImpressum
PrivacyDatenschutz
DisclaimerHaftung
Downloads 

Better SearX

Von allen Seiten bekommt man zu hören wie böse Swmnbn ist, und z.B. seine Monopolstellung und andere Stellungen gnadenlos zu Lasten kleinerer Werbemarktteilnehmer ausnutzt, und dann sowieso das Tracking und der Datenschutz - ganz schlimm. Wer kennt das nicht, als guter Staatsbürger, der seinen gewählten Volksvertretern und ihrem Qualitätsjournalismus hin und wieder noch was glaubt, spielt man dann eben mal für ein paar Tage das Suchmaschinen-Bingo durch - Yahoo, Qwant, Yandex, DuckDuckGo, Bing, Swmnbn - und bleibt dann genervt doch wieder bei Swmnbn. Denn man stellt jedesmal fest, daß man bei Swmnbn meistens das findet was man sucht, und man bei den anderen doch zu häufig nur irgendwas findet. Schluß jetzt mit dem Bingo, hier wird ab sofort nur noch gesearxt.

SearX ist eine Metasuchmaschine, die man sich am besten entweder auf dem eigenen Computer oder noch besser gleich nur einmal für alle Endgeräte im Netz auf einem Server im LAN installiert. Es gibt auch öffentliche SearX-Seiten, deren Betrieb aber rechtlich fragwürdig erscheint, und von daher sollen wo immer möglich private SearX-Instanzen benutzt werden. Jedenfalls kann man sich das Bingo damit wirklich sparen, denn die Suchanfrage wird gleichzeitig an alle eingestellten Suchmaschinen gesendet.

Die Ergebnisse werden nach einem einfachen Algorithmus gewichtet und gemeinsam präsentiert. Es wird auch kein Werbemarktteilnehmer bevorzugt bzw. benachteiligt, alle werden gleich behandelt, nämlich aussortiert und ignoriert - geht es eigentlich noch gerechter?

Installation eines lokalen SearX-Daemons unter macOS

Der lokale SearX-Daemon beantwortet Anfragen unter der Adresse http://localhost:8888/. Somit ist von Haus aus schon sichergestellt, daß nur lokale Web-Browser darauf zugreifen können. SearX ist ein Python-Programm, und im ersten Schritt soll die aktuelle Version von Python heruntergeladen und installiert werden. Zum Download geht es hier:

Bei Betätigen des Download-Knopfes wird ein Installationspaket geladen. Wenn man auf das geladene Paket doppelklickt, dann öffnet sich das Installationsprogamm, und man klickt mehrfach auf Fortfahren, bestätigt alle Voreinstellungen, gibt das Administratorkennwort ein, und Python ist dann auch rasch schon installiert. Man kann alle Fenster schließen und das Installations-Paket löschen.

Für die SearX-Installation sowie zum Starten und Stoppen unter macOS habe ich Scripts, eine Einstellungsdatei und eine Launch-Daemon-Konfigurationsdatei vorbereitet, und alles kann in einem .zip-Paket von dieser meiner Seite heruntergeladen werden:

https://obsigna.com/articles/downloads/SearX for macOS.zip

openssl dgst -sha256 "SearX for macOS.zip"
SHA256(SearX for macOS.zip) = aef17b284f1c764203078c09c4cf5dd93a9c48594128907d9afccddf36c707cb

Man entpackt das .zip-Packet mit einem Doppelklick und öffnet das entpackte Verzeichnis. Darin befindet sich das Shell-Script mit den Installations-Kommandos.

Man öffne das Terminal (Finder-Menü Gehe zu → Dienstprogramme : Terminal) und ziehe das Icon von install searx auf das offene Terminal-Fenster (Drag & Drop). Der Pfad von install searx wird damit in die Kommandozeile eingesetzt und zwecks Aufruf muß man nur die Return/Enter-Taste drücken.

Im ersten Schritt wird die aktuelle SearX-Software vom offiziellen GitHub-Repository heruntergeladen und entpackt. Für die eigentliche Installation, d.h. Einbinden in die zuvor installierte Python-Umgebung, muß man nun sein Administrator-Kennwort eingeben, und der Vorgang beginnt und dauert in der Regel etwa zehn Sekunden.

Im selben Atemzug wird noch die Datei searx-settings.yml durch patchen der originalen Settings erzeugt und nach /usr/local/etc/searx-settings.yml kopiert. Zudem wird aus der Datei searx.in eine Launch-Daemon-Konfigurationsdatei generiert und nach /Library/LaunchDaemon/searx.plist bewegt. Der SearX-Deamon wird damit automatisch bei jedem Neustart aktiviert. Mit den beiden mitgelieferten Scripts, kann man ihn manuell starten bzw. stoppen.

Also ohne Neustart einmal das Icon von start searx auf das offene Terminal ziehen und mit Return/Enter SearX starten, dann 10 Sekunden warten, und los geht’s:

http://localhost:8888/

Installation eines lokalen SearX-Daemons unter Windows 7-10

Der lokale SearX-Daemon beantwortet Anfragen unter der Adresse http://localhost:8888/. Somit ist von Haus aus schon sichergestellt, daß nur lokale Web-Browser darauf zugreifen können. SearX ist ein Python-Programm, und im ersten Schritt soll die aktuelle Version von Python heruntergeladen und installiert werden. Hinweis: Für Windows 7 ist v3.8.x der letzte funktionsfähige Python-Zweig. Zu den Downloads geht es hier:

Bei Betätigen des Download-Knopfes wird ein Installationsprogramm geladen. Zwecks installation muß man auf Programm-Symbol doppelklicken:

Man klickt auf „Install Now“ und nach wenigen Minuten ist Python auch schon installiert. Man kann das Installationsfenster nun schließen und das Installationsprogramm löschen.

Für die SearX-Installation unter Windows habe ich ein Pyhton-Script, eine Einstellungs-Patch-Datei sowie eine Batch-Datei zur Einrichtung des lokalen SearX-Services vorbereitet, und alles kann in einem .zip-Paket von dieser meiner Seite heruntergeladen werden:

https://obsigna.com/articles/downloads/SearX for Windows.zip

openssl dgst -sha256 "SearX for Windows.zip"
SHA256(SearX for Windows.zip)= f04ac2bce22bd8aefbc3c036617f8806966e90fe982e72fd7700dff2d3ca95c4

Man entpackt das .zip-Packet (Rechtsklick und „Alle extrahieren…“ auswählen) und öffnet das entpackte Verzeichnis. Darin befindet sich das Python-Script mit den SearX-Installations-Kommandos.

Wenn man auf das Python-Script install-searx.py doppleklickt, dann öffnet sich ein Terminalfenster, und der Installationsvorgang beginnt auch schon direkt.

Im ersten Schritt werden zur Installation notwendige Python-Erweiterung von der Python-Seite geladen. Dann wird die aktuelle SearX-Software vom offiziellen GitHub-Repository heruntergeladen, entpackt und zusammen mit weiteren für SearX notwendigen Erweiterungen in die zuvor installierte Python-Umgebung eingebunden. Der ganze Vorgang dauert in der Regel weniger als 1 Minute.

Im selben Atemzug wurden die Voreinstellung zur Verwendung von SearX als lokale Instanz adaptiert. Schließlich muß SearX noch als Hintergrund-Service eingerichtet werden. Dazu startet man die Batch-Datei create-searx-service.bat als Administrator:

Danach startet man Windows neu, öffnet z.B. Vivaldi und los geht’s:

http://localhost:8888/

Hier beispielsweise die Suchergebnise zum Thema Coronavirus und ASS:

Installation einer privaten SearX-Instanz im LAN auf einem FreeBSD-Server

Damit die Endgeräte im Netz einfach darauf zugreifen können vergibt man bei dem lokalen DNS-Server, hier Unbound(8), einen nur lokal gültigen Domainnamen, z.B. searx.example.com. Dazu fügt man zu /etc/unbound/unbound.conf den folgenden Eintrag hinzu:

...
local-zone: "example.com" transparent
local-data: "searx.example.com IN A 192.168.0.1"
...

Dabei ist 192.168.0.1 die lokale IP-Adresse unter der unsere SearX-Instanz zu erreichen sein soll. Man startet den Name-Server neu:

   service local_unbound restart

Dann testet man im Terminal eines Client-Computers, ob die Namensauflösung funktioniert:

   host searx.example.com

   searx.example.com has address 192.168.0.1

Bei unserem Apache-Web-Server richten wir einen virtuellen Host für unsere SearX-Instanz ein:

<VirtualHost *:80>
   ServerName            searx.example.com:80

   <Proxy *>
      Require            ip 192.168.0.0/24
   </Proxy>

   ProxyPass             / unix:/tmp/searx.sock|http://searx.example.com/
</VirtualHost>

Die Proxy-Direktive stellt sicher, daß wirklich nur Endgeräte aus unserem lokalen Netz, und nicht etwa Hinz und Kunz, aus dem Internet über unseren Server searxen können. Letztgenannte dürfen sich gerne ihr eigenes SearX einrichten. Nach der Einrichtung muß der Web-Server neu gestartet werden:

   service apache24 restart

Schließlich muß SearX selbst noch installiert werden:

   mkdir -p /root/install
   cd /root/install
   fetch -o searx-master.zip https://github.com/searx/searx/archive/master.zip
   unzip searx-master.zip

Danach führt man das folgende Installatios-Shell-Script aus, das alles an die richtigen Orte bewegt und aktiviert:

#!/bin/sh

cd /root/install/searx-master

PYTH3_VERSION=`ls -l /usr/local/bin/python3 | sed -n '/.*\/usr\/local\/bin\/python3 -> python/{s///;p;}'`
rm -rf /usr/local/lib/python$PYTH3_VERSION/site-packages/searx-*.egg
rm -f /usr/local/lib/python$PYTH3_VERSION/site-packages/searx

/usr/local/bin/python$PYTH3_VERSION setup.py install

SEARX_VERSION=`sed -n '/^Version: /{s///;p;}' searx.egg-info/PKG-INFO`
ln -s searx-$SEARX_VERSION-py$PYTH3_VERSION.egg/searx /usr/local/lib/python$PYTH3_VERSION/site-packages/searx
cp /usr/local/lib/python$PYTH3_VERSION/site-packages/searx/settings.yml /usr/local/etc/searx-settings.yml
mv /usr/local/lib/python$PYTH3_VERSION/site-packages/searx/settings.yml /usr/local/lib/python$PYTH3_VERSION/site-packages/searx/settings.yml-orig
ln -s /usr/local/etc/searx-settings.yml /usr/local/lib/python$PYTH3_VERSION/site-packages/searx/settings.yml

sed -e 's|bind_address : "127.0.0.1"|bind_address : "unix:///tmp/searx.sock"|' -i "" /usr/local/etc/searx-settings.yml
sed -e 's|request_timeout : 2.0|request_timeout : 5.0|' -i "" /usr/local/etc/searx-settings.yml
sed -e "s|ultrasecretkey|`/usr/bin/openssl rand -hex 32`|" -i "" /usr/local/etc/searx-settings.yml

sed -e "s|%%PYTHON_CMD%%|/usr/local/bin/python$PYTH3_VERSION|;s|%%PYTHON_SITELIBDIR%%|/usr/local/lib/python$PYTH3_VERSION/site-packages|" /usr/ports/www/searx/files/searx.in > /usr/local/etc/rc.d/searx
chmod +x /usr/local/etc/rc.d/searx
sysrc searx_enable=YES

Schließlich muß noch SearX gestartet werden:

   service searx start

Der Startvorgang dauert zwischen 10 bis 20 s, und danach kann man schon von jedem Web-Browser auf irgendwelchen Geräten im LAN aus searxen, nämlich unter http://searx.example.com.

Copyright © Dr. Rolf Jansen - 2021-03-02 16:52:36

Diskussion auf Twiter: 1366859192963858433