Vane (Perplexica 2.0) – Snabbstart med Ollama och llama.cpp
Självhöstad AI-sökning med lokala stora språkmodeller
Vane är en av de mer pragmatiska lösningarna inom området för “AI-sök med källhänvisningar”: ett självärbetet svarsmotor som blandar live-webbhämtning med lokala eller molnbaserade LLM:er, samtidigt som hela stacken hålls under din kontroll.
Projektet var ursprungligen känt som Perplexica, och namnbytet till Vane är inte bara kosmetiskt: det återspeglar både en rensning av varumärket och en stadig förskjutning bort från att framställas som “en klon” och mot att bli en generell svarsmotor.

Eftersom den användbara delen av stacken inte bara är gränssnittet utan också där inferens och data finns, denna jämförelse av LLM-värdskap i 2026 samlar lokala, självärbeta och molnbaserade lösningar så att du kan placera Vane bredvid andra runtime-miljöer och distributionsval.
Detta inlägg fokuserar på de delar som tekniska läsare faktiskt bryr sig om: hur systemet fungerar, en minimal Docker-snabbstart och hur man kör det med lokal inferens via Ollama och llama.cpp (direkt eller via LM Studio). Under vägen besvaras varje FAQ-tema i sammanhanget, inte parkerat längst ner.
Vad Vane är och hur AI-sökmotorer fungerar
På en hög nivå är Vane en Next.js-applikation som kombinerar ett chattgränssnitt med sökning och källhänvisningar. De centrala arkitektoniska delarna är också exakt vad man kan förvänta sig från en modern AI-sökmotor: API-rutter för chatt och sökning, orkestrering som bestämmer när hämtning ska ske, och en svarsskrivare som är medveten om källhänvisningar.
När du skickar in en fråga i gränssnittet, anropar Vane POST /api/chat. Internt är arbetsflödet medvetet strukturerat:
- Det klassificerar frågan först för att bestämma om research behövs och vilka hjälpare som ska köras.
- Det kör research och widgets parallellt.
- Det genererar det slutgiltiga svaret och inkluderar källhänvisningar.
Den etikett “AI-sökmotor” är viktig, eftersom detta inte bara är ett chattgränssnitt. Den avgörande skillnaden är retrieval augmented generation: istället för att enbart lita på LLM:ns parametrar, hämtar Vane extern kontext (webbresultat och valfria användaruppladdningar) och använder det materialet som grundsubstans för det slutgiltiga svaret. Dess dokumentation pekar utryckligen på webbläsning och “sökning i användaruppladdade filer” som en del av researchen, med embeddings som används för semantisk sökning över uppladdningar.
Källhänvisningar är inte något eftertänkt. Vane instruerar modellen att hänvisa till källor den använt, och sedan renderar gränssnittet dessa källhänvisningar bredvid svaret. I praktiken är det detta som skiljer “hjulpfull” AI-sökning från en självsäker hallucinationsgenerator som bara råkar ha en sökknapp.
SearxNG sitter under webbhämtningsskiktet för de flesta installationer. SearxNG är en gratis metasökmotor som samlar resultat från många söktjänster och, per design, inte spårar eller profilerar användare. Det är en fundamentalt annorlunda filosofi jämfört med betalda sökmotor-API:er, som oftast ger dig en enda leverantörsindex och ett kommersiellt dataavtal.
Historik och namnbyte från Perplexica till Vane
Perplexica startade som en öppen källkodslösning för självärbet svarsmotor inspirerad av Perplexity AI. Flera offentliga guider beskriver fortfarande projektet som “tidigare känt som Perplexica” och behandlar Vane som en fortsättning snarare än en fiendefull bifurkation.
Namnbytet implementerades direkt i upstream-repositoriet. I master-grenens commit-historik dyker commiten med titeln feat(app): rename to 'vane' upp den 9 mars 2026 (SHA 39c0f19).
Det är mer intressant att se “hur” än rubriken. Det namnbytes-commitet är inte bara en README-justering: det uppdaterar Docker-bildnamn från itzcrazykns1337/perplexica till itzcrazykns1337/vane, justerar container-filsystemsvägar från /home/perplexica till /home/vane, och uppdaterar projekttext och tillgångar därefter.
Om du undrar varför öppen källkod AI-projekt byter namn, är Vane ett läroboksexempel på de vanliga drivkrafterna:
- Namnproxitet till ett kommersiellt varumärke skapar förvirring (och ibland juridisk risk).
- Projektets omfång expanderar bortom den ursprungliga ramningen (från “klon” till “svarsmotor”).
- Distribueringsartefakter behöver en sammanhängande identitet (Docker-bilder, dokumentation, UI-etiketter).
Också, ekosystemet byter inte namn över en natt. Docker Hub visar fortfarande båda repos under underhållarkontot, inklusive itzcrazykns1337/vane och itzcrazykns1337/perplexica. Så du kommer fortfarande att se äldre inlägg, compose-filer och registerreferenser som använder Perplexica-namnet även efter repos varumärkesbyten.
Docker-snabbstart och grundkonfiguration
Vanes officiella README är uppfriskande direkt: kör en enda container och du får Vane plus en inbyggd SearxNG-sökbackend. Den minimala Docker-snabbstarten ser ut så här.
docker run -d -p 3000:3000 -v vane-data:/home/vane/data --name vane itzcrazykns1337/vane:latest
Den bilden positioneras som “fungerar direkt”-vägen eftersom den redan inkluderar SearxNG, så du behöver inte en extern sökbackend bara för att testa gränssnittet. Konfiguration sker på inställningsskärmen efter att du öppnat webbgränssnittet på http://localhost:3000.
Om du redan kör SearxNG (vanligt i homelabs), förväntar sig den “smala” Vane-bilden att du pekar den mot en extern SearxNG-instans med hjälp av SEARXNG_API_URL. README:et pekar också ut två praktiska SearxNG-inställningsförväntningar: JSON-utdata aktiverat och Wolfram Alpha-motorn aktiverad.
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
Att hålla Vane uppdaterat är också dokumenterat i repos. Den officiella uppdateringsprocessen är i princip att dra den senaste bilden och starta om med samma volym, vilket bevarar inställningarna.
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
När du väl har det igång, kan Vane användas som en sökmotorgenväg i webbläsaren genom att peka en anpassad motor på http://localhost:3000/?q=%s. Det är en liten funktion med stor påverkan om du vill att “AI-sökning” ska kännas som sökning snarare än en app du besöker.
För automatisering och integration, exponerar Vane ett API. Dokumentationen beskriver GET /api/providers för att upptäcka konfigurerade leverantörer och modeller, och POST /api/search för att utföra en sökning med ett valt chattmodeller, inbäddningsmodell, källor och en optimizationMode (hastighet, balanserad, kvalitet).
Lokal LLM-inställning med Ollama
Vane stöder lokala LLM:er via Ollama och molnleverantörer i samma gränssnitt, vilket är rätt abstraktion om du tänker i termer av “anslutningar” och “modeller” snarare än “leverantörer”.
Det vanligaste problemet är inte modellvalet, det är nätverk. När Vane kör i Docker och Ollama kör på värdmaskinen, betyder “localhost” inte vad du tror det betyder från insidan av containern. Vane dokumenterar OS-specifika bas-URL:er för att ansluta till Ollama från en container.
Anslutningsfällor med Docker
Vanes felsökningssektion rekommenderar uttryckligen:
- Windows och macOS:
http://host.docker.internal:11434 - Linux:
http://<private_ip_of_host>:11434
För Linux noterar Vane också att Ollama kan vara bunden till 127.0.0.1 som standard och behöver exponeras. README:et föreslår att du sätter OLLAMA_HOST=0.0.0.0:11434 i systemd-tjänsten och startar om tjänsten.
Detta stämmer överens med Ollamas egna serve-miljövariabler, där OLLAMA_HOST styr serverbindningsadressen och standarden är 127.0.0.1:11434.
Håll modeller varma och välj modeller
Om du kör lokal inferens kommer du att känna av kallstarts. Ollama har två relaterade mekanismer för att hålla modeller laddade:
OLLAMA_KEEP_ALIVEsom en serverinställning.keep_alivesom en parameter per anrop för/api/generateoch/api/chat, vilket åsidosätter serverstandarden.
Vane lade till sitt eget keep_alive-stöd för Ollama-modeller (så att appen kan påverka hur länge en modell stannar i minnet). Den funktionen dyker upp i Vanes v1.10.0 släppanteckningar.
Modellval är den del som blir överkomplicerad på internet. För Vane-stil arbete är det mest praktiska uppdelningen:
- En chattmodell som är instruktionsfinjusterad (för sammanfattning och syntes).
- En inbäddningsmodell för likhetsökning över uppladdningar och hämtad text. Vanes API-dokumentation visar att sökningen explicit väljer både en chattmodell och en inbäddningsmodell.
Ollama stöder inbäddningsarbetsflöden, och till och med CLI-dokumentationen inkluderar ett exempel som använder nomic-embed-text för inbäddningar.
Detta är också svaret på FAQ-frågan om att köra AI-sökning lokalt utan moln-API:er: med Vane i Docker, SearxNG lokalt och Ollama på din hårdvara, kan du hålla både dina sökfrågor och dina privata dokumentuppladdningar inom ditt eget nätverksgränser. (Om du bestämmer dig för att ansluta till en molnleverantör istället, ändrar anslutningen uppenbarligen datapathen.)
Lokal LLM-inställning med llama.cpp
Det finns två realistiska sätt att koppla Vane med llama.cpp:
- Använd LM Studio som serverskikt (och låt Vane prata med det).
- Kör llama.cpps egna HTTP-server (llama-server) och anslut via en OpenAI-kompatibel slutpunkt.
Vane stöder uttryckligen “lokala OpenAI-API-kompatibla servrar” och pekar ut de vanliga kraven: binda till 0.0.0.0 snarare än 127.0.0.1, använda rätt port, sätta ett modellnamn som finns på servern, och inte lämna API-nyckelfältet tomt även om servern inte kräver autentisering.
LM Studio är relevant här eftersom den ligger ovanpå lokala backends (ofta llama.cpp) samtidigt som den exponerar ett OpenAI-kompatibelt API. Vane v1.12.1 noterar specifikt att ett LM Studio-leverantör lades till.
LM Studios dokumentation listar de stödda OpenAI-kompatibla slutpunkterna och visar ett bas-URL-exempel som använder http://localhost:1234/v1 (förutsatt port 1234). Det är viktigt eftersom det, från Vanes perspektiv, är “bara en annan OpenAI-stil server”.
Om du föredrar att köra llama.cpp direkt, stöder den officiella llama.cpp HTTP-servern OpenAI-API-kompatibla chattkompletteringar, svar och inbäddningsrutter, tillsammans med en lång lista av serverfunktioner (batchhantering, övervakning, verktygsanvändning).
Även om du inte minnas flaggorna, är de viktiga delarna:
- Servern existerar och är aktivt dokumenterad.
- API-ytan är tillräckligt kompatibel så att OpenAI-stil klienter kan prata med den, vilket är exakt vad Vane behöver för sitt “OpenAI-kompatibel” anslutningsmönster.
Vad som släppts nyligen och vad som förändras nu
Om du vill förstå vad Vane blev under det senaste året, följ släppanteckningarna och master-grenens historik snarare än hypes.
Per 10 april 2026 (Australien/Melbourne) är den senaste taggade GitHub-släppet synligt på släppsidan v1.12.1 (31 december 2025). Det släppet antecknar att en LM Studio-leverantör lades till och fixar kring funktionsanrop med OpenAI-kompatibla leverantörer och JSON-tolkning.
De föregående släppen beskriver de större förändringarna:
- v1.11.0 (21 oktober 2025) introducerade en ny installationsguiden och ett omdesignat konfigurationssystem, tillsammans med bredare leverantörstöd och en en-kommands Docker-installationsväg. Det nämnde också dynamisk modellhämtning och olika förbättringar av gränssnitt och utvecklarupplevelse.
- v1.12.0 (27 december 2025) är en arkitektonisk omstart: den tar bort LangChain till förmån för en anpassad implementation för strömning, generering och leverantörsspecifikt beteende. Det bytte också namn på “leverantörer” till “anslutningar”, lade till förbättringar av gränssnitt och kodrendering, och flyttade mer kapacitet till projektets egna abstraktioner (inklusive förbättrade funktionsanrop jämfört med tidigare tolkningsmetoder).
- Tidigare, v1.10.0 (20 mars 2025) lade till filuppladdningar (PDF, TXT, DOCX), lade till en Ollama keep_alive-parameter, lade till en meta-sökagentklass för att förbättra underhållbarhet och fokuseringslägeskapning, och lade till automatisk bild- och videosökningsfunktionalitet.
På varumärkessidan landade namnbytet till Vane den 9 mars 2026 i master (feat(app): rename to 'vane'), och uppdaterade både kodbasens namn och Docker-artefakter.
Och projektet upphörde inte att utvecklas efter december 2025-släppet. Master-grens commits den 8-9 april 2026 inkluderar arbete beskrivet som “uppdaterat djupresearchläge, kontexthantering” och nya sökutförande och skrapningsrelaterade förändringar. Med andra ord, den “AI-sökmotor”-delen itereras fortfarande aktivt, inte fryst bakom släppmärken.