Metasuchmaschine searx auf eigenem Server installieren (mit Docker und nginx)

searx Logo

Eine Suchmaschine ist eine der wichtigsten Tools im Internet. Google ist hier der unangefochtenen Platzhirsch: Die Marktmacht von Google lässt sich allein schon an der Tatsache erahnen, dass das Wort „googeln“ schon 2004 im Duden aufgenommen wurde.
Wer nun aber Wert auf Privatsphäre und Datenschutz im Internet legt, für den ist Google sicherlich nicht die beste Wahl.

Hier gilt es also, sich nach Alternativen umzusehen. Auf dem Markt gibt es zum Glück einige Suchmaschinen, die in Bezug auf Privatsphäre und Datenschutz besser dastehen als Google. Einfach eine andere Suchmaschine zu benutzen ist jedoch auch keine optimale Lösung – mehr dazu später.

Der folgende Artikel soll daher zeigen, wie man searx als eigene Metasuchmaschine mit Docker und nginx betreiben kann. Damit bleibt man auch bei der Suche im Internet Herr seiner eigenen Daten.

Update-Historie (letztes Update: 05.02.2020)
  • 05.02.2020:
    • Update für searx v0.16.0: Der Docker-Container nutzt nun den Port 8080.
  • 15.12.2019:
    • Befehl zum Starten des Docker-Containers angepasst, so dass keine Docker-Logs geschrieben werden (–log-driver none).
  • 13.11.2019:
    • Allgemeine Hinweise zum Betrieb einer eigenen searx-Instanz hinzugefügt (kleiner Nutzerkreis).
  • 21.10.2019:
    • Hinweis auf das Anpassen der Standard-Einstellungen (/opt/searx/searx/settings.yml) hinzugefügt.

Warum eine eigene Suchmaschine betreiben?

Sehen wir uns den Markt der Suchmaschinen mal näher an:

Hier gibt es zum einen Suchmaschinen, die von den jeweiligen Anbietern betrieben werden, z.B. Google, Bing, Yahoo, etc. Nur diese großen Anbieter haben die Kapazitäten, eigene Suchindizes aufzubauen. Und wer hier investiert, der möchte mit dem Produkt natürlich auch Geld verdienen. Dies sind jedoch nicht die Suchmaschinen selbst, sondern das Produkt sind dabei die Benutzer (bzw. deren Daten). Die Benutzer-Daten können gesammelt und ausgewertet werden, um daraufhin z.B. personalisierte Werbung zu schalten.

Daneben gibt es die sog. Metasuchmaschinen. Dies sind Suchmaschinen, die keine eigenen Suchindizes verwalten, sondern Suchanfragen an andere Suchmaschinen (wie z.B. Google) weiterleiten. Der große Vorteil dabei ist, dass dadurch Suchanfragen anonymisiert werden können, da z.B. Google einen User nicht mehr eindeutig tracken kann. Der einzige Nachteil an einer Metasuchmaschine ist, dass die Suchergebnisse nicht mehr personalisiert werden. Daher hat man immer das Gefühl, dass die Suchergebnisse von Google direkt etwas besser ausfallen, als die Ergebnisse einer Metasuchmaschine. Google schafft dies allerdings nur, weil die User getrackt werden, und das wollen wir ja gerade verhindern.

Lange Zeit habe ich Startpage als Metasuchmaschine genutzt und empfohlen. Jedoch hat Startpage ab Oktober diesen Jahres mit System1 LLC einen neuen Anteilseigner (Quellen: hier bzw. hier). Dessen Geschäftsmodell basiert allerdings genau auf dem Sammeln und Auswerten von Daten. Dies passt meiner Meinung nach nicht zu den Grundsätzen von Startpage (lt. eigener Aussage „die diskreteste Suchmaschine der Welt“). Mit dieser Meinung stehe ich sicherlich nicht allein da, siehe Startpage and System1 Abuse Your Privacy Under the Guise of ‘Privacy One Group’.

Eine Alternative wäre hier z.B. DuckDuckGo (ebenfalls eine Metasuchmaschine). Allerdings wird diese von einem amerikanischen Anbieter betrieben, der lt. Gesetzt dazu verpflichtet ist, mit den US-Behörden zusammen zu arbeiten. Also kann man im Zweifelsfall auch davon ausgehen, dass hier Daten gespeichert und ausgewertet/weitergegeben werden.

Mit searx gibt es allerdings auch eine Metasuchmaschine, die auf einem eigenen Server betrieben werden kann. Ziel dieses Open Source Projektes ist der Schutz der Privatsphäre der Benutzer, indem keine IP-Adressen an die dahinter liegenden Suchmaschinen weitergegeben werden und deren Tracking-Cookies geblockt werden.

Voraussetzungen und Installationsvarianten

searx kann auf jedem Linux-System installiert werden, welches Python-Programme ausführen kann. Dies ist auf so gut wie allen Distributionen gegeben.

Dabei gibt es mehrere Installationsvarianten:

  • Die klassische Installation.
  • Das Bauen eines Docker-Images aus dem offiziellen Repositories und der Betrieb als Docker-Container.
  • Die Nutzung eines vorgefertigten Docker-Images (z.B. wonderfall/serx bei Docker Hub).
  • Die Nutzung des Docker-Images aus dem Projekt searx-docker.

Ich empfehle hier die zweite Variante, indem das Docker-Image aus dem offiziellen Repository gebaut wird. Genau diese Variante wird daher auch in diesem Artikel gezeigt.

Daher ist der Betrieb von Docker ebenfalls eine Installations-Voraussetzung. Eine Einführung zu Docker mit Installationsanweisungen kann dem Artikel Docker auf Ubuntu Server entnommen werden.

Wichtig ist hier auch, dass die Suchmaschine per HTTPS erreichbar ist, damit die Verbindung stets verschlüsselt ist. Hier wird nginx als Webserver verwendet, der die Anfragen an die Suchmaschine an den Docker-Container weiterleitet. Der Webserver ist hierbei für die Verschlüsselung per HTTPS zuständig. Wie man die entsprechenden TLS-Zertifikate mittels acme.sh erzeugen kann, ist im Artikel RSA und ECDSA-Zertifikate mit nginx (Hybrid-Lösung) zu finden.

Am einfachsten ist der Betrieb der Suchmaschine über eine eigene (Sub-)Domain. Wenn DynDNS verwendet wird, dann empfiehlt sich das Anlegen eines CNAME-Eintrags. Details dazu findet man im Artikel Nextcloud: Online-Office mit ONLYOFFICE (mit eigener Subdomain). Im folgenden gehe ich davon aus, dass die Suchmaschine unter der Domain searx.meinedomain.de betrieben wird.

Allgemeine Hinweise zum Betrieb einer eigenen searx-Instanz

Der Artikel zeigt, wie man schnell eine eigene searx-Instanz in Betrieb nehmen kann. Jedoch sollte man sich im Vorfeld Gedanken über den Nutzerkreis der Instanz machen.

Google, Bing & Co „sehen“ nur die IP-Adresse des searx-Servers. Wenn die eigene Suchmaschine nur von sehr wenigen Usern benutzt wird (im Extremfall von nur einem Benutzer), nutzt die Verschleierung der IP-Adressen der Clients durch searx hier wenig. Die Suchmaschinen können dann ebenso einfach ein Profiling vornehmen, als wenn man die diese direkt (d.h. ohne searx) verwenden würde – da die IP pro Nutzer immer die gleiche ist.

Daher sollte man eine searx-Instanz besser nicht mit sehr wenigen/einem einzelnen Benutzer betreiben. Je mehr Benutzer die Instanz verwenden, desto weniger können die Suchmaschinen ein Profiling vornehmen.

Wenn der Nutzerkreis der eigenen searx-Instanz vermutlich sehr klein ausfallen wird, ist es vielleicht eine Überlegung wert, statt einer privaten searx-Instanz auf eine der öffentlich verfügbaren searx-Instanzen auszuweichen.

searx installieren

Zunächst bringen wir das System auf den neusten Stand:

apt update && apt upgrade -V && apt dist-upgrade && apt autoremove

Anschließend wird das Git-Repository gecloned:

cd /opt
git clone https://github.com/asciimoo/searx.git
cd searx

In den meisten Anleitungen wird das Docker-Image direkt aus dem Main-Branch des Projekts gebaut (Entwicklungsversion). Ich empfehle hier jedoch das Bauen des neusten Releases. Dazu listet man zunächst einmal die Releases des Projekts auf:

git tag -l
Auflisten der searx-Releases
Auflisten der searx-Releases

Momentan ist die Version v0.16.0 aktuell, daher rufen wir im Folgenden diesen Release ab:

git checkout tags/v0.16.0

Die Warnung („Detached Head“) kann hier ruhig ignoriert werden.

Auch wenn searx recht gute Standard-Einstellungen mitbringt (z.B. die zu verwendenden Suchmaschinen, die Standard-Sprache der Suche, das Theme, etc.), können diese Einstellungen individuell angepasst werden. Dazu wird vor dem Bauen des Docker-Images folgende Datei bearbeitet:

nano /opt/searx/searx/settings.yml

Die Inhalte dieser Datei sind eigentlich selbsterklärend und würden den Rahmen des Artikels sprengen. Daher wird an dieser Stelle nur auf die Möglichkeit hingewiesen, die Einstellungen der searx-Instanz individuell anzupassen.
Auch wenn alle Einstellungen auf Standard belassen werden, können die Benutzer der Suchmaschine später ihre individuellen Einstellungen vornehmen. Diese werden dann Client-seitig mittels eines Cookies gespeichert.

Das einzige, was ihr in der Datei settings.yml ändern solltet, ist der sog. secret_key: Dies kann mit folgendem Befehl schnell durchgeführt werden:

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

Das Docker-Image wird nun mit folgendem Befehl gebaut:

docker build -t searx .

Nun kann man sich erst mal einen Kaffee holen, da dieser Vorgang durchaus ein paar Minuten dauert.

Anschließend kann der Container auch schon gestartet werden:

docker run -d --name searx -p 8080:8080 --restart=always --log-driver none -e IMAGE_PROXY=True -e BASE_URL=https://searx.meindomain.de searx

Die Parameter haben dabei die folgende Bedeutung:

  • -p 8080:8080

    Der Port 8080 (Standard-Port von searx) wird vom Host-System an den Docker-Conatiner weitergeleitet.
    Hinweis: Dies hat sich mit der Version v0.16.0 von searx geändert, bis searx v0.15.0 war dies der Port 8888. Dieser ist weiterhin auch im Settings-File (settings.yml) von searx angegeben, wird aber nicht wirklich verwendet, da der Docker-Container nur den Port 8080 nutzt.

  • --restart=always

    Der Container soll bei jedem Systemstart automatisch gestartet werden.

  • --log-driver none
    

    Sorgt dafür, dass keine Logs geschrieben werden. Ohne diesem Parameter könnten die Logs später mit dem Befehl docker logs searx abgerufen werden.
    Wichtig:
    Dieser Parameter sollte unbedingt gesetzt werden, wenn durch die searx-Instanz absolut keine Daten geloggt werden sollen.

  • -e IMAGE_PROXY=True
    

    Aktiviert die Proxy-Funktion für Bilder, d.h. Bilder werden nicht direkt durch den Client-Browser abgerufen, sondern durch searx selbst.

  • -e BASE_URL=https://searx.meindomain.de
    

    Hiermit wird die URL angegeben, unter der searx erreichbar sein soll. Hier muss auch das Protokoll (http/https) mit angegeben werden.

Der letzte Schritt ist nun das Hinzufügen eines virtuellen Hosts für nginx:

nano /etc/nginx/conf.d/searx.meinedomain.de.conf

Beispielhaft kann die Konfiguration hier folgendermaßen aussehen:

server {
        listen 443 ssl http2;
        listen [::]:443 ssl http2;
        server_name searx.meinedomain.de;

        # Include SSL configuration
        include /etc/nginx/snippets/ssl.conf;

        # Include headers
        include /etc/nginx/snippets/headers.conf;

        # Important: Disable error and access log, so that no IPs get logged
        access_log  off;
        error_log off;

        #
        # Configuration for Searx
        #

        location / {
                proxy_pass http://localhost:8080;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Remote-Port $remote_port;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_redirect off;
        }
}

Das Setzen der Settings für SSL und der Standard-Header des Webservers erfolgt hier über das Einbinden über includes. Interessant ist hier hauptsächlich der location-Block, mit dem die Anfrage an den Docker-Container von searx weitergeleitet wird (Port 8080). Diese Kommunikation erfolgt unverschlüsselt über HTTP, da diese nur Maschinen-intern stattfindet.

Wichtig: Damit absolut keine Daten gesammelt werden, sollten Access- und Error-Log für diesen virtuellen Host deaktiviert werden (access_log off bzw. error_log off). Wenn diese nicht deaktiviert werden, werden die IPs der Aufrufer automatisch über nginx geloggt!

Zu guter Letzt muss der Webserver noch neu gestartet werden:

service nginx restart

Nun kann die Suchmaschine schon über den Browser aufgerufen werden: https://searx.meinedomain.de

searx in Firefox
searx in Firefox

Damit searx als Standard-Suchmaschine genutzt werden kann, muss diese Suchmaschine noch im Browser hinzugefügt werden. Bei Firefox kann dies über das Menü mit den drei Punkten in der Adress-Leiste erledigt werden.

searx als Suchmaschine in Firefox hinzufügen
searx als Suchmaschine in Firefox hinzufügen

Anschließend kann die Standard-Suchmaschine in den Einstellungen des Browsers gesetzt werden.

Die Nutzung von searx

Nachdem searx nun fertig installiert ist, können die Optionen der Suchmaschine über einen Klick auf Einstellungen (oben rechts) gesetzt werden (z.B. welche Suchmaschinen verwendet werden). Die wichtigste Einstellung ist hier vermutlich die Suchsprache, welche auf Deutsch – de gesetzt werden sollte, da ansonsten nur englische Suchergebnisse angezeigt werden:

Die Suchsprache in searx festlegen
Die Suchsprache in searx festlegen

Diese Einstellungen werden übrigens nicht bei searx gespeichert, sondern ausschließlich per Cookie auf dem Client.

Nun lohnt sich noch ein Blick auf die Such-Syntax. Hiermit können z.B. die Ergebnisse auf eine Suchmaschine begrenzt werden. Soll z.B. nur bei Wikipedia nach dem Suchbegriff „Nürnberg“ gesucht werden, sieht die Syntax folgendermaßen aus: !wp Nürnberg
Ebenso kann explizit nach Suchergebnissen einer bestimmten Sprache gesucht werden (z.B. Englisch): :en Nürnberg

searx updaten

Wenn eine neue Version von searx verfügbar ist, wird das alte Image entfernt und das GitHub-Repository einfach neu abgerufen, wie schon bei der initialen Installation:

docker stop searx
docker rm searx
docker rmi searx
cd /opt
rm -r searx
git clone https://github.com/asciimoo/searx.git
cd searx
git tag -l
git checkout tags/v0.16.0
docker build -t searx .
docker run -d --name searx -p 8080:8080 --restart=always -e IMAGE_PROXY=True -e BASE_URL=https://searx.meindomain.de searx

Fazit

Mittels Docker ist die eigene searx-Instanz schnell aufgesetzt. Durch das Hosten der Metasuchmaschine auf eigener Hardware und der Tatsache, dass keine IPs oder Suchanfragen geloggt werden, ist dies eine gute Lösung bzgl. Datenschutz und Privatsphäre.

Neben der Nutzung einer komplett eigenen Instanz kann auch eine öffentliche Instanz von searx genutzt werden. Eine Liste von öffentlichen Instanzen ist im Wiki des GitHub-Repositories zu finden: Searx instances

Bei der Verwendung einer öffentlichen Instanz muss man jedoch dem Administrator der Instanz vertraut werden (siehe Why use a private instance?). Von außen ist nämlich nicht ersichtlich, ob hier vielleicht doch Daten gesammelt/ausgewertet/weitergegeben werden. Absolut sicher gehen kann man hier nur durch eine eigene/persönliche Instanz von searx.

Welche Suchmaschine nutzt ihr? Ist euch hier Privatsphäre und Datenschutz wichtig, oder geht es euch mehr um den Komfort beim Suchen? Hinterlasst mir dazu doch einfach einen Kommentar.

Weiterführende Artikel

Links

109 Kommentare zu „Metasuchmaschine searx auf eigenem Server installieren (mit Docker und nginx)“

  1. Whow super interessanter Artikel!
    Ich wusste gar nicht das es so etwas zum selbst hosten gibt!
    DANKE dafür!
    Kann man sowas auch auf der Nextcloud paralell installieren und nach draußen den Port 8888 frei geben?
    Oder sollte man das Ganze in Docker betreiben?

    Gruß Bernd

    1. Hallo Bernd,

      das Betreiben über Docker ist in meinen Augen die unkomplizierteste Lösung. Du kannst natürlich auch einen anderen Port nutzen. Diesen musst du dann nur über die Firewall freigeben. Dann ist nur zu beachten, dass es etwas umständlich ist, immer den Port mit angeben zu müssen.
      Eine andere Variante wäre es, searx über ein Unterverzeichnis einer bestehenden Domain zu hosten.

      Gruß,
      Jan

  2. Habe bisher auch startpage verwendet, bin jetzt aber (aus gleichen Gründen wie du) auf eine öffentliche searx-Instanz ausgewichen.

    Macht der Betrieb der searx auf einem Home-Server Sinn ?

    Google& Co kriegen die IP und die Anfragen vom Heim-Server (searx), das will man nicht mit evtl. privaten Anfragen aus dem Heimnetz verknüpfen wollen.
    (vor allem nicht wenn die searx überwiegend von mir verwendet wird und nicht auch noch durch andere, fremde Personen, genutzt wird)

    Genauso ist es wenn ich auf dem gleichen Server ein (privaten) VPN betreiben sollte.

    1. Hallo Tom,

      klar, je mehr User eine searx-Instanz nutzen, desto weniger kann Google & Co. ein Profil aus den Suchanfragen ableiten.
      Aber auch, wenn eine Instanz nur von einem einzelnen Benutzer genutzt wird, bietet searx Vorteile (z.B. können die Suchmaschinen keinen Benutzer eindeutig durch eine Browser-Kennung identifizieren, da solche Daten durch searx „gefiltert“ werden). Mehr dazu hier. Darüber hinaus ändert sich ja im Normalfall alle 24 Stunden die IP – zumindest bei Internet-Anschlüssen ohne feste IP.

      Also meiner Meinung nach macht der Betrieb auf einem Home-Server schon Sinn. Um so besser ist es allerdings, wenn mehrere Nutzer eine searx-Instanz nutzen. Aus diesem Grund habe ich ja auch einen Link auf meine Instanz hinzugefügt – vielleicht wird diese dann auch durch weitere Leute genutzt.

      Gruß,
      Jan

  3. Warum nicht das offizielle Image vom Dockerhub nutzen? Wie begründet sich deine Empfehlung das Image selbst aus den Quellen zu schreiben?
    Ansonsten dank für den Artikel. Ein Homeserver ist mein Herbst/Winter Projekt, da kommt dann auch searx drauf.

    1. Hallo Jochen,

      klar, du kannst auch ein vorgefertigtes Image verwenden. Welches würdest du denn als „offizielles“ Image bezeichnen (searx/searx ist ein Image, welches auf searx basiert, aber mit einigen zusätzlichen Dingen daher kommt, die man u.U. gar nicht braucht).
      Ein Vorteil, wenn man sich das Image selbst baut: Man kann die Standard-Einstellungen seiner eigenen Suche beliebig anpassen.

      Gruß,
      Jan

  4. Hallo Jan,

    klasse das du hier Searx bekannt machst und zeigst wie man es einrichtet.
    Ich würde gerne meine SearX Instanz, die als vHost in einem Subdirectory liegt, ausschließlich über IPv4 betreiben.
    Kannst du mir einen Tipp geben, wie ich den vHost dementsprechend einstellen muss oder funktioniert?

    PS Ich habe mal deine Instanz ausprobiert und festgestellt das Google nicht funktioniert. Mir haben die beiden Fixes geholfen:

    https://github.com/asciimoo/searx/pull/1597/commits/5c80eb8460b9fc516de5b73277d298c617d5c6aa

    und

    https://github.com/asciimoo/searx/pull/1628/commits/19f6fcc8869e2c4b066d34bbe293ec14e6d77e53.

    Kann auch sein, dass es schon nach dem ersten Fix funktioniert.

    Beste Grüße

    1. Hi,

      wenn nur IPv4 benötigt wird, dann lass einfach folgende Zeile im vHost von nginx Weg: listen [::]:443 ssl http2;

      Ja, Google hat wohl vor Kurzem an der Ergebnis-Seite der Suche etwas verändert. Darauf hin kann searx diese nicht mehr Parsen. Ich denke, dass da bald schon ein Update nachgereicht wird.
      Auf jeden Fall danke für dein Feedback!

      Gruß,
      Jan

      1. Hi Jan,

        danke für die Antwort.
        „listen [::]:443 ssl http2;“ ist doch im GatewayHost eingetragen.
        Würde ich dies im GatewayHost austragen, würde ich ja global für alle vHosts ipv6 deaktivieren.
        Ich will jedoch nur für einen einzelnen vHost IPv6 deaktivieren.

        1. Hi,

          dann geht bei dir ja alles über den Gateway-Host. Hier sind dann alle Applikationen per IPv6 erreichbar oder eben nicht.
          Warum willst du denn nur für eine Applikation den Zugriff über IPv6 unterbinden?

          Gruß,
          Jan

          1. Der Postfix meiner IPv6 Adresse ist statisch. Daher würde ich gerne zur besseren Verschleierung IPv4 nehmen, bei dem sich die Adresse bei mir alle 24h komplett ändert.

          2. Hi,

            OK, dann könnte die Lösung so aussehen, dass du die Domain, die nicht per IPv6 erreichbar sein soll, aus dem server_name des Gateway-Hosts heraus nimmst. Dafür erstellst du einen zweiten Gateway-Host, der nur auf die entsprechende Domain hört. Hier dann nur IPv4 aktivieren.

            Gruß,
            Jan

  5. An dieser Stelle möchte ich mich mal gaaaanz dolle bedanken. Ich habe einiges hier schon als Anregung mitgenommen und so auch jetzt wieder. Manchmal ist es schwierig, da ich mich für Apache entschieden habe und es für mich daher an bestimmten Stellen ein Umdenken erfordert.
    Der Artikel hat mich veranlasst eine eingene Instanz aufzubauen, ohne Docker und mit Apache aber die Anregung kam hier her.
    Ich freue mich schon auf die nächsten Artikel.
    Gruß Norry

  6. Hallo Zusammen,
    ich habe mir auch mal eine kleine Suchmaschine genau nach dieser Anleitung eingerichtet. Dass ganze hat auch alles super funktioniert, wenn ich jetzt einen Suchbegriff eingebe kommt jedoch folgende Fehlermeldung:

    Fehler! Suchmaschinen können die Ergebnisse nicht empfangen.
    bing (Zeitüberschreitung), wikidata (Zeitüberschreitung), google (Zeitüberschreitung), wikipedia (Zeitüberschreitung)

    Hat jemand einen Tipp woran dass liegt?

    1. Hi,

      das ist mir auch schon aufgefallen, jedoch nur sporadisch. Bei der nächsten Suchanfragen kommen diese Fehler dann nicht mehr. Sind diese Fehler bei dir dauerhaft zu sehen?

      Zu Google: v0.15 von searx kann aktuell keine Ergebnisse von Google empfangen, da Google hier anscheinend etwas am Design der Results-Pages geändert hat. Das wird vermutlich erst in einer zukünftigen Version von searx behoben werden.

      Gruß,
      Jan

    1. Hi Martin,

      kann man natürlich machen. Da ich allerdings nicht wissen kann, was sonst noch so auf dem System läuft, wollte ich diesen Tipp nicht explizit mit aufnehmen. Das Aktivieren von ufw kann schnell mal dazu führen, dass irgendwelche Dienste scheinbar plötzlich nicht mehr funktionieren.

      Gruß,
      Jan

  7. Moin, gerade die searx erfolgreich installiert.

    Was ich aber zusätzlich machen musste, ist in der „searx.meinedomain.de.conf“
    den Pfad
    # Include headers
    include /etc/nginx/snippets/headers.conf;

    musste ich auskommentieren – da sich sonst der nginix nicht starten ließ.

    Was sollte denn in der headers.conf hinterlegt sein?

    1. Hi Bastian,

      hier sind generelle Header-Infos hinterlegt (z.B. zu HSTS). Diese einfach gar nicht mehr setzen zu lassen würde ich nicht unbedingt empfehlen. Wenn nginx nicht mehr startet, dann geb mal „nginx -t“ ein. Dann listet er dir die Sachen auf, die ihm am Starten hindern. Das sollte dann den entscheidenden Hinweis bringen.

      Gruß,
      Jan

          1. Moin, das ist die Ausgabe wenn die Datei nicht existiert

            nginx: [emerg] open() „/etc/nginx/snippets/headers.conf“ failed (2: No such file or directory) in /etc/nginx/conf.d/searx.meinedomain.de.conf:10
            nginx: configuration file /etc/nginx/nginx.conf test failed

          2. Hi Bastian,

            ok, dann war die Datei einfach nicht da. Daher einfach anlegen – der Inhalt sieht beispielsweise folgendermaßen aus:
            add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload;" always;
            add_header X-Content-Type-Options "nosniff" always;
            add_header X-XSS-Protection "1; mode=block" always;
            add_header X-Robots-Tag none always;
            add_header X-Download-Options noopen always;
            add_header X-Permitted-Cross-Domain-Policies none always;
            add_header Referrer-Policy no-referrer always;
            add_header X-Frame-Options "SAMEORIGIN" always;

            Danach nochmal nginx neu starten und es sollte keine Probleme mehr geben.

            Gruß,
            Jan

  8. Hallo Jan,

    ich habe das Tutorial nachgebaut, das funktioniert auch SUPER!!! Vielen Dank dafür!
    Jetzt habe ich auch die Nextcloud nach deiner Anleitung am laufen, kann ich dort die SSL Verwaltung einfach übernehmen (also es läuft auf dem Nextcloud Server) eintragen? und einfach auf den Server mit der Searx Instanz verweisen? –> also auf eine Interne IPv4
    oder geht so etwas nicht?

    Vielen Dank

    Gruß Bernd

  9. bzw. würde ich gerne die Instanz unter einem Subdir laufen lassen z.B. unter meinedomain.de/searx – da genau dieses System ja bereits bei dem Nextcloud Tutorial Anwendung findet.

    Danke Gruß Bernd

    1. Hallo Bernd,

      ja, das ist möglich. Du musst dazu nur den gateway-Host erweitern (weiteres Unterverzeichnis). Die Verwaltung der SSL-Zertifikate läuft dann analog. Als „Frontend“ für SSL dient einzig der Webserver (Gateway-Host). Was dann dahinter passiert, legst du mit dem proxy_pass fest. So kannst du die Kommunikation zur searx Instanz auch über HTTP oder über HTTPS (mit selbst signierten Zertifikaten) laufen lassen.

      Gruß,
      Jan

      1. Ich steck auch gerade an genau dieser Stelle, ich hab leider keine wirkliche Ahnung von nginx. Also meinst du damit, dass man in deiner .conf-Datei oben auf server_name meinedomain.de; setzt und unten bei proxy_pass http://ipderinstanz:8080; ? Bisher hab ich mit nginx nur mit certbot benutzt für SSL. Was muss in die header.conf und ssl.conf rein?

        1. Hi Marc,

          im Prinzip ja. Entscheidend ist (wenn du es wirklich in einem Unterverzeichnis laufen lassen willst) der location-Block, der dann das proxy_pass enthält. Dieser location-Block stellt hierbei das Unterverzeichnis dar.
          Für die Inhalte der ssl.conf schau mal hier rein. Die header-Konfiguration hängt immer ein wenig von der Webanwendung ab, das hier sollte allerdings eine gute Vorlage sein.

          Gruß,
          Jan

          1. Hi Marc,

            eine Vermutung: Schau mal, ob ein solcher Header vielleicht irgendwo zwei mal gesetzt wird. Denn zwei mal gesetzte Header werden gern mal einfach ignoriert.

            Gruß,
            Jan

          2. Danke für deine Hilfe! Hab noch was: Wie hast du deine settings.yml nach dem update auf v0.18 konfiguriert? Bei mir geht jetzt die Bildersuche nicht mehr. Liegt das an irgendeinem der Plugins?

          3. Hi Marc,

            also die Bildersuche geht bei mir. Hier kannst du die Änderungen nachvollziehen, die ich an meiner Searx-Instanz an der settings.yml geändert habe. Hier könnte die Option image_proxy vielleicht der Auslöser sein?

            Gruß,
            Jan

  10. Moin,
    in der Datei nano /opt/searx/searx/settings.yml kann ich ja wie beschrieben verschiedende Einstellungen vornehmen.

    Werden diese Einstellungen bevorzugt behandelt ?

    Weil bei mir steht alles was die Sprache betrifft auf :
    language : „de-DE“
    und trotzdem benutzt er immer die Language „en-EN“ verwendet.

    Ich möchte die language : „de-DE“ grundsätzlich erstmal erzwingen

    Danke
    Bastian

    1. Hi Bastian,

      ja, das ist die Datei, mit der du die searx-Instanz genauer konfigurierst.
      Ich habe bei der Sprache hier folgendes stehen: language : "de"
      Dann steht die Sprache standardmäßig auf Deutsch.

      Edit: Die komplette Konfiguration meiner Instanz findest du übrigens hier.

      Gruß,
      Jan

        1. Hi Bastian,

          das ist seltsam, bei mir gab es nie Probleme, dass er die Config ordentlich anzieht.
          Wie sieht der konkrete Befehl zum Starten des Docker-Containers aus?
          Ist in den Logfiles des Containers irgendwas zu finden? Ich vermute hier, dass irgendwo ein Fehler in der yml-Datei ist, der dann verhindert, dass die Config geladen wird.

          Gruß,
          Jan

          1. Gestartet wird der Container, so wie du es beschrieben hast.

            docker run -d –name searx -p 8888:8888 –restart=always -e IMAGE_PROXY=True -e BASE_URL=https://searx.meindomain.de searx

            Mit dem Command :

            „sudo docker exec -it searx bash“
            kann ich mich aber nicht in den Container einloggen. Es kommt folgende Fehlermeldung:

            OCI runtime exec failed: exec failed: container_linux.go:346: starting container process caused „exec: \“bash\“: executable file not found in $PATH“: unknown

            Ich hab auch schon deine komplette settings ausprobiert, dieses aber auch ohne erfolg.

          2. Hi Bastian,

            hier brauchst du folgenden Befehl, um dich auf den Container zu verbinden („bash“ gibt es hier nicht): sudo docker exec -it searx sh

            Gruß,
            Jan

          3. Hi Jan,
            danke für die Antwort.
            Im Container im Ordner /var/log/ befindet sich aber keine Log datei.

            Oder Liegt die hier woanders ?

          4. Klappt alles nicht, ich glaube ich lösche den docker nochmal und mach es einfach neu.

            Löschen des dockers geht so wie bei dem Tut zum OnlyOffice beschrieben ?

          5. Hi Bastian,

            genau, Container stoppen (stop), entfernen (rm) und dann sicherheitshalber noch ein „docker system prune -a“ hinterher.

            Gruß,
            Jan

          6. Hi Bastian,

            mal ganz anderer Ansatz: Hast du auch auf einen Versions-Branch nach dem Clone gewechselt (git checkout tags/v0.15.0)? Mir ist nämlich aufgefallen, dass es z.T. Probleme gibt, wenn man einfach einen Container aus dem Master-Branch baut.

            Gruß,
            Jan

          7. Hi Bastian,

            das ist dann aber seltsam. Hast du nach dem Umstellen des Branches den Container mal gebaut/gestartet ohne die yml zu verändern?
            Ansonsten bin ich da momentan etwas überfragt.

            Gruß,
            Jan

          8. Hallo Jan,

            ich muss mich glaube ich korrigieren, ich habe es exakt nach deiner Anleitung gemacht. Danach habe ich keine weiteren Änderungen vorgenommen.

            Und zu deiner neuen Frage, habe auch schon das Config File unberührt gelassen.

          9. Hi Bastian,

            im Moment kann ich dir dann leider nicht sagen, warum der das Config-File nicht anzieht. Erfasse dazu doch doch bitte mal einen Issue im entsprechenden GitHub-Repository, vielleicht kann dir da weiter geholfen werden.

            Gruß,
            Jan

          10. Hallo Jan,

            sollte ich vileicht mal eine ältere version nehmen anstatt der neusten ?
            Mit welcher Version hast du deine Erstinstallation gemacht?

            Aber anscheinend bin ich hier der einzige der das problem hat.

          11. Hi Bastian,

            ja, das wundert mich ja auch. Diese Art des Fehlers konnte ich bisher noch nie beobachten.
            Ich verwende die letzte Release-Version (also 0.15).

            Auf was für einem System soll der Docker-Container gestartet werden? Ist hier irgend eine Virtualisierungs-Lösung (z.B. Proxmox) im Spiel?

            Gruß,
            Jan

          1. Hi Bastian,

            gibt es vielleicht irgendeine Einstellung, die im Virtualisierungs-System aktiviert werden muss, damit Docker-Container ausgeführt werden können?
            Welches Virtualisierungs-System kommt zum Einsatz?

            Gruß,
            Jan

  11. Hallo Jan,

    ich habe es hinbekommen über die bestehende Nextcloud Instanz den 2. Ubuntu Container über ein Unterverzeichnis anzusprechen.
    Falls es jemanden interessiert ich habe einfach die Datei (/etc/nginx/conf.d/meinedomain.de.conf) modifiziert und am Ende vor der letzten geschweiften Klammer folgendes eingefügt:

    location /searx {
    proxy_pass http://IP-ADRESSE:8888;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Scheme $scheme;
    proxy_set_header X-Script-Name /searx;
    proxy_buffering off;
    }

    Jetzt ist der Server dort einfach unter der meinedomain.de/searx erreichbar und man muss sich um das Zertifikatshandling DYNDNS nur ein mal Gedanken machen.

    Zusätzlich habe ich noch die UFW auf dem Ubnuntu Container installiert mit folgenden Befehlen:

    apt install ufw -y
    ufw allow 8888/tcp
    ufw allow 443/tcp
    ufw allow 22/tcp
    ufw logging medium
    ufw default deny incoming
    ufw enable
    service ufw restart

    Alles klappt wie es soll :D

    Evtl interessiert es jemanden

    Gruß Bernd

    1. Hallo Bernd,

      ja, genau so kann man die Searx-Instanz auch mit einem Unterverzeichnis realisieren.
      Danke für deine Hinweise, ist sicherlich auch für andere interessant.
      Wenn du magst, kannst du deine Instanz ja auch hier hinzufügen.

      Gruß,
      Jan

  12. Hallo!
    Ich versuche seit einiger Zeit searx auf meinem VPS zu installieren. Dieser wird per Plesk verwaltet, searx soll auf einer Subdomain laufen.
    Die Installation funktioniert soweit. Wenn ich nun allerdings auf searx zugreifen will, lässt sich in den Logs von Plesk Docker Erweiterung folgender Fehlercode ablesen:

    „INFO:werkzeug:172.17.0.1 – – [12/Jan/2020 00:14:48] „üP7àñ]¥MAäÈÐ4EgQ [=ñ!ÂYÓôLD½0 ~’õsåmX ŸóÀ`•Lž×Lá»fãÇ_Ùuèd˜/¸“ººÀ+À/À,À0̨̩ÀÀœ/5“ HTTPStatus.BAD_REQUEST –
    ERROR:werkzeug:172.17.0.1 – – [12/Jan/2020 00:14:49] code 400, message Bad request syntax (‚\x16\x03\x01\x02\x00\x01\x00\x01ü\x03\x03\x8a§%\’\x0b¿g\x910wÔ\x05\x9f\x06\\\xa0\x8fðX\x06ù2\x80\x04\x91Á¼íæy´÷ µ\x1f\’\x1døpÏv\x9dËÎÊ\x9b\x7fNÿyk9%f\x02þr7Ãò\x00%\x1c\x80<\x00"ÊÊ\x13\x01\x13\x02\x13\x03À+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x00')"

    Konnte nach einiger längerer Suche keine Lösung dafür finden.

    1. Hallo Nico,

      bis auf das „Bad Request“ ist die Sache ja ziemlich kryptisch. Daher kann ich dazu jetzt gar nicht mal viel dazu sagen.
      Zur Not einfach mal einen Issue im GitHub-Repository von searx aufmachen. Vielleicht sagt dem einen oder anderen dieser Fehler ja etwas.

      Gruß,
      Jan

  13. Hallo Jan

    Habe nach deiner Anleitung erfolgreich searx v0.15.0 umgesetzt.

    Nachdem nun die v0.16.0 verfügbar ist habe ich versucht nach deiner Anleitung zu updaten.

    Leider ist searx dann nicht erreichbar. Sehe gerade nicht wo das Problem liegt.

    Bein builden der v0.16.0 ist folgende Warnung in rot vorhanden

    WARNING: Ignoring APKINDEX.00740ba1.tar.gz: No such file or directory
    WARNING: Ignoring APKINDEX.d8b2a6f4.tar.gz: No such file or directory

    Ist das möglicherweise die Ursache des Problems?

    Übrigens: Ein neu aufsetzen der v0.15.0 auf der gleichen Maschine funktioniert ohne Probleme.

    1. Hallo Werner,

      ja, da hat sich zur Version 0.16.0 etwas geändert: Der Docker-Container hört nun nur noch auf den Port 8080. Das muss man beim Setup berücksichtigen.
      Ich habe den Artikel mal dahingehend angepasst.

      Gruß,
      Jan

  14. Hallo Jan,

    ich bräuchte mal deine Hilfe oder einen heißen Tipp von dir. Ich habe schon länger eine searx Instanz auf meinem Server eingerichtet ( https://search.blankenberg.eu / ), alles funktioniert auch wunderbar, aber die Autovervollständigung funktioniert seit ein paar Wochen nicht mehr. Woran kann das liegen? Hast du da eventuell eine Idee?

    Gruß
    Jan

    1. Hi Jan,

      leider kann ich auch nur berichten, dass searx momentan nicht gerade gut funktioniert. Hier konnte ich auch beobachten, dass es vorkommen kann, dass Features auf einmal nicht mehr funktionieren. Das kann passieren, wenn die Search-Services z.B. ihre API ändern, oder searx-Instanzen blocken.
      Leider kann man hier nicht viel tun.

      Gruß,
      Jan

      1. Die Vermutung liegt nahe, aber andere Instanzen mit der gleichen Version laufen auf anderen Servern. Wenn sich etwas an den APIs von Google & co ändert, dann dürfte es ja bei niemandem mehr laufen.

          1. Hi Jan,

            es geht wieder! Nach langem Suchen habe ich festgestellt, dass es eine CSP Einstellung im header war. Kleine Ursache, große Auswirkung…

            Schönes Wochenende

            Gruß,
            Jan

  15. Moin, nach der Neuistalltion von Nextcloud und Only Office habe ich mir jetzt auch wieder searx vorgenommen.

    Doch leider lande ich nach der installation in einem „internal Server Error“

    1. Hi Bastian,

      dann erst einmal in das nginx-Log auf dem Host schauen. Wenn hier nichts erleuchtendes zu finden ist, dann mit dem nginx im Docker Container weiter machen.

      Gruß,
      Jan

      1. hi, habe nochmal alles neuinstalliert und einfach mal die v.15 genommen und dann auch den Port 8888:8888 für den Container und in der nginix conf auch den proxy pass auch auf 8888 gesetzt.

        Jetzt lade ich wenigstens schon mal auf einem bad Gateway.
        Ich kann den Port 8080 ja nicht verwenden das parallel ja die nextcloud läuft.

        Auf der lokalen ip und dem Port:8888 passiert gar nichts.

        1. Hi Bastian,

          du kannst auch einen anderen Port am Host nutzen, z.B. docker run -d --name searx -p 8090:8080 --restart=always --log-driver none -e IMAGE_PROXY=True -e BASE_URL=https://searx.meindomain.de searx
          Hier ist dann 8090 der Port am Host, der Port am Docker-Container bleibt weiterhin 8080. Der Host-Port muss dann natürlich im weiteren Verlauf beachtet werden.
          Wegen des Bad Gateway: Da solltest du im nginx Log finden, was er hier versucht aufzurufen.

          Gruß,
          Jan

          1. hi Jan,
            ich sende dir einfach mal frech das error.log

            ich habe es jetzt mal wieder mit de v 0.16 versucht – und lande nun wieder bei Internal Server Error. Starte ich den Docker neu und drücke durchgehend F5 – kommt für einen kurzen moment der Bad Gateway.

            Die Error log findest du hier: https://apps.boche-online.de/nextcloud/s/553Mar6m84s6N9Z
            Das wäre die adresse für die Cloud. https://searx.boche-online.de sollte dann in der Suchmaschiene enden.

            Villeicht kannst du die Adressen aus dem Kommentar bei Freigabe entfernen.

          2. Hi Bastian,

            im Log sehe ich nur vom 14.05 viele „access forbidden by rule“. Das dürfte aber nicht dein aktuelles Problem sein.
            Wenn die deine Searx-URL aufrufe, erhalte ich erst einmal eine Zertifikats-Warnung (Cert ist ausgestellt auf apps.boche-online.de). Das ist denke ich mal das erste Problem.
            Wenn man diese Warnung dann ignoriert, erhält man nur die „plumpe“ Ausgabe „Internal Server Error“. Diese sieht so gar nicht nginx typisch aus, daher vermute ich mal, dass es sich dabei nicht um einen Fehler handelt, der von nginx verursacht wird, sondern innerhalb des Searx-Containers auftritt. Von daher mal hier die Logs checken.

            Gruß,
            Jan

          3. Man da habe ich die Antwort total vergessen.
            Ich denke mal das er bzgl des Cert. mekert ist erstmal nicht so schlimm.
            Da muss ich einfach ein Zert ausstellen.

            sudo docker exec -it searx sh

            komme ich in den Container … aber wo finde ich die Log??

          4. Hi Bastian,

            im Artikel zeige ich, wie man searx ohne Logging betreibt (Datenschutz). Lass beim Starten des Containers mal folgendes weg: --log-driver none. Dann sollte der Container auch loggen (/var/log).

            Gruß,
            Jan

          5. Dann muss ich also den kompletten Container neu machen, damit ich ihn mit logs starten kann ? Kann ich ihn nicht je nach dem mit und ohne logs starten ?

          6. Hi Bastian,

            nein, den Container nur stoppen (docker stop…) und entfernen (docker rm…). Das Abbild des Containers ist ja noch da und kann wieder über einen neuen Befehl zum Starten hochgezogen werden.

            Gruß,
            Jan

          7. OK – Aber ich bin immer noch auf dem Holzweg – Im Docker gibt es ja keinen editor – jedenfalls gibt es weder nano noch vim (diese lassen sich auch nicht installieren).

  16. Hallo,
    zuerst, ich bedanke mich für die tolle Tutorials überall.
    Ich habe das Searx wie bei dem Tutorial installiert.
    Das Searx befindet sich mit Nextcloud auf einen Server.
    URL Searx: https://searx.domain.de
    URL Nextcloud: https://store.domain.de
    jetzt wenn ich die URL von Searx abrufe, bekomme ich die Zertifikatswarnung aber nicht von searx.domain.de, sondern von store.domain.de, obwohl ich eine Datei für searx.domain.de und eine für store.domain.de in /etc/nginx/conf.d/ mit verschiedener Zertifikate erstellt habe.
    Wenn ich die IP abrufe http://ip:8090, bekomme ich den Fehler:
    Internal Server Error.
    Nextcloud funktioniert unter store.domain.de einwandfrei.
    Der Docker Container wurde mit dem Befehl erstellt:
    docker run -d –name searx -p 8090:8080 –restart=always -e IMAGE_PROXY=True -e BASE_URL=https://searx.domain.de searx

    Ich habe keine LOG Datei von dem Docker Container unter /var/log/ gefunden.
    Docker logs searx liefert:
    searx version 0.16.0-unknown

    Create /etc/searx/uwsgi.ini
    Create /etc/searx/settings.yml
    Listen on :8080
    [uWSGI] getting INI configuration from /etc/searx/uwsgi.ini

    Nginx Log zeigt keinen Fehler.

    Was Soll ich tun, um die Fehler zu finden.

    Vielen Dank

    1. Hi,

      die Zertifikats-Warnung zeigt, dass du am Nextcloud-vHost „rauskommst“. Also denke ich, dass das Problem hier nicht der Docker-Container ist, sondern die nginx-Konfiguration. Schau daher mal mit „nginx -T“ nach, ob der vHost für searx überhaupt geladen wurde.

      Gruß,
      Jan

      1. mohamad zaidan

        Hallo nochmal,
        danke für die Antwort,
        ich habe das Zertifikatsproblem gelöst und jetzt lande ich auf „Internal Server Error“.
        Wie auf immer, Nginx zeigt keinen Fehler und den Docker Container zeigt auch keinen.
        Kann das sein, dass ich solche Python libraries installieren soll?
        Warum kann ich die log Datei von Docker Container nicht finden?

        Danke Nochmal

          1. Hallo,
            also, das habe schon mal gesehen.
            In meinem ersten Kommentar steht schon den Docker Befehl, den ich ausgeführt habe:
            „docker run -d –name searx -p 8090:8080 –restart=always -e IMAGE_PROXY=True -e BASE_URL=https://searx.domain.de searx“

            Ist so richtig?

            Der Befehl: docker container logs searx
            liefert:

            searx version 0.16.0-unknown

            Create /etc/searx/uwsgi.ini
            Create /etc/searx/settings.yml
            Listen on :8080
            [uWSGI] getting INI configuration from /etc/searx/uwsgi.ini
            searx version 0.16.0-unknown

            Use existing /etc/searx/uwsgi.ini
            Use existing /etc/searx/settings.yml
            Listen on :8080
            [uWSGI] getting INI configuration from /etc/searx/uwsgi.ini

            docker ps liefert:

            CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
            4415727112e7 searx „/sbin/tini — /usr/…“ 58 minutes ago Up 52 minutes 0.0.0.0:8090->8080/tcp searx
            fa8ed07724f4 collabora/code „/bin/sh -c ‚bash st…“ 10 days ago Up 2 hours 127.0.0.1:9980->9980/tcp COLLABORA

            Danke

          2. Hi,

            da ist irgendwie nichts wirklich auffällig. Was sagt das nginx error-Log auf dem Docker-Host?
            Ansonsten kannst du dich auch direkt auf der Console am Container anmelden, wie ich hier schon mal beschrieben habe. Dann kannst du das gesamte System untersuchen.

            Gruß,
            Jan

  17. Hallo,

    ich habe searx jetzt als Docker in einer eigene VM installiert.
    Es läuft auch wunderbar – endlich wieder. Kann ich die settings.yml eigentlich auch später noch im Docker bearbeiten. in den Docker einloggen kann ich ja – nur gibt es dort kein nano und wohl auch keine option diesen zu installieren – oder ?

    1. Hi Basitian,

      Dateien direkt im Docker-Container würde ich nicht bearbeiten, da alle Änderungen ja nach einem Update verschwunden sind.
      Besser ist es, wenn du die Settings außerhalb des Containers änderst und das Image dann neu baust. Das dauert ja auch nicht lange und Änderungen an den Settings wirst du ja auch nicht so häufig vornehmen.

      Gruß,
      Jan

    1. Hi,

      dieses „unknown“ bekommt man eigentlich immer dann, wenn die Version nicht ermittelt werden kann. Sicher, dass du das richtige Tag mit der korrekten Version abgerufen hast?

      Gruß,
      Jan

    1. Ups, Strg+Enter schickt also den Beitrag ab… Grummel

      Eigenlich wollte ich noch schreiben, das mich die unterschiedlichen Suchergebnisse irritieren, die auftreten, wenn ich die Searx-Maschine der Entwickler unter „https://searx.info/search“ mit den Ergebnissen Eurer Suchmaschine vergleiche.Obwohl in den Einstellungen die gleichen Einträge ausgewählt sind, wie auf der Seite von searx.

      Könnt Ihr zu den unterschiedlichen Ergebnissen etwas sagen?

      LG
      Mirko

      1. Hi Mirko,

        nein, leider nicht. Mir ist auch schon aufgefallen, dass die Suchergebnisse z.T. immer etwas anders sind, auch wenn man mehrfach das gleiche sucht.
        Generell sind die Ergebnisse recht durchwachsen, weil z.T. bestimmte Suchdienste die IP des „Such-Servers“ blockieren, wenn darüber zu viele Suchanfragen über eine gewisse Zeit kommen.

        Gruß,
        Jan

        1. Hallo Jan,

          Danke für die Info, die sich offenbar mit dieser hier…
          https://www.kuketz-blog.de/searx-dem-blocking-von-startpage-und-co-entgehen/
          …deckt. Leider hat Kuketz seine Suchmaschine scheinbar entsorgt.

          Vielleicht für Dich, sofern Du Dich damit weiter beschäftigen möchtest und Du das noch nicht ausprobiert hast, könnte „filtron“ die Antwort sein. Auch auf dieser Seite wird das Problem beschrieben, nur eben mit ner „Lösung“. https://www.21×9.org/de/searx.html

          Ich hab das Ganze einmal via einer lokalen VM durchprobiert und bin mit den Ergebnissen die meine kleine Suchmaschine lieferte mehr als zufrieden. Nächster Schritt war/ist das Ganze auf einen VServer zu verfrachten, um ggf. Menschen aus meinem Umfeld daran teilhaben zu lassen. Hier stellte sich allerdings heraus, das die Installation nicht ganz so trivial ist. Meine Vorstellung war/ist das Ganze via Paketmanager zu lösen, um den Aufwand für das Aktualisieren gering zu halten. Pustekuchen. Das Paket aus den Ubuntuquellen (20.04) ist mal wieder veraltet (Searx 0.16), ein passendes aktuelles PPA bis jetzt nicht auffindbar.

          Nun ist das Dingens via https://searx.github.io/searx/admin/installation-searx.html installiert, mit filtron und gleichzeitig auch mit einem „morty“-Proxy. Aktuell scheitere ich nur noch am Vhost für Apache und einem schönen LetsEncrypt.

          1. Hi Mirko,

            danke für deine Hinweise!
            Leider fehlt mir momentan die Zeit, mich intensiver mit dem Thema auseinanderzusetzen. Meine Searx-Instanz ist noch online, aber ohne „Tricksereien“. Daran wird sich in naher Zukunft wohl leider auch nichts ändern.

            Gruß,
            Jan

  18. Guten Abend

    Versuche gerade auf einer aktuellen Debian 10 VM das v0.18.0 Image zu bauen. Dabei kommt es in mehreren Versuchen immer zu folgenden Abbruch.

    =============================DEBUG ASSISTANCE=============================
    If you are seeing a compilation error please try the following steps to
    successfully install cryptography:
    1) Upgrade to the latest pip and try again. This will fix errors for most
    users. See: https://pip.pypa.io/en/stable/installing/#upgrading-pip
    2) Read https://cryptography.io/en/latest/installation.html for specific
    instructions for your platform.
    3) Check our frequently asked questions for more information:
    https://cryptography.io/en/latest/faq.html
    4) Ensure you have a recent Rust toolchain installed:
    https://cryptography.io/en/latest/installation.html#rust
    5) If you are experiencing issues with Rust for *this release only* you may
    set the environment variable `CRYPTOGRAPHY_DONT_BUILD_RUST=1`.
    =============================DEBUG ASSISTANCE=============================

    error: Can not find Rust compiler
    —————————————-
    ERROR: Failed building wheel for cryptography

    Wo muss ich was einstellen? Wo kann ich die Variable setzen?

    Da ich leider nicht so tief in Linux unterwegs bin wäre ich für jeden Tip dankbar.

    ciao
    Werner

    1. Hi Werner,

      sicher, dass du hier das Docker-Image baust und nicht die „Docker-lose“ Variante? Denn Fehlermeldungen dieser Art kenne ich vom Bauen des Docker-Images gar nicht.

      Gruß,
      Jan

      1. Hallo Jan
        Hangle mich an der Anleitung oben lang
        cd /opt
        rm -r searx
        git clone https://github.com/asciimoo/searx.git
        cd searx
        git tag -l
        git checkout tags/v0.18.0

        Nehme dann Anpassungen an der settings.yml vor
        und baue dann mit

        docker build -t searx .

        Der Fehler tritt übrigens auch ohne Anpassungen an der settings.yml auf.

        Das letzte mal mit der 17 vor gefühlt einem halben Jahr hat das auch noch ohne Probleme geklappt.

        1. Ja, es hat tatsächlich damit zu tun, dass in der Dockerfile Alpine Linux zum Einsatz kommt. Ich werde die Tage ein issue auf deren github aufmachen, sollte eigentlich recht schnell zu beheben sein.

          1. Danke für den Eintrag des Bugs im Git.

            Habe soeben mit dem Master den Container ohne Fehler bauen können.

            Der kann dann auch gestartet werden und läuft auch ohne Probleme.

            Mit der v0.18.0 gibts aber nach wie vor den Fehler beim bauen.

    2. Hallo nochmal
      Seit ein paar Tagen gibts nun die v1.0.0
      Diese lässt sich auch ohnen Probleme wie in der Anleitung beschrieben bauen.

      ciao
      Werner

        1. Hi Marc,

          ok, das ist interessant. Muss mal schauen, wann ich die Zeit finde, mit diesen Fork genauer anzusehen.
          Auf jeden Fall danke für den Hinweis!

          Gruß,
          Jan

  19. Hallo
    komme leider nicht weiter und zwar hier:
    docker build -t searx .
    Command ‚docker‘ not found, but can be installed with:
    snap install docker # version 20.10.14, or
    apt install docker.io # version 20.10.12-0ubuntu4
    apt install podman-docker # version 3.4.4+ds1-1ubuntu1
    See ’snap info docker‘ for additional versions.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert