Vane (Perplexica 2.0) Schnellstart mit Ollama und llama.cpp

Selbst gehostete KI-Suche mit lokalen LLMs

Inhaltsverzeichnis

Vane ist einer der pragmatischeren Einträge im Bereich „KI-Suche mit Quellenangaben": eine selbst gehostete Antwortmaschine, die live abrufbare Websuche mit lokalen oder Cloud-LLMs kombiniert, während der gesamte Stack unter Ihrer Kontrolle bleibt.

Das Projekt war ursprünglich als Perplexica bekannt, und die Umbenennung zu Vane ist nicht nur kosmetischer Natur: Sie spiegelt sowohl eine Markenbereinigung als auch einen stetigen Wandel wider, weg von der Darstellung als „Klon" und hin zu einer allgemeinen Antwortmaschine.

laptop-llama-server

Da der nützliche Teil des Stacks nicht nur die Benutzeroberfläche, sondern auch der Ort ist, an dem Inferenz und Daten stattfinden, fasst dieser Vergleich zur LLM-Hosting-Situation im Jahr 2026 lokale, selbst gehostete und Cloud-Setups zusammen, damit Sie Vane neben anderen Laufzeitumgebungen und Deployment-Optionen einordnen können.

Dieser Beitrag konzentriert sich auf die Aspekte, die technische Leser tatsächlich interessieren: wie das System funktioniert, ein minimales Docker-Quickstart und wie man es mit lokaler Inferenz über Ollama und llama.cpp (direkt oder über LM Studio) ausführt. Auf dem Weg wird jedes FAQ-Thema kontextbezogen beantwortet, nicht am Ende des Artikels abgeparkt.

Was Vane ist und wie KI-Suchmaschinen funktionieren

Auf einer hohen Ebene ist Vane eine Next.js-Anwendung, die eine Chat-Benutzeroberfläche mit Suche und Quellenangaben kombiniert. Die architektonischen Kernkomponenten sind genau das, was man von einer modernen KI-Suchmaschine erwartet: API-Routen für Chat und Suche, Orchestrierung, die entscheidet, wann eine Abrufaktion notwendig ist, und ein auf Quellenangaben bewusster Antwortersteller.

Wenn Sie eine Abfrage in der Benutzeroberfläche eingeben, ruft Vane POST /api/chat auf. Intern ist der Arbeitsablauf bewusst strukturiert:

  • Zuerst wird die Frage klassifiziert, um zu entscheiden, ob Recherche benötigt wird und welche Helfer laufen sollten.
  • Recherche und Widgets werden parallel ausgeführt.
  • Die endgültige Antwort wird generiert und enthält Quellenangaben.

Dieser Begriff „KI-Suchmaschine" ist wichtig, denn es handelt sich hier nicht nur um ein Chat-Frontend. Der entscheidende Unterschied ist die „Retrieval Augmented Generation" (RAG): Anstatt sich ausschließlich auf die Parameter des LLM zu verlassen, holt Vane externen Kontext (Webergebnisse und optional benutzerspezifische Uploads) und verwendet dieses Material als Fundament für die endgültige Antwort. Die Dokumentation hebt explizit Websuche und „Suche in hochgeladenen Benutzeraufträgen" als Teil der Recherche hervor, wobei Embeddings für die semantische Suche über Uploads verwendet werden.

Quellenangaben sind kein Afterthought. Vane fordert das Modell auf, die verwendeten Referenzen zu zitieren, und die Benutzeroberfläche rendert diese Quellenangaben neben der Antwort. In der Praxis ist es genau das, was „hilfreiche" KI-Suche von einem selbstbewussten Halluzinationsgenerator trennt, der zufällig eine Suchschaltfläche hat.

SearxNG befindet sich in den meisten Setups unter der Webrückholungsschicht. SearxNG ist eine kostenlose Metasuchmaschine, die Ergebnisse aus vielen Suchdiensten aggregiert und von Design her Nutzer nicht verfolgt oder profilert. Das ist eine grundlegend andere Philosophie als bei bezahlten Such-APIs, die Ihnen in der Regel einen einzigen Anbieterindex und einen kommerziellen Datenvertrag bieten.

Geschichte von Perplexica zu Vane und die Umbenennung

Perplexica begann als eine Open-Source-, selbst hostbare Antwortmaschine, die von Perplexity AI inspiriert war. Mehrere öffentliche Leitfäden beschreiben das Projekt immer noch als „früher bekannt als Perplexica" und behandeln Vane als Fortsetzung und nicht als feindseligen Fork.

Die Umbenennung wurde direkt im Upstream-Repository implementiert. In der Commit-Historie des Master-Zweigs erscheint der Commit mit dem Titel feat(app): rename to 'vane' am 9. März 2026 (SHA 39c0f19).

Das „Wie" ist interessanter als die Schlagzeile. Dieser Umbenennungs-Commit ist nicht nur eine README-Anpassung: Er aktualisiert Docker-Image-Namen von itzcrazykns1337/perplexica zu itzcrazykns1337/vane, passt Container-Dateisystempfade von /home/perplexica zu /home/vane an und aktualisiert den Projekttext und Assets entsprechend.

Wenn Sie sich fragen, warum Open-Source-KI-Projekte umbenannt werden, ist Vane ein Lehrbuchbeispiel für die üblichen Treiber:

  • Die Namensähnlichkeit mit einer kommerziellen Marke führt zu Verwirrung (und manchmal zu rechtlichen Risiken).
  • Der Projektumfang erweitert sich über die ursprüngliche Rahmung hinaus (von „Klon" zu „Antwortmaschine").
  • Verteilungsartefakte benötigen eine kohärente Identität (Docker-Images, Dokumentation, UI-Beschriftungen).

Außerdem wechselt das Ökosystem nicht über Nacht die Namen. Docker Hub zeigt nach wie vor beide Repositories unter dem Konto des Maintainers an, einschließlich itzcrazykns1337/vane und itzcrazykns1337/perplexica. Sie werden also auch nach der Rebranding des Repos ältere Blogbeiträge, Compose-Dateien und Registerverweise sehen, die die Perplexica-Benennung verwenden.

Docker-Quickstart und grundlegende Konfiguration

Vanes offizielles README ist erfrischend direkt: Starten Sie einen einzelnen Container und Sie erhalten Vane plus ein gebündeltes SearxNG-Suchbackend. Der minimale Docker-Quickstart sieht wie folgt aus.

docker run -d -p 3000:3000 -v vane-data:/home/vane/data --name vane itzcrazykns1337/vane:latest

Dieses Image wird als der „einfach funktioniert"-Weg positioniert, da es bereits SearxNG enthält, sodass Sie kein externes Suchbackend benötigen, um nur die Benutzeroberfläche zu testen. Die Konfiguration erfolgt im Setup-Bildschirm, nachdem Sie die Weboberfläche unter http://localhost:3000 geöffnet haben.

Wenn Sie bereits SearxNG betreiben (häufig in Homelabs), erwartet das „slim" Vane-Image, dass Sie es auf eine externe SearxNG-Instanz mit SEARXNG_API_URL zeigen. Das README hebt auch zwei praktische SearxNG-Einstellungserwartungen hervor: JSON-Ausgabe aktiviert und der Wolfram Alpha-Engine aktiviert.

docker run -d -p 3000:3000 \
  -e SEARXNG_API_URL=http://your-searxng-url:8080 \
  -v vane-data:/home/vane/data \
  --name vane \
  itzcrazykns1337/vane:slim-latest

Das Aktualisieren von Vane ist ebenfalls im Repository dokumentiert. Der offizielle Aktualisierungsworkflow besteht im Wesentlichen darin, das neueste Image zu ziehen und mit demselben Volume neu zu starten, wodurch die Einstellungen erhalten bleiben.

docker pull itzcrazykns1337/vane:latest
docker stop vane
docker rm vane
docker run -d -p 3000:3000 -v vane-data:/home/vane/data --name vane itzcrazykns1337/vane:latest

Sobald es läuft, kann Vane als Suchmaschinen-Shortcut im Browser verwendet werden, indem eine benutzerdefinierte Engine auf http://localhost:3000/?q=%s zeigt. Das ist eine kleine Funktion mit überproportionalem Impact, wenn Sie möchten, dass „KI-Suche" sich nach Suche und nicht nach einer App anfühlt, die Sie besuchen.

Für Automatisierung und Integration stellt Vane eine API zur Verfügung. Die Dokumentation beschreibt GET /api/providers, um konfigurierte Anbieter und Modelle zu entdecken, und POST /api/search, um eine Suche mit einem gewählten Chat-Modell, Embedding-Modell, Quellen und einem optimizationMode (Geschwindigkeit, ausgewogen, Qualität) auszuführen.

Lokale LLM-Einrichtung mit Ollama

Vane unterstützt lokale LLMs über Ollama und Cloud-Anbieter in derselben Benutzeroberfläche, was die richtige Abstraktion ist, wenn Sie in Begriffen von „Verbindungen" und „Modellen" statt „Anbietern" denken.

Das häufigste Problem ist nicht die Modellwahl, sondern das Netzwerk. Wenn Vane in Docker läuft und Ollama auf dem Host läuft, bedeutet „localhost" innerhalb des Containers nicht das, was Sie denken. Vane dokumentiert OS-spezifische Basis-URLs für die Verbindung zu Ollama aus einem Container.

Verbindungsfallen mit Docker

Vanes Fehlerbehebungsabschnitt empfiehlt explizit:

  • Windows und macOS: http://host.docker.internal:11434
  • Linux: http://<private_ip_of_host>:11434

Für Linux stellt Vane auch fest, dass Ollama standardmäßig an 127.0.0.1 gebunden sein kann und freigegeben werden muss. Das README schlägt vor, OLLAMA_HOST=0.0.0.0:11434 im systemd-Dienst zu setzen und den Dienst neu zu starten.

Dies stimmt mit den eigenen serve-Umgebungsvariablen von Ollama überein, wobei OLLAMA_HOST die Server-Bind-Adresse steuert und standardmäßig auf 127.0.0.1:11434 eingestellt ist.

Modelle warm halten und Modelle auswählen

Wenn Sie lokale Inferenz ausführen, werden Sie kalte Starts spüren. Ollama hat zwei verwandte Mechanismen, um Modelle geladen zu halten:

  • OLLAMA_KEEP_ALIVE als Server-Einstellung.
  • keep_alive als Parameter pro Anfrage für /api/generate und /api/chat, der das Server-Standardverhalten überschreibt.

Vane hat seine eigene keep_alive-Unterstützung für Ollama-Modelle hinzugefügt (damit die Anwendung beeinflussen kann, wie lange ein Modell im Speicher bleibt). Diese Funktion erscheint in Vane v1.10.0 Release Notes.

Die Modellauswahl ist der Teil, der im Internet überkompliziert wird. Für Vane-artige Arbeiten ist die praktikabelste Aufteilung:

  • Ein Chat-Modell, das instruktionsgestimmt ist (für Zusammenfassung und Synthese).
  • Ein Embedding-Modell für die Ähnlichkeitssuche über Uploads und abgerufene Texte. Vane’s API-Dokumente zeigen, dass die Suchanfrage explizit sowohl ein Chat-Modell als auch ein Embedding-Modell auswählt.

Ollama selbst unterstützt Embedding-Workflows, und selbst die CLI-Dokumente enthalten ein Beispiel, das nomic-embed-text für Embeddings verwendet.

Dies ist auch die Antwort auf die FAQ über die Ausführung von KI-Suche lokal ohne Cloud-APIs: Mit Vane in Docker, SearxNG lokal und Ollama auf Ihrer Hardware können Sie sowohl Ihre Suchanfragen als auch Ihre privaten Dokument-Uploads innerhalb Ihrer eigenen Netzwerkgrenze halten. (Wenn Sie sich entscheiden, stattdessen eine Verbindung zu einem Cloud-Anbieter herzustellen, ändert sich der Datenpfad natürlich.)

Lokale LLM-Einrichtung mit llama.cpp

Es gibt zwei realistische Möglichkeiten, Vane mit llama.cpp zu koppeln:

  • LM Studio als Serverschicht verwenden (und Vane dazu bringen, damit zu sprechen).
  • llama.cpps eigenen HTTP-Server (llama-server) ausführen und über einen OpenAI-kompatiblen Endpunkt verbinden.

Vane unterstützt explizit „Lokale OpenAI-API-konforme Server" und nennt die üblichen Anforderungen: an 0.0.0.0 statt 127.0.0.1 binden, den korrekten Port verwenden, einen Modellnamen setzen, der auf dem Server existiert, und das API-Key-Feld nicht leer lassen, auch wenn der Server keine Authentifizierung erzwingt.

LM Studio ist hier relevant, da es über lokalen Backends (oft llama.cpp) sitzt und dabei eine OpenAI-kompatible API aussetzt. Vane v1.12.1 erwähnt spezifisch die Hinzufügung eines LM Studio-Anbieters.

LM Studios Dokumente listen die unterstützten OpenAI-kompatiblen Endpunkte auf und zeigen ein Basis-URL-Beispiel unter Verwendung von http://localhost:1234/v1 (angenommen Port 1234). Das ist wichtig, denn aus Vane’s Perspektive ist es „nur ein weiterer OpenAI-artiger Server".

Wenn Sie llama.cpp direkt ausführen wollen, unterstützt der offizielle llama.cpp HTTP-Server OpenAI-API-kompatible Chat-Vervollständigungen, Antworten und Embedding-Routen, zusammen mit einer langen Liste von Serverfunktionen (Batching, Überwachung, Tool-Nutzung).

Selbst wenn Sie die Flags nicht auswendig lernen, sind die wichtigen Teile:

  • Der Server existiert und wird aktiv dokumentiert.
  • Die API-Oberfläche ist kompatibel genug, damit OpenAI-artige Clients damit kommunizieren können, was genau das ist, was Vane für sein „OpenAI-kompatibles" Verbindungsmuster benötigt.

Was kürzlich veröffentlicht wurde und was sich jetzt ändert

Wenn Sie verstehen wollen, was Vane im letzten Jahr geworden ist, folgen Sie den Release Notes und der Master-Zweig-Historie, nicht dem Hype.

Stand 10. April 2026 (Australien/Melbourne) ist die neueste getaggte GitHub-Release, die auf der Release-Seite sichtbar ist, v1.12.1 (31. Dezember 2025). Diese Release Notes erwähnen die Hinzufügung eines LM Studio-Anbieters und Fixes rund um Funktionsaufrufe mit OpenAI-kompatiblen Anbietern und JSON-Parsing.

Die vorherigen Releases umreißen die größeren Verschiebungen:

  • v1.11.0 (21. Oktober 2025) führte einen neuen Setup-Wizard und ein neu gestaltetes Konfigurationssystem ein, zusammen mit breiterer Anbieterunterstützung und einem Docker-Installationspfad mit einem einzigen Befehl. Es erwähnt auch dynamisches Modell-Fetchen und verschiedene Verbesserungen der Benutzeroberfläche und Entwicklererfahrung.
  • v1.12.0 (27. Dezember 2025) ist ein architektonischer Reset: Es entfernt LangChain zugunsten einer benutzerdefinierten Implementierung für Streaming, Generierung und anbieter-spezifisches Verhalten. Es benennt auch „Anbieter" in „Verbindungen" um, fügt UI- und Code-Rendering-Verbesserungen hinzu und verlagert mehr Fähigkeiten in die eigenen Abstraktionen des Projekts (einschließlich verbesserter Funktionsaufrufe im Vergleich zu früheren Parsing-Ansätzen).
  • Früher, v1.10.0 (20. März 2025), fügte Datei-Uploads (PDF, TXT, DOCX) hinzu, fügte einen Ollama keep_alive-Parameter hinzu, fügte eine Meta-Suchagenten-Klasse hinzu, um Wartbarkeit und Fokusmodus-Erstellung zu verbessern, und fügte automatische Bild- und Videosuchfunktionalität hinzu.

Auf der Marken-Seite landete die Umbenennung zu Vane am 9. März 2026 im Master (feat(app): rename to 'vane'), wobei sowohl die Codebasis-Benennung als auch die Docker-Artefakte aktualisiert wurden.

Und das Projekt hielt nicht nach der Release im Dezember 2025 auf, sich weiterzuentwickeln. Master-Zweig-Commits vom 8.-9. April 2026 beinhalten Arbeit, die als „aktualisierter Deep-Research-Modus, Kontextmanagement" und neue Suchausführungs- und Scrapping-bezogene Änderungen beschrieben wird. Mit anderen Worten: Der „KI-Suchmaschinen"-Teil wird noch aktiv weiterentwickelt und nicht hinter Release-Tags eingefroren.

Einige Referenzen