Post

Setup von Websearch mit SearXNG

Setup von Websearch mit SearXNG

Disclaimer: Dieser Artikel ist keine offizielle Anleitung der Informatikdienste. Vorausgesetzt werden grundlegende Kenntnisse im Bereich KI und idealerweise auch KI-Agenten. Ich empfehle, KI-Tools nur für Aufgaben einzusetzen, die man sich auch selbst zutrauen würde.

Only let the AI do what you would feel comfortable doing yourself!

Was ist SearXNG?

SearXNG ist eine freie, dezentrale Suchmaschine, die Suchanfragen an verschiedene Suchmaschinen weiterleitet, ohne dabei Daten zu sammeln oder zu speichern. Im Gegensatz zu kommerziellen Suchmaschinen wie Google oder Bing bietet SearXNG eine anonyme und datenschutzfreundliche Alternative.

Die Einrichtung ist besonders nützlich, um KI Tools wie Open WebUI oder opencode den Zugang zu aktuellen Informationen aus dem Internet zu ermöglichen. Dadurch werden die KI-Agenten noch leistungsfähiger.

Vorbereitung des Umgebungsverzeichnisses

Bevor wir mit der Installation beginnen, erstellen wir zunächst das notwendige Verzeichnisstruktur:

1
2
mkdir -p ./searxng/core-config/
cd ./searxng/

Das Verzeichnis core-config wird später für die Konfigurationsdateien verwendet, um die Einstellungen von SearXNG zu speichern.

Herunterladen der Docker-Konfiguration

Als Nächstes laden wir die Docker Compose Konfigurationsdatei herunter, die für die Installation von SearXNG benötigt wird:

1
2
3
curl -fsSL \
  -O https://raw.githubusercontent.com/searxng/searxng/master/container/docker-compose.yml \
  -O https://raw.githubusercontent.com/searxng/searxng/master/container/.env.example

Diese Befehle laden zwei Dateien herunter:

  1. docker-compose.yml - Die Hauptkonfigurationsdatei für Docker Compose
  2. .env.example - Eine Beispieldatei für Umgebungsvariablen

Erstellen der Konfigurationsdatei

Nachdem wir die Beispielkonfigurationsdatei heruntergeladen haben, kopieren wir sie und passen sie an:

1
cp -i .env.example .env

Die -i Option sorgt dafür, dass wir gefragt werden, bevor eine bestehende Datei überschrieben wird.

Anschließend bearbeiten wir die .env Datei um die gewünschten Einstellungen vorzunehmen. Hier die wichtigsten Parameter:

  • SEARXNG_HOST: Die Hostadresse auf der SearXNG verfügbar sein soll
  • SEARXNG_PORT: Der Port, auf dem SearXNG lauschen wird (Standard ist 8080)
  • SEARXNG_BASE_URL: Die Basis-URL für SearXNG

Starten und Stoppen der Dienste

Nun können wir die Docker-Container starten:

1
docker compose up -d

Das -d Flag sorgt dafür, dass die Container im Hintergrund gestartet werden.

Um die Dienste zu stoppen:

1
docker compose down

Dies beendet alle Container und entfernt sie.

Konfigurieren von SearXNG

Nach dem ersten Start wird automatisch eine Standard-Konfigurationsdatei namens settings.yml erstellt. Diese finden wir unter core-config/settings.yml.

Wir öffnen diese Datei und passen Sie die Einstellungen an:

1
2
3
4
5
6
7
8
9
server:
  # Wird durch ${SEARXNG_PORT} und ${SEARXNG_BIND_ADDRESS} überschrieben
  port: 8080
  bind_address: "0.0.0.0"

search:
  formats:
    - html
    - json

Diese Einstellungen sind wichtig:

  • port: Der Port, auf dem SearXNG auf Anfragen hört
  • bind_address: Die IP-Adresse, auf der SearXNG horcht (0.0.0.0 bedeutet alle Netzwerkschnittstellen)
  • formats: Die Formate, in denen Suchergebnisse zurückgegeben werden sollen (HTML und JSON sind am nützlichsten)

Sicherheit der Container

Nach dem ersten Durchlauf sollten Sie das Sicherheitsniveau erhöhen, indem Sie die Containerbeschränkungen konfigurieren:

1
2
3
4
5
6
7
8
9
10
11
12
13
services:
  core:
    container_name: searxng-core
    image: docker.io/searxng/searxng:${SEARXNG_VERSION:-latest}
    restart: always
    ports:
      - ${SEARXNG_HOST:+${SEARXNG_HOST}:}${SEARXNG_PORT:-8080}:${SEARXNG_PORT:-8080}
    env_file: ./.env
    volumes:
      - ./core-config/:/etc/searxng/:Z
      - core-data:/var/cache/searxng/
    cap_drop:
      - ALL

Die Zeile cap_drop: - ALL entfernt alle Linux-Systemrechte vom Container, was die Sicherheit erheblich erhöht, da der Container nur noch die minimal benötigten Rechte hat.

Starten von SearXNG

Abschließend starten wir SearXNG erneut:

1
docker compose up -d

Sie können nun in Ihrem Browser zur URL http://localhost:8080 navigieren, um SearXNG zu verwenden.

Integration mit Open WebUI und opencode

Nach erfolgreicher Einrichtung können Sie SearXNG in Open WebUI oder opencode integrieren, um Ihren KI-Agenten mit aktuellen Informationen aus dem Internet zu versorgen. Dies ermöglicht es den Agenten, aktuelle Daten zu recherchieren und präzisere Antworten zu liefern.

Durch diese Einrichtung erhalten Sie ein vollständiges, sicherheitsbewusstes und datenschutzfreundliches Websearch-System, das perfekt für KI-Anwendungen geeignet ist.

Detaillierte Informationen zur Integration in opencode finden sich um Opencode Blogbeitrag.

This post is licensed under CC BY 4.0 by the author.