Open-source AI search · Docker + Ollama

Vane: an open source Perplexity alternative you can self-host

Build a search-and-answer workflow with your own models and storage. Compare Vane with Perplexity, then follow a local Docker setup with Ollama.

Independent guide, not a hosted search service. Installation examples are documented instructions, not a claim that we ran or benchmarked Vane.

Sources checked:

What is Vane?

Vane combines a search backend and language models to produce answers with source links. The application is MIT-licensed; the models and services you connect have their own terms.

Choose your models

Connect Ollama locally or configure a supported cloud provider. Your choice changes hardware needs, cost and where prompts are processed.

Search with source links

Vane uses SearXNG for web retrieval. Open cited pages to check whether they support the answer; citations do not guarantee accuracy.

Own the running service

Keep application data in a persistent volume and control updates and access. You also take responsibility for storage, backups and availability.

Vane vs Perplexity

A workflow comparison based on official documentation, not an accuracy or speed benchmark. Features and limits can change; check the linked sources before choosing.

Self-managed application vs hosted answer engine
DimensionVane · self-hostedPerplexity · hosted service
Source citationsSearch-backed answers with source links; verify the linked pages.Web-first answers with citations; verify the linked pages.
Model choiceConfigure local Ollama or a supported provider with your own credentials.Models and selection options depend on the current product and plan.
Self-hostingRun the MIT-licensed application on infrastructure you control.Use the hosted product; this comparison does not describe a self-hostable Perplexity edition.
File questionsDocument uploads; processing depends on the configured models and file support.File uploads and analysis with plan-dependent limits.
Data flowYou control the app and storage. Search requests still leave the machine; cloud models add another processor.Requests are processed by a hosted service under its product policies and account settings.
MaintenanceYou manage updates, model downloads, backups and network access.The vendor operates the service; no local inference stack to maintain.
CostNo application license fee under MIT; budget for hardware, electricity, hosting and any paid providers.Free and paid plans with different limits. Check current terms rather than assuming unlimited access.

What self-hosting does—and where data still travels

This is a simplified logical flow. Vane orchestrates retrieval and model calls; SearXNG does not directly become the language model.

  1. 01

    Your question

  2. 02

    Vane

  3. 03

    SearXNG retrieval

  4. 04

    Local or cloud model

  5. 05

    Answer + citations

Local inference

Select locally downloaded models for chat and, when needed, embeddings. Inspect all configured providers; selecting Ollama alone does not prove every step is local. Ollama also offers cloud features, which can be disabled in its settings.

Web retrieval

A web search needs network access. Search engines and visited sites may receive queries, derived searches and connection metadata even when the answer is generated locally.

Cloud inference

If you choose a cloud provider, prompts and relevant context go to that provider. Review its retention and billing terms before sending documents or sensitive material.

Keep this tutorial local. Before sharing an instance, put HTTPS and authentication/access control in front of it. Protect model endpoints too; opening a port is not an access policy.

Self-host Vane with Docker + Ollama

Install Docker and Ollama on your own machine. The commands below are examples to run there; this website does not install software or download models for you.

  1. 01

    Prepare Docker and Ollama

    Start Docker and the Ollama service. Match model size to available memory and disk space. CPU inference is possible but can be slow; no fixed GPU or RAM requirement is promised here.

  2. 02

    Download example models

    Pull llama3.2:3b for a small text-chat starting point. nomic-embed-text is an embedding model for document retrieval, not a chat model. These are examples, not an equivalence claim against commercial systems.

  3. 03

    Start the bundled image

    The official full image includes SearXNG. This guide maps the web app to 127.0.0.1:3001 and stores data in vane-data. Open http://localhost:3001 after startup.

  4. 04

    Configure and search

    In Vane’s setup, add Ollama using the address for your OS below, select the downloaded chat model and configure the embedding model for file retrieval when needed. Ask a factual question, then open its citations and check the source text.

Download and list models

ollama pull llama3.2:3b
ollama pull nomic-embed-text
ollama list

Start Vane · local web access only

docker run -d --name vane --restart unless-stopped -p 127.0.0.1:3001:3000 -v vane-data:/home/vane/data itzcrazykns1337/vane:latest

Commands shown as single lines work in PowerShell and bash/zsh. The example uses a mutable latest tag for the introductory path; review release notes and pin an image version or digest for repeatable deployments.

Connect the container to Ollama

Inside a Docker container, localhost refers to that container, not the host machine. Use the correct host address and confirm the Ollama listener is reachable.

Windows / macOS · Docker Desktop

Use http://host.docker.internal:11434 in Vane. If unreachable, follow the Ollama FAQ to configure its listener and restart the app. Restrict network access to the Docker host/container network.

Linux · host networking details

Use http://<HOST_PRIVATE_IP>:11434 with your actual reachable host address. A host-gateway DNS mapping alone cannot reach a service bound only to 127.0.0.1. Configure the listener and firewall before retrying.

Run sudo systemctl edit ollama.service, enter the override below, save, then run the reload commands separately. Binding 0.0.0.0 listens on all interfaces: allow only the Docker/private network in your firewall and never forward port 11434 to the public internet. Windows and macOS use different environment-setting steps; follow the official FAQ.

Linux systemd override · edit, then reload

[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"

Reload the Linux Ollama service

sudo systemctl daemon-reload
sudo systemctl restart ollama

Troubleshooting checklist

Start with the model service and container logs, then check the search backend.

No downloaded model appears
Run ollama list on the host, verify the model tag and confirm Vane reaches the same Ollama service. A successful download into another installation is not enough.
Cannot connect to Ollama
Check the OS-specific host address, port, listener and firewall. Container localhost is not the host. Do not solve this by exposing the model API publicly.
Port or container name is already in use
Inspect docker ps -a. Use another unused host port while keeping the container port 3000, or stop the old instance deliberately. Do not remove unrelated containers.
Search returns no sources
Inspect the Vane logs, try a simpler public query and verify SearXNG can reach its configured engines. For a separate SearXNG instance, check its URL and JSON support.
Answers are slow or run out of memory
Try a smaller model or shorter context, check available memory and disk, and review Ollama logs. A lightweight model is a starting point, not a guarantee of high-quality research.

Keep data, inspect logs and update

The named volume vane-data is mounted at /home/vane/data. It outlives a replaced container; deleting the volume deletes its contents. Back it up before upgrading.

Choose a fresh backup directory instead of overwriting an earlier backup. The example pauses Vane while copying. Backups may contain configuration, credentials, uploads and conversations; store them privately. Keep the backup and record the current image digest before updating.

Inspect container status and logs

docker ps -a --filter name=vane
docker logs --tail 100 vane

Stop, copy a backup, restart

docker stop vane
docker cp vane:/home/vane/data ./vane-backup
docker start vane

Update while reusing the data volume

docker pull itzcrazykns1337/vane:latest
docker stop vane
docker rm vane
docker run -d --name vane --restart unless-stopped -p 127.0.0.1:3001:3000 -v vane-data:/home/vane/data itzcrazykns1337/vane:latest

The update removes only the stopped container, then starts the new image with the same volume and local port binding. Do not delete vane-data. After updating, check settings, run a search and inspect citations; rollback may also require restoring data compatible with the old version.

Other configuration paths

Use a cloud model

Choose a supported cloud provider in Vane’s setup and supply your own API key. Cloud usage has separate billing and data handling. Keep keys in the instance configuration; never submit them to this website.

Use an existing SearXNG instance

The slim image uses your existing SearXNG URL via SEARXNG_API_URL. The official guide requires JSON format and the Wolfram Alpha engine to be enabled. Use a URL reachable from the Vane container, not its localhost. Follow the linked instructions for the full command.

Which one fits your workflow?

Choose Vane for control

Advantages: configurable local models, inspectable application code and control over app storage. Tradeoffs: installation, model quality, slower local inference and ongoing maintenance are your responsibility.

Choose Perplexity for convenience

Advantages: a managed search experience without running a model stack. Tradeoffs: service-defined models, plan limits and hosted data processing. Compare current features against your actual research tasks.

This is a fit assessment, not a benchmark. A small local text model does not inherit every capability shown in Vane’s product description; image understanding and research quality depend on the model you configure.

Frequently asked questions

Official references

Features and installation details are based on the sources below, checked on the stated date. Consult the latest release instructions before running the commands.