ki

Websuche mit Ollama, Open WebUI und SearXNG

Von peter portmann,

Veröffentlicht am 12. Okt. 2025   —   3 min Lesezeit

selfhostedunraidmacos
Bild erzeugt mit KI (Gemini Nano Banana)

[Ollama, auf einem lokalen Server] installiert, kann nativ keine Websuche durchführen. Das geht grundsätzlich via eine eingebaute Web-Search-API oder mit einem Ollama-Cloud-Konto.

🔐
Die hier vorgestellte Lösung verwendet Open WebUI als grafische Oberfläche. Die Anfragen laufen ohne fremde API oder Abo über eine lokal installierte SearXNG-Instanz.

Open WebUi

[openwebui]
Open WebUI ist eine erweiterbare, selbst gehostete KI‑Oberfläche, die sich an den Arbeitsablauf anpasst und das alles völlig offline.

Die Funktionen sind vielfältig. Der Zugriff ist mit Konten abgesichert. Meine Instanz ist von extern mit einem Cloudflare-Tunnel erreichbar. So kann ich von überall auf die eigene lokale KI zugreifen. Das funktioniert auch mit dem Smartphone.

Einrichtung unter macOS mit Docker

Im Verzeichnis ~/Documents/OpenWebUI werden die Dateien .env und docker-compose.yaml angelegt.

.env

WEBUI_SECRET_KEY=meinSuperGeheimerSchluessel123!
OLLAMA_BASE_URL=http://host.docker.internal:11434

docker-compose.yaml

services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    ports:
      - "8080:8080"
    env_file:
      - ./.env
    volumes:
      - ~Documents/OpenWebUI/open-webui-data:/app/backend/data
    restart: always

Damit ist der WEBUI_SECRET_KEY sicher über eine .env‑Datei konfiguriert und wird beim Starten des Containers automatisch geladen.

Start

Nach dem Start steht der Dienst unter Port 8080 bereit.

pp@MacStudio2025 ~ >cd /Users/pp/Documents/OpenWebUI/open-webui-data 
pp@MacStudio2025 OpenWebUI/open-webui-data >docker compose pull
pp@MacStudio2025 OpenWebUI/open-webui-data >docker compose up -d

Update

Mit dem pull Befehl kann das aktuellste Image heruntergeladen werden.

pp@MacStudio2025 ~ >cd /Users/pp/Documents/OpenWebUI/open-webui-data 
pp@MacStudio2025 OpenWebUI/open-webui-data >docker compose down
pp@MacStudio2025 OpenWebUI/open-webui-data >docker compose pull
pp@MacStudio2025 OpenWebUI/open-webui-data >docker compose up -d

Verbindung zur Suchmaschine SearXNG

Wenn in Open WebUI ein Konto erstellt ist, kann unter admin/settings/web die Suchmaschine definiert werden:

Suchmaschine: searxng
Searxng-Abfrage-URL: http://192.168.16.44:8181/search?q=<query>&format=json
oder
Searxng-Abfrage-URL: http://192.168.16.44:8181

Entscheidend ist die Konfiguration im SearXNG Container, siehe unten!


SearXNG

Wikipedia

Quelle: [wikipedia, SearXNG]. Auszüge, übersetzt auf Deutsch:

SearXNG ist eine freie und quelloffene Metasuchmaschine, die von Searx geforkt wurde und dessen Fortsetzung ist. SearXNG unterstützt über 70 verschiedene Suchmaschinen. Ähnlich wie Searx sammelt es keine Informationen über Nutzer.

SearXNG kann Ergebnisse in mehrere Kategorien aufteilen, einschließlich der Standardkategorien Web, Bilder, Videos, Nachrichten sowie der nicht‑standardmäßigen Kategorien Social Media, Musik, Dateien, IT und Wissenschaft.

SearXNG entfernt private Daten aus den an Suchdienste gesendeten Anfragen. SearXNG selbst speichert kaum bis gar keine Informationen, die zur Identifizierung von Nutzern verwendet werden könnten.

Installation in einem Docker-Container unter UNRAID

Hier habe ich die Software auf meinem [UNRAID-Server] installiert. In UNRAID können Docker-Container fast wie Apps installiert werden. Die Konfiguration des Containers erfolgt dabei in einer grafischen Oberfläche.

Die Konfiguration der Variablen war zeitaufwändig, bis die Verbindung zwischen SearXNG und Open WebUI endlich geklappt hat. Entscheidend für das Zusammenspiel sind 'SEARXNG_SEARCH_FORMATS'='html,json' und die SEARXNG_BOTDETECTION-Einträge.

Hier das Log nach dem Starten des Containers, alle Parameter sind hier ersichtlich:

docker run  
&nbsp;&nbsp;-d  
&nbsp;&nbsp;--name='SearXNG'  
&nbsp;&nbsp;--net='bridge'  
&nbsp;&nbsp;--pids-limit 2048  
&nbsp;&nbsp;-e TZ="Europe/Berlin"  
&nbsp;&nbsp;-e HOST_OS="Unraid"  
&nbsp;&nbsp;-e HOST_HOSTNAME="ASRockMini"  
&nbsp;&nbsp;-e HOST_CONTAINERNAME="SearXNG"  
&nbsp;&nbsp;-e 'INSTANCE_NAME'='supportnet.ch'  
&nbsp;&nbsp;-e 'SEARXNG_SERVER_BIND_ADDRESS'='0.0.0.0'  
&nbsp;&nbsp;-e 'SEARXNG_SERVER_LIMITER'='false'  
&nbsp;&nbsp;-e 'SEARXNG_SEARCH_FORMATS'='html,json'  
&nbsp;&nbsp;-e 'SEARXNG_IMAGE_PROXY_ENABLED'='true'  
&nbsp;&nbsp;-e 'SEARXNG_BOTDETECTION_CHECK_TOR_EXIT_NODE'='false'  
&nbsp;&nbsp;-e 'SEARXNG_BOTDETECTION_CHECK_RATE_LIMIT'='false'  
&nbsp;&nbsp;-e 'SEARXNG_BOTDETECTION_MAX_PENALTY'='0'  
&nbsp;&nbsp;-e 'CA_TS_FALLBACK_DIR'='/etc/searxng'  
&nbsp;&nbsp;-l net.unraid.docker.managed=dockerman  
&nbsp;&nbsp;-l net.unraid.docker.webui='http://[IP]:[PORT:8080]/'  
&nbsp;&nbsp;-l net.unraid.docker.icon='https://github.com/kilrah/unraid-docker-templates/raw/main/icons/searxng.png'  
&nbsp;&nbsp;-p '8181:8080/tcp'  
&nbsp;&nbsp;-v '/mnt/user/appdata/searxng/':'/etc/searxng':'rw' 'searxng/searxng'

SearXNG ist via Port 8181 erreichbar. Auch hier kann ich von extern via Cloudflare-Tunnel auf die Suchmaschine zugreifen.


Auf Facebook teilen Auf Linkedin teilen Auf Twitter teilen Per E-Mail senden

Newsletter abonnieren

Einschreiben und kostenlos News direkt per E-Mail erhalten.

einschreiben