Technologie & Innovation

Perplexity-Alternative selbst hosten: SearXNG, Ollama & Open WebUI auf Ubuntu 24.04

Erfahren Sie, wie Sie mit Open-Source-Tools und einem Ubuntu 24.04-Server eine leistungsstarke, private KI-Suchmaschine im Stil von Perplexity aufsetzen, die Ihre Daten schützt.

By Dr. Lena Steiner12 Min. Lesezeit
Futuristisches Server-Rack mit blauen Lichtern und einem Laptop, der eine private KI-Suchmaschine anzeigt.
8 GB
Benötigtes RAM
Für grundlegende LLMs und Docker-Dienste.
ca. 1-2 Stunden
Installationszeit
Ohne Modell-Download und je nach Kenntnisstand.
100%
Datensouveränität
Alle Daten bleiben auf Ihrem Server.

🚀 Einführung: Warum überhaupt eine eigene Perplexity-Alternative selbst hosten?

In einer Zeit, in der private Daten oft die "Währung" im digitalen Ökosystem sind, wächst der Wunsch nach Datenschutz und digitaler Souveränität. Dienste wie Perplexity AI bieten zwar beeindruckende konversationelle Suchfunktionen, aber sie basieren auf proprietären Systemen und verarbeiten Ihre Anfragen auf externen Servern. Für viele stellt sich die Frage: Gibt es eine Möglichkeit, ähnliche intelligente Suchfunktionen zu nutzen, ohne die Kontrolle über die eigenen Daten abzugeben?

Die Antwort lautet: Ja, absolut! Mit einer Kombination aus Open-Source-Tools wie SearXNG, Ollama und Open WebUI können Sie auf Ihrem eigenen Ubuntu 24.04 Server eine leistungsstarke und vor allem private Perplexity-Alternative selbst hosten. Diese Anleitung begleitet Sie Schritt für Schritt durch den Prozess, um Ihre persönliche, datenschutzfreundliche KI-gestützte Suchumgebung zu realisieren. Wir werden dabei nicht nur die Installation der einzelnen Komponenten behandeln, sondern auch auf gängige Fallstricke eingehen und Lösungen präsentieren. Machen Sie sich bereit, die Kontrolle über Ihre Informationsbeschaffung zurückzugewinnen und eine Infrastruktur aufzubauen, die genau auf Ihre Bedürfnisse zugeschnitten ist.

Bevor Sie starten: Was Sie benötigen und wissen sollten

Bevor wir in die technischen Details eintauchen, ist es wichtig, die Voraussetzungen zu klären und einige Vorabüberlegungen anzustellen. Dieses Projekt erfordert grundlegende Linux-Kenntnisse und den Zugriff auf einen Server.

  • Ein physischer Server oder eine virtuelle Maschine mit Ubuntu 24.04 LTS (minimal 8 GB RAM, 4 vCPUs empfohlen). Für Ollama und performante Modelle sind GPUs stark empfohlen, aber CPU-Modelle sind auch möglich.
  • SSH-Zugang als Benutzer mit sudo-Rechten.
  • Grundlegende Kenntnisse der Linux-Befehlszeile.
  • Eine stabile Internetverbindung.
  • Optional: Eine Domain und DNS-Konfiguration, falls Sie den Dienst über das Internet verfügbar machen möchten (zusätzliche Sicherheitsmaßnahmen erforderlich!).
  • Festplattenplatz: Abhängig von den verwendeten Large Language Models (LLMs) können dies schnell mehrere Dutzend bis Hunderte von Gigabytes werden.

⚠️ Watch out Stellen Sie sicher, dass Ihr Ubuntu-System auf dem neuesten Stand ist (sudo apt update && sudo apt upgrade -y), bevor Sie mit der Installation beginnen. Veraltete Pakete können zu Kompatibilitätsproblemen führen.


🔍 Step 1: SearXNG als Metasuchmaschine einrichten – Ihre private Suchbasis

Screenshot der Benutzeroberfläche eines Ubuntu 24.04 Servers in einem Terminal.

SearXNG ist eine freie Metasuchmaschine, die Ergebnisse von über 70 Suchdiensten sammelt, ohne Ihre Privatsphäre zu verletzen. Es ist die perfekte Basis, um eine datenschutzfreundliche Suchmaschine zu etablieren.

Vorbereitung und Installation von SearXNG

Wir werden SearXNG mittels Docker Compose installieren, was die Verwaltung erheblich vereinfacht.

  • Aktualisieren Sie Ihr System:
    sudo apt update
    sudo apt upgrade -y
    
  • Installieren Sie docker und docker-compose:
    sudo apt install docker.io docker-compose -y
    sudo systemctl start docker
    sudo systemctl enable docker
    sudo usermod -aG docker $USER # Abmelden und neu anmelden, damit die Gruppe aktiv wird
    
  • Erstellen Sie ein Verzeichnis für SearXNG und wechseln Sie hinein:
    mkdir -p ~/searxng
    cd ~/searxng
    
  • Erstellen Sie die docker-compose.yml-Datei:
    nano docker-compose.yml
    
    Fügen Sie den folgenden Inhalt ein:
    version: '3.8'
    
    services:
      searxng:
        image: searxng/searxng:latest
        container_name: searxng
        restart: unless-stopped
        ports:
          - "8080:8080"
        environment:
          - SEARXNG_BASE_URL=http://localhost:8080/
        volumes:
          - ./searxng-data:/config
    
  • Und starten Sie SearXNG:
    docker-compose up -d
    

Common mistake: Vergessen Sie nicht, sich nach dem Hinzufügen des Benutzers zur Docker-Gruppe usermod -aG docker $USER ab- und wieder anzumelden oder die Sitzung neu zu starten. Andernfalls erhalten Sie 'Permission denied' Fehler beim Ausführen von Docker-Befehlen ohne sudo.

Sie sollten nun SearXNG unter http://Ihre-Server-IP:8080 erreichen können.


🧠 Step 2: Ollama für lokale KI-Modelle installieren – Das Herz Ihrer KI-Alternative

Ollama ermöglicht es Ihnen, Large Language Models (LLMs) lokal auszuführen. Dies ist entscheidend für den Datenschutz, da keine Daten an externe KI-Anbieter gesendet werden.

Ollama auf Ubuntu 24.04 installieren

  • Laden Sie das Ollama-Installationsskript herunter und führen Sie es aus:
    curl -fsSL https://ollama.com/install.sh | sh
    
    Dieses Skript installiert Ollama als Systemdienst.
  • Überprüfen Sie den Status des Dienstes:
    systemctl status ollama
    
    Es sollte als 'active (running)' angezeigt werden.

Erste Modelle herunterladen und testen

Ollama unterstützt eine Vielzahl von Modellen. Für den Anfang empfehlen wir ein leichtgewichtiges, aber fähiges Modell wie llama2 oder mistral.

  • Laden Sie ein Modell herunter (hier llama2 als Beispiel):
    ollama pull llama2
    
    Dieser Vorgang kann je nach Internetgeschwindigkeit und Modellgröße einige Zeit in Anspruch nehmen.
  • Testen Sie das Modell direkt über die Befehlszeile:
    ollama run llama2 "Was ist die Hauptstadt von Frankreich?"
    
    Sie sollten eine Antwort vom lokalen LLM erhalten.

Common mistake: Unzureichender RAM oder VRAM (Grafikspeicher). Große LLMs benötigen viel Speicher. Wenn Ihr System nicht genug hat, kann Ollama langsam laufen oder fehlschlagen. Überprüfen Sie vorab die Anforderungen des gewählten Modells auf der Ollama-Website.

💡 Tip Um die Leistung von Ollama zu maximieren, stellen Sie sicher, dass Ihre GPU-Treiber korrekt installiert sind, falls Ihr Server eine kompatible NVIDIA- oder AMD-GPU besitzt. Ollama nutzt automatisch CUDA/ROCm, wenn verfügbar.

Verteilung der Installations-Komplexität(Aufwand (relativ))

🌐 Step 3: Open WebUI für eine intuitive Benutzeroberfläche – Ihr Perplexity-Interface

Open WebUI (ehemals ollama-webui) ist eine moderne, responsive Schnittstelle, die es Ihnen ermöglicht, mit Ihren lokal gehosteten Ollama-Modellen über einen Browser zu interagieren. Es bietet eine Chat-ähnliche Oberfläche, die an Perplexity erinnert.

Installation von Open WebUI mit Docker

Wir nutzen erneut Docker für eine einfache Installation und Verwaltung.

  • Erstellen Sie ein Verzeichnis für Open WebUI und wechseln Sie hinein:

    mkdir -p ~/open-webui
    cd ~/open-webui
    
  • Erstellen Sie die docker-compose.yml-Datei:

    nano docker-compose.yml
    

    Fügen Sie den folgenden Inhalt ein. Beachten Sie, dass wir auf den Ollama-Dienst verlinken, der auf dem Host-System läuft.

    version: '3.8'
    
    services:
      open-webui:
        image: ghcr.io/open-webui/open-webui:main
        container_name: open-webui
        restart: unless-stopped
        ports:
          - "8081:8080" # Hier nehmen wir Port 8081, um Konflikte mit SearXNG zu vermeiden
        environment:
          - OLLAMA_API_BASE_URL=http://host.docker.internal:11434 # Für Docker auf Linux/macOS
        volumes:
          - ./open-webui-data:/app/backend/data
        depends_on:
          - ollama # Obwohl Ollama auf dem Host läuft, ist dies ein logischer Hinweis
    

    Wichtiger Hinweis für OLLAMA_API_BASE_URL:

    • Wenn Sie Docker auf Linux verwenden und Ollama direkt auf dem Hostsystem läuft, verwenden Sie http://host.docker.internal:11434. Falls dies Probleme bereitet, können Sie stattdessen die tatsächliche IP-Adresse Ihres Hosts im lokalen Netzwerk verwenden (z.B. http://192.168.1.100:11434).
    • Unter macOS/Windows mit Docker Desktop funktioniert host.docker.internal direkt.
  • Starten Sie Open WebUI:

    docker-compose up -d
    

Sie können Open WebUI nun unter http://Ihre-Server-IP:8081 erreichen. Beim ersten Zugriff müssen Sie einen Benutzer registrieren. Danach können Sie Ihre Ollama-Modelle auswählen und mit ihnen chatten.

Common mistake: Falsche OLLAMA_API_BASE_URL. Wenn Open WebUI keine Verbindung zum Ollama-Dienst herstellen kann, überprüfen Sie diese Umgebungsvariable im docker-compose.yml und stellen Sie sicher, dass Ollama auf dem System läuft und Port 11434 offen ist.


🔗 Step 4: SearXNG mit Ollama / Open WebUI verbinden – Die smarte Symbiose

Dies ist der entscheidende Schritt, um die Intelligenz von Ollama in Ihre Suchanfragen zu integrieren und eine echte Perplexity-Alternative zu schaffen. SearXNG kann so konfiguriert werden, dass es bestimmte Anfragen an Ihr lokales LLM weiterleitet.

Konfiguration von SearXNG für die LLM-Integration

SearXNG verwendet eine settings.yml-Datei zur Konfiguration. Wir müssen diese anpassen, um eine "Engine" zu definieren, die mit unserem lokalen LLM interagiert.

  • Suchen Sie die settings.yml im SearXNG-Container. Am einfachsten ist es, wenn Sie diese Datei außerhalb des Containers persistieren. Im docker-compose.yml aus Step 1 haben wir ein /config Volume gemountet. Kopieren Sie die Standardkonfiguration dorthin:

    docker cp searxng:/app/searxng/settings.yml ~/searxng/searxng-data/settings.yml
    
  • Bearbeiten Sie die kopierte settings.yml:

    nano ~/searxng/searxng-data/settings.yml
    
  • Suchen Sie den Abschnitt engines: und fügen Sie einen neuen Motor für Ihr LLM hinzu. Dies ist ein einfaches Beispiel, das Ollama über seine API anspricht. Beachten Sie: Hier müssen wir die IP-Adresse des Host-Systems verwenden, da der SearXNG-Container sich sonst selbst sucht.

    # ... anderer engines Code ...
    
    # Beispiel für einen Ollama LLM Engine
    ollama_ai:
      url: http://Ihre-Server-IP:11434/api/generate # Ersetzen Sie 'Ihre-Server-IP'
      request_method: POST
      request_payload:
        model: llama2 # Ersetzen Sie durch Ihr geladenes Modell
        prompt: "{{query}}"
        stream: false
      response_jsonpath:
        - "$.response"
      categories:
        - ai
        - general
      priority: 10
      disabled: false
    

    Ersetzen Sie Ihre-Server-IP durch die tatsächliche IP-Adresse Ihres Servers. Der Port 11434 ist der Standard-API-Port von Ollama.

  • Speichern Sie die Datei und starten Sie den SearXNG-Container neu, damit die Änderungen wirksam werden:

    cd ~/searxng
    docker-compose restart searxng
    

Jetzt können Sie in SearXNG über die Engine-Auswahl manuell die ollama_ai-Engine aktivieren oder, indem Sie !ollama_ai Ihre Frage in das Suchfeld eingeben. SearXNG sendet dann Ihre Anfrage an Ollama und zeigt die Antwort als Suchergebnis an.

Common mistake: Falsche IP-Adresse oder fehlende Portfreigabe. Der SearXNG-Container muss den Ollama-Dienst auf dem Host erreichen können. Stellen Sie sicher, dass keine Firewall den Zugriff auf Port 11434 blockiert (sudo ufw allow 11434/tcp).

📌 Key fact SearXNG kann auch so konfiguriert werden, dass es automatisch bestimmte Arten von Anfragen an die LLM-Engine weiterleitet. Dies erfordert fortgeschrittene Regelkonfigurationen in der settings.yml und ist ein Weg, die Perplexity-Erfahrung weiter zu imitieren.


🛡️ Step 5: Sicherheit und Wartung – Eine private Umgebung schützen

Eine selbst gehostete Umgebung erfordert immer Aufmerksamkeit bei der Sicherheit und regelmäßige Wartung.

Grundlegende Sicherheitsmaßnahmen

  • Firewall einrichten (UFW): Beschränken Sie den Zugriff auf Ihre Dienste auf die benötigten Ports. Standardmäßig für SSH (22), SearXNG (8080), Open WebUI (8081) und Ollama (11434).
    sudo ufw allow OpenSSH
    sudo ufw allow 8080/tcp
    sudo ufw allow 8081/tcp
    sudo ufw allow 11434/tcp # Nur wenn Sie direkt auf Ollama API von extern zugreifen wollen. Intern nicht immer nötig.
    sudo ufw enable
    
  • Starke Passwörter: Bei der Erstanmeldung von Open WebUI ein starkes Passwort wählen.
  • Regelmäßige Updates: Halten Sie Ihr Ubuntu-System und Ihre Docker-Images auf dem neuesten Stand.
    # Ubuntu Updates
    sudo apt update && sudo apt upgrade -y
    
    # Docker Image Updates
    cd ~/searxng && docker-compose pull && docker-compose up -d
    cd ~/open-webui && docker-compose pull && docker-compose up -d
    
  • Kein direkter externer Zugriff: Öffnen Sie Porte 8080, 8081 und 11434 nicht direkt zum Internet, es sei denn, Sie haben zusätzliche Sicherheitsmaßnahmen wie einen Reverse Proxy mit SSL (z.B. Nginx mit Let's Encrypt) implementiert und die Dienste entsprechend gesichert (Authentifizierung). Für den internen Gebrauch ist dies nicht erforderlich.

Backups und Monitoring

  • Regelmäßige Backups: Sichern Sie die Daten-Volumes Ihrer Docker-Container (z.B. ~/searxng/searxng-data und ~/open-webui/open-webui-data).
  • Systemressourcen überwachen: Behalten Sie CPU, RAM und Festplattennutzung im Auge, besonders wenn Sie größere LLMs laufen lassen.

Do this Konfigurieren Sie einen cronjob, um Ihre Docker-Images und das Ubuntu-System wöchentlich oder monatlich automatisch zu aktualisieren. Dies stellt sicher, dass Sie von den neuesten Sicherheitsfixes und Funktionen profitieren.


📈 Step 6: Modell-Management und Optimierung – Feintuning Ihrer KI-Suchmaschine

Die Leistung und Fähigkeiten Ihrer privaten Perplexity-Alternative hängen maßgeblich von den gewählten LLMs ab. Ollama bietet eine breite Palette von Modellen, von kleinen, schnellen bis zu großen, sehr leistungsfähigen.

Auswahl und Wechsel von Ollama-Modellen

  • Modelle erkunden: Besuchen Sie die Ollama-Modellbibliothek, um verfügbare Modelle zu sehen. Achten Sie auf die Größe und die Systemanforderungen.
  • Modell herunterladen: Über die Befehlszeile von Ihrem Server:
    ollama pull nom_des_modelles
    
    (z.B. ollama pull dolphin-mistral:latest für ein leistungsstarkes Code-Modell).
  • Modell in Open WebUI wählen: Nach dem Herunterladen erscheinen neue Modelle automatisch in der Modellauswahl von Open WebUI.
  • Modell in SearXNG ändern: Passen Sie die model-Zeile in der SearXNG settings.yml unter Ihrem ollama_ai Engine an und starten Sie SearXNG neu (docker-compose restart searxng).

Optimierungstipps für Leistung

  • Quantisierte Modelle: Suchen Sie nach "quantisierten" Versionen von Modellen (z.B. 7B-Q4_K_M), die weniger Speicher benötigen und schneller laufen, oft mit kaum merklichem Qualitätsverlust.
  • Batch-Verarbeitung: Für fortgeschrittene Anwendungsfälle können Sie Ollama für die Batch-Verarbeitung konfigurieren, um mehrere Anfragen gleichzeitig zu bearbeiten.
  • GPU-Nutzung: Wie bereits erwähnt, ist eine kompatible GPU der größte Leistungsschub für LLMs. Stellen Sie sicher, dass Ollama diese korrekt nutzt.
RAM-Verbrauch verschiedener Ollama-Modelle(GiB)
ModellnameGröße (ca.)Empf. RAMTypischer AnwendungsfallBesonderheit
llama2:7b3.8 GB8 GBAllzweck-Textgenerierung, ChatGuter Kompromiss aus Größe und Leistung
mistral:7b4.1 GB8 GBCode-Generierung, LogikrätselStark in logischen Aufgaben
dolphin-mistral4.1 GB8 GBCode-Assistenz, kreatives SchreibenFeinjustiert für vielseitige Aufgaben
phi32.3 GB4 GBLeichter Chatbot, ZusammenfassungenSehr effizient, ideal für Einsteiger oder schwache Hardware

🔄 Troubleshooting: Häufige Probleme und Lösungen

Auch bei einer schrittweisen Anleitung können Fehler auftreten. Hier sind Lösungen für häufige Probleme.

🆘 SearXNG oder Open WebUI nicht erreichbar

  • Problem: Sie können den Dienst unter http://Ihre-Server-IP:PORT nicht erreichen.
  • Lösung:
    • Überprüfen Sie, ob der Docker-Container läuft: docker ps. Wenn nicht, starten Sie ihn: cd ~/ORDNER && docker-compose up -d.
    • Überprüfen Sie die Firewall (UFW): sudo ufw status. Stellen Sie sicher, dass der Port freigegeben ist (sudo ufw allow PORT/tcp).
    • Überprüfen Sie den ports-Eintrag in Ihrer docker-compose.yml, ob der richtige Port gemappt ist.
    • Stellen Sie sicher, dass keine andere Anwendung denselben Port auf Ihrem Server belegt (sudo lsof -i :PORT).

🆘 Ollama kann keine Modelle herunterladen oder starten

  • Problem: Beim ollama pull oder ollama run treten Fehler auf.
  • Lösung:
    • Speicherplatz: df -h überprüfen, ob genügend Festplattenspeicher vorhanden ist.
    • RAM/VRAM: free -h für RAM, nvidia-smi (falls NVIDIA GPU) für VRAM. Wenn der Speicher nicht ausreicht, versuchen Sie kleinere Modelle oder quantisierte Versionen.
    • Netzwerk: Stellen Sie sicher, dass Ihr Server Internetzugang hat und DNS korrekt funktioniert (ping google.com).
    • Ollama-Dienststatus: systemctl status ollama überprüfen. Neu starten mit sudo systemctl restart ollama.

🆘 Open WebUI kann keine Verbindung zu Ollama herstellen

  • Problem: Open WebUI zeigt Fehlermeldungen bezüglich der Verbindung zu Ollama an.
  • Lösung:
    • Überprüfen Sie die OLLAMA_API_BASE_URL in der open-webui/docker-compose.yml. Stellen Sie sicher, dass http://host.docker.internal:11434 (Linux/macOS) korrekt ist oder die tatsächliche Host-IP verwendet wird.
    • Stellen Sie sicher, dass Ollama läuft und dass auf Port 11434 vom Docker-Container aus zugegriffen werden kann. Testen Sie dies, indem Sie versuchen from dem Docker Host selbst einen curl Aufruf zu machen: curl http://localhost:11434/api/tags sollte eine Liste der installierten Modelle zurückgeben.
    • Möglicherweise blockiert eine Firewall auf dem Host-System den Zugriff auf Port 11434 vom Docker-internen Netzwerk. Dies ist selten, aber überprüfenswert.
KomponenteSymptomHäufige UrsacheLösung
SearXNGNicht erreichbar (8080)Docker nicht gestartet, Firewalldocker ps, sudo ufw status
OllamaModellfehler, langsamWenig RAM/VRAM, NetzwerkproblemKleineres Modell, free -h, ping, Ollama Service-Check
Open WebUIKeine Ollama-VerbindungFalsche API-URL, FirewallOLLAMA_API_BASE_URL prüfen, curl Test

🌟 Fazit: Ihre private, intelligente Suchumgebung ist bereit

Sie haben es geschafft! Mit der erfolgreichen Einrichtung von SearXNG, Ollama und Open WebUI auf Ihrem Ubuntu 24.04 Server verfügen Sie nun über eine leistungsstarke, private Perplexity-Alternative. Diese Lösung bietet nicht nur die intelligenten Suchfunktionen, die Sie von modernen KI-Assistenten erwarten, sondern gibt Ihnen auch die volle Kontrolle über Ihre Daten und Modelle zurück.

Dieses Setup ist ein Paradebeispiel dafür, wie Open-Source-Software und Self-Hosting die digitale Welt demokratisieren und Anwendern mehr Souveränität ermöglichen können. Experimentieren Sie mit verschiedenen LLM-Modellen, passen Sie die Integration weiter an Ihre Bedürfnisse an und genießen Sie die Gewissheit, dass Ihre Suchanfragen und Interaktionen privat bleiben. Die Reise des Self-Hostings ist eine fortlaufende – bleiben Sie neugierig, bleiben Sie sicher und genießen Sie Ihre neue Ära der privaten Intelligenz.

Nehmen Sie die Kontrolle über Ihre Daten und Suchanfragen zurück – mit Ihrer privaten KI-Suchmaschine.

Häufige Fragen

Was ist der Hauptvorteil einer selbst gehosteten Perplexity-Alternative?
Der Hauptvorteil besteht in der vollständigen Kontrolle über Ihre Daten und Suchanfragen. Im Gegensatz zu kommerziellen Diensten werden Ihre Informationen nicht an Dritte gesendet oder zur Modelloptimierung verwendet, was maximale Privatsphäre und Datensouveränität gewährleistet.
Benötige ich eine spezielle Hardware, um Ollama zu betreiben?
Für kleinere LLMs (z.B. Phi-3) können 4-8 GB RAM und eine CPU ausreichen. Für größere oder performantere Modelle ist jedoch eine **NVIDIA- oder AMD-GPU mit ausreichend VRAM** (mindestens 8 GB, besser 16 GB+) dringend empfohlen, um eine akzeptable Geschwindigkeit zu erreichen.
Wie aktualisiere ich SearXNG, Ollama und Open WebUI nach der Installation?
Für SearXNG und Open WebUI, die in Docker laufen, navigieren Sie in deren Verzeichnisse und führen `docker-compose pull` gefolgt von `docker-compose up -d` aus. Für Ollama nutzen Sie das Update-Skript: `curl -fsSL https://ollama.com/install.sh | sh`.
Kann ich diese private Suchmaschine für mehrere Benutzer freigeben?
Prinzipiell ja. Open WebUI unterstützt Benutzerverwaltung. Für den externen Zugriff sollten Sie jedoch unbedingt einen **Reverse Proxy (z.B. Nginx) mit SSL-Verschlüsselung (Let's Encrypt)**, robuster Authentifizierung und weiteren Sicherheitsmaßnahmen implementieren, um Ihren Server zu schützen.

Quellen

  1. Offizielle Ollama Website
  2. SearXNG GitHub Repository
  3. Open WebUI GitHub Repository
  4. Ubuntu 24.04 LTS Offizielle Seite
  5. Docker Offizielle Dokumentation

You may also like