Why self-host an AI search engine
Perplexity sends every query to its own servers and its LLM providers. Vane flips the model: SearXNG runs on your VPS, the LLM is whichever you have chosen (local or API), and conversation history never leaves your machine.
It is also free and open-source (MIT). No subscription, no rate limits, no telemetry.
What you get with self-hosted Vane
- Bundled SearXNG — a metasearch engine aggregates Google, Bing, DuckDuckGo and 20+ other sources without tracking your queries.
- LLM of your choice — Ollama (local models: Llama 3, Mistral, Qwen…), OpenAI, Gemini, Groq or Anthropic; switch at any time in Settings.
- Cited answers — every response lists source pages with direct links; no unsupported claim.
- Local history — all conversations stored in SQLite on your VPS; nothing sent to an external service.
- Focus modes — Web, Academic, YouTube, Reddit, Writing Assistant or Wolfram Alpha to scope results by source type.
- No account required — no login page, no user management; open the URL and start searching.
- Single container — SearXNG and Next.js in one Docker image; one volume at /home/vane/data persists everything.
Prerequisites
Vane runs in a single Docker container, keeping its requirements intentionally low:
- 1 GB RAM minimum — sufficient for Vane + SearXNG. If you add an Ollama model on the same VPS, budget at least 4 GB (model-dependent).
- Docker 24+ and Docker Compose v2 — installed automatically by the ServOrbit provisioning script.
- No domain required — access via SSH tunnel (ssh -L 3000:127.0.0.1:3000 root@<ip>) or direct IP. A custom domain is optional.
- 5 GB disk — for the Docker image, SQLite and logs.
Vane does not need an external database. SQLite stores conversation history and configuration in /home/vane/data.
Installing Vane
Prepare the VPS
Provision a VPS with Ubuntu 22.04 or 24.04 and at least 1 GB RAM. Install Docker and the Compose plugin:
curl -fsSL https://get.docker.com | shCreate the directory and Compose file
On the server, create a dedicated directory:
mkdir -p /opt/vane && cd /opt/vaneCreate
/opt/vane/docker-compose.yml:services: vane: image: itzcrazykns1337/vane:v1.12.2 restart: unless-stopped ports: - "127.0.0.1:3000:3000" environment: SEARXNG_API_URL: "http://localhost:8080" volumes: - vane-data:/home/vane/data volumes: vane-data: {}Start Vane
Launch the container:
docker compose up -dVane downloads the image, initialises SQLite and starts SearXNG internally. Wait 20–30 seconds for startup to complete (Drizzle ORM migrations run on first launch).
Access the interface
Open an SSH tunnel from your local machine:
ssh -L 3000:127.0.0.1:3000 root@<your-vps-ip>Then open http://localhost:3000 in your browser. The Vane interface appears immediately — no account creation required.
Configure an LLM
Click the Settings icon (⚙) in the top-right corner. Under Model Providers, enter:
- Ollama (local): your endpoint URL, e.g.
http://localhost:11434
- OpenAI: your API key
- Gemini / Groq / Anthropic: the respective API keySave. Vane will now return AI-synthesised answers with cited sources.
Using focus modes
Vane offers focus modes to scope the search to a specific source type. Select the mode in the input bar before sending your query:
- Web — general search across all sources (default).
- Academic — targets scientific publications and research papers.
- YouTube — returns relevant videos with title summaries.
- Reddit — searches Reddit discussions (community feedback, opinions).
- Writing Assistant — writing-focused mode, no web search.
- Wolfram Alpha — delegates calculations, conversions and factual questions to Wolfram Alpha.
Backup and maintenance
All Vane state lives in the vane-data Docker volume. This volume holds the SQLite database, LLM provider configuration and conversation history.
To back it up:
docker run --rm -v vane_vane-data:/data -v /backup:/backup alpine \
tar czf /backup/vane-$(date +%Y%m%d).tar.gz -C /data .To update to a newer release, edit the tag in docker-compose.yml and restart:
docker compose pull && docker compose up -d