How to run Perplexica AI search with a self-hosted model on a cloud GPU
Rent a GPU on Deploy, then open a terminal in JupyterLab or over SSH. On 2026-11-14, https://github.com/ItzCrazyKns/Perplexica resolved to ItzCrazyKns/Vane. Install that repository with the Docker command the README prints, serve a model on that machine, and set the Ollama base URL or the OpenAI-compatible base URL to that server. Copy the vane-data volume, mounted at /home/vane/data, before you destroy the instance, because destroying the instance deletes its disk and stops the server.
An agent can rent the GPU and serve the model this search app calls. The agent pages are GPU compute for AI agents and the agent integration guide. Those pages are how an agent discovers a GPU and runs work on it. This page is the Perplexica install, using the repository the old URL now resolves to. A research agent whose Ollama block sets FAST_LLM to ollama:llama3 and EMBEDDING to ollama:nomic-embed-text is How to run GPT Researcher with a self-hosted model on a cloud GPU. An assistant whose setup page opens http://localhost:42110, and whose Ollama page sets OPENAI_BASE_URL to http://localhost:11434/v1/, is How to run Khoj AI assistant with a self-hosted model on a cloud GPU. An editor whose Ollama config sets baseURL to http://localhost:11434/v1 is How to use Kilo Code with a self-hosted model on a cloud GPU. An editor whose local-model page sets the Ollama api_url to http://localhost:11434 is How to use Zed’s AI agent with a self-hosted model on a cloud GPU. A coding assistant whose Docker command publishes port 8080 and passes --model and --chat-model is How to run Tabby self-hosted coding assistant on a cloud GPU. A terminal client whose OpenAI-compatible page sets OPENAI_API_BASE is How to use Aider with a self-hosted model on a cloud GPU. An editor client whose install page is the VS Code extension is How to use Cline with a self-hosted model on a cloud GPU. An editor whose config.yaml sets an apiBase for chat, autocomplete, and embeddings is How to use Continue with a self-hosted model on a cloud GPU. An editor whose Ollama provider defaults to http://localhost:11434 is How to use Roo Code with a self-hosted model on a cloud GPU. A coding agent whose providers page sets package to the OpenAI-compatible provider is How to use OpenCode with a self-hosted model on a cloud GPU. A platform whose single-container guide sets CHAT_BASE_URL to http://host.docker.internal:11434/v1 for a local OpenAI-compatible server is How to run AutoGPT with a self-hosted model on a cloud GPU. An agent whose Docker command publishes port 5080, and whose Ollama provider sets api_base to http://host.docker.internal:11434, is How to run Agent Zero with a self-hosted model on a cloud GPU. An agent whose Ollama example sets base_url to http://localhost:11434/v1 is How to run OpenManus with a self-hosted model on a cloud GPU. A chat app whose Docker page runs docker compose up -d and whose Ollama page sets baseURL to http://localhost:11434/v1/ is How to run LibreChat agents with a self-hosted model on a cloud GPU. A chat app whose README runs docker compose up -d and whose environment page sets OLLAMA_PROXY_URL to http://127.0.0.1:11434 is How to run LobeChat agents with a self-hosted model on a cloud GPU. A terminal agent whose install page runs curl -fsSL https://www.openinterpreter.com/install | sh, and whose models page sets the Ollama base URL to http://localhost:11434/v1, is How to run Open Interpreter with a self-hosted model on a cloud GPU. A workspace app whose Docker quickstart publishes port 3001, and whose Ollama page sets the URL to http://127.0.0.1:11434, is How to run AnythingLLM agents with a self-hosted model on a cloud GPU. A repository agent whose local-models section sets api_base to http://localhost:11434 is How to run SWE-agent with a self-hosted model on a cloud GPU. A workflow editor whose Docker install publishes port 5678, and whose Ollama credentials default the Base URL to http://localhost:11434, is How to run n8n AI agents with a self-hosted model on a cloud GPU. A CLI whose providers page sets OLLAMA_HOST to http://localhost:11434 is How to run the goose agent with a self-hosted model on a cloud GPU. A canvas whose self-host page opens http://localhost/install is How to run Dify with a self-hosted model on a cloud GPU. A canvas whose ChatOllama page names a base URL is How to run Flowise with a self-hosted model on a cloud GPU. A flow editor whose Ollama component defaults the base URL to http://127.0.0.1:11434 is How to run Langflow with a self-hosted model on a cloud GPU. A CLI whose connect help sets --base-url to http://localhost:8000/v1 for openai-compatible is How to run Letta agents with a self-hosted model on a cloud GPU. A browser chat whose serve command listens on port 8080 is How to run Open WebUI on a cloud GPU. A Python agent library whose CodeAgent can take TransformersModel or an OpenAI-compatible server is How to run smolagents with a self-hosted model on a cloud GPU. A crew whose LLM class takes base_url for Ollama or an OpenAI-compatible server is How to run CrewAI with a self-hosted model on a cloud GPU. A graph runtime whose overview example does not name a model is How to run LangGraph agents with a self-hosted model on a cloud GPU. An AgentChat library whose Ollama example sets model to llama3.2 is How to run AutoGen agents with a self-hosted model on a cloud GPU. A typed agent whose vLLM example sets base_url to http://localhost:8000/v1 is How to run Pydantic AI agents with a self-hosted model on a cloud GPU. A framework whose README sets Ollama and HuggingFaceEmbedding is How to build LlamaIndex agents with a self-hosted model on a cloud GPU. A browser agent whose models page sets base_url to http://localhost:11434/v1 is How to run browser-use with a self-hosted model on a cloud GPU. A pipeline whose OllamaChatGenerator sets url to http://localhost:11434 is How to run Haystack agents with a self-hosted model on a cloud GPU. A program whose language-models page sets dspy.LM to ollama_chat/llama3.2:1b is How to run DSPy with a self-hosted model on a cloud GPU. An agent whose Ollama example sets id to llama3.1:8b is How to run Agno agents with a self-hosted model on a cloud GPU. A TypeScript agent whose local-models section sets url on the model object is How to run Mastra agents with a self-hosted model on a cloud GPU. A ChatAgent whose vLLM example sets ModelPlatformType.VLLM is How to run CAMEL-AI agents with a self-hosted model on a cloud GPU. A local agent UI whose Docker command publishes port 3000 is How to run OpenHands with a self-hosted model on a cloud GPU. The README install is pip install --upgrade metagpt: How to run MetaGPT with a self-hosted model on a cloud GPU. A coding-agent server whose card prints --tool-call-parser qwen3_coder is How to serve Qwen3-Coder for coding agents on a cloud GPU. A general vLLM install is How to serve an OpenAI-compatible API with vLLM on a cloud GPU. A general SGLang install is How to run SGLang on a cloud GPU. Ollama’s install and port 11434 are How to run Ollama on a cloud GPU. CloudGPU’s hosted gateway is a different base URL: How do I use an OpenAI-compatible API for open models?. How published weight sizes are read: How much VRAM do I need to run an LLM?. The tunnel is How to use SSH port forwarding on a cloud GPU. If the process runs out of memory: How to fix CUDA out of memory on a cloud GPU. If the server raises no kernel image on an RTX 5090: How to fix CUDA no kernel image on an RTX 5090.
The LICENSE file is the MIT License, the copyright line is Copyright © 2026 ItzCrazyKns, and the GitHub license field on 2026-11-14 was MIT.
The steps below are copied from the upstream files named in each step, at the commit in Sources. They were not run on a CloudGPU instance for this page. Anything this page adds around them is marked. The README title at that commit is Vane. The provider file registers other providers. This page does not copy those names. It copies the Ollama provider and the OpenAI-compatible base URL field.
What the docs print about memory
The README, docs/API/SEARCH.md, and the Ollama and OpenAI-compatible provider files at this commit print no GPU GB figure. This page does not mark a catalog row as enough.
GET /v1/public/compute-capabilities does not list GPUs. It returns feature flags. The memory column is vram_gb from GET /v1/public/gpu-catalog (generated_at 2026-11-14T17:06:44.884Z). The catalog response also includes an availability field. This page does not copy it. Every catalog row below has min_gpu_count 1. Rows are sorted by vram_gb, then by name. Which listing you can start is on Deploy.
The catalog template list had no Perplexica template and no Vane template. It did have Ollama templates (jupyterlab-ollama, ollama-qwen3, ollama). Those templates are a different install. This page does not treat them as this app.
| Catalog name | vram_gb |
|---|---|
| RTX 2080 | 8 |
| RTX 3080 | 10 |
| RTX 2080 Ti | 11 |
| RTX 3080 Ti | 12 |
| V100 16G | 16 |
| A30 | 24 |
| RTX 3090 | 24 |
| RTX 4090 | 24 |
| RTX 4090D | 24 |
| RTX 4080 SUPER 32G | 32 |
| RTX 5090 | 32 |
| RTX 5090D | 32 |
| V100 32G | 32 |
| A100 40G | 40 |
| A800 40G | 40 |
| A40 | 48 |
| RTX 4090 48G | 48 |
| RTX 4090D 48G | 48 |
| RTX A6000 | 48 |
| Ascend 910B | 64 |
| NVIDIA RTX PRO 5000 72G | 72 |
| RTX PRO 5000 72G | 72 |
| A100 80G | 80 |
| A800 80G | 80 |
| H800 | 80 |
| RTX 6000D | 83 |
| H20 96G | 96 |
| RTX PRO 6000 96G | 96 |
| RTX PRO 6000 Max-Q | 96 |
| H20-3e 141G | 141 |
Install
The README says there are two ways, Docker and without Docker, and that Docker is recommended. Its recommended command, copied:
docker run -d -p 3000:3000 -v vane-data:/home/vane/data --name vane itzcrazykns1337/vane:latest
The README says this pulls the container with the bundled SearxNG search engine, and that you then open http://localhost:3000 and configure settings in the setup screen. It says the image includes both Vane and SearxNG, so no additional setup is required. That path does not print a search API key. Dockerfile at this commit is FROM node:24.5.0-slim, EXPOSE 3000 8080, and ENV SEARXNG_API_URL=http://localhost:8080. The docker run line publishes 3000:3000 and does not publish 8080. This page does not add a publish flag the README does not print. The README non-docker steps do not print the Node image tag.
The slim command, for a SearxNG you already run, copied:
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
The README says that SearxNG instance needs JSON format enabled, and Wolfram Alpha enabled. It says to replace http://your-searxng-url:8080 with your SearxNG URL. That line does not print a separate search API key.
Build from source, copied. After the clone, the README says to navigate to the directory containing the project files. That sentence does not print cd Vane. The non-docker section below does print cd Vane. docker build uses . as its context, so that command has to run from the project directory. This page does not insert cd Vane into the build-from-source block, because that section does not print it.
git clone https://github.com/ItzCrazyKns/Vane.git
docker build -t vane .
docker run -d -p 3000:3000 -v vane-data:/home/vane/data --name vane vane
Non-Docker, copied. The README says to install SearXNG, allow JSON format, and enable Wolfram Alpha, then:
git clone https://github.com/ItzCrazyKns/Vane.git
cd Vane
npm i
npm run build
npm run start
The README says to open http://localhost:3000 and configure API keys, models, and the SearxNG URL in the setup screen. The repository also contains docker-compose.yaml. The install section does not print a compose command. This page does not add one. The Dockerfile uses yarn install --frozen-lockfile. The non-docker section prints npm i. Those are not the same command.
The pages this guide read do not print hf download or huggingface-cli. Weight download for a model server is a different guide: How to download a Hugging Face model. This page does not paste that command into the setup screen, because these pages do not print it.
Point the app at the endpoint
src/lib/models/providers/ollama/index.ts names the field Base URL, key baseURL, env OLLAMA_BASE_URL, required. The placeholder is http://host.docker.internal:11434 when process.env.DOCKER is set, and http://localhost:11434 otherwise. This page did not find ENV DOCKER in the Dockerfile. getDefaultModels fetches ${baseURL}/api/tags. On a TypeError it throws Error connecting to Ollama API. Please ensure the base URL is correct and the Ollama server is running. If the selected chat key is not in the model list it throws Error Loading Ollama Chat Model. Invalid Model Selected. The embedding path throws Error Loading Ollama Embedding Model. Invalid Model Selected. The provider metadata key is ollama and the name is Ollama. The file does not print a model id of its own. It lists whatever /api/tags returns.
The README’s Ollama connection section is not the same as that placeholder. It says Windows and Mac use http://host.docker.internal:11434, and Linux uses a private IP of the host on port 11434. The Linux line in the README wraps the host in angle brackets. Copied inside a fence:
http://host.docker.internal:11434
http://<private_ip_of_host>:11434
The same section says to add Environment="OLLAMA_HOST=0.0.0.0:11434" inside /etc/systemd/system/ollama.service, then:
systemctl daemon-reload
systemctl restart ollama
It says the default port is 11434, and to change the port number if you use a different one. It does not print an ssh command.
The README section “Local OpenAI-API-Compliant Servers” says that if the app tells you that you have not configured any chat model providers, check three things. Copied in substance: the server is running on 0.0.0.0 and not 127.0.0.1, on the same port you put in the API URL; the model name is the one loaded by the local server; the API key field is not empty, and if the server does not define a key you put something in that field.
src/lib/models/providers/openai/index.ts is the provider whose metadata key is openai. The field this page uses is Base URL, key baseURL, env OPENAI_BASE_URL, required. The API key field is also required, env OPENAI_API_KEY. The file’s default base URL is a hosted URL this page does not copy. When baseURL is not that default, getDefaultModels returns empty chat and embedding lists. The default model list, used only for that hosted URL, names hosted models. This page does not copy those names. loadChatModel throws Error Loading OpenAI Chat Model. Invalid Model Selected when the key is not in the list.
src/lib/models/providers/lmstudio/index.ts names Base URL, key baseURL, placeholder http://localhost:1234, env LM_STUDIO_BASE_URL. normalizeBaseURL appends /v1 when the string does not already end in /v1. The README Lemonade section prints http://host.docker.internal:8000 for Windows and Mac, and a private-IP form on port 8000 for Linux, and says the default port is 8000. This page does not merge the LM Studio placeholder with the Lemonade port.
docs/API/SEARCH.md says chatModel.key is the model key, and its examples include llama3.1:latest. It says embeddingModel.key examples include nomic-embed-text. The JSON sample on that page uses other keys. This page does not copy those keys. providerId must be a UUID from GET http://localhost:3000/api/providers.
None of these pages print an ssh command. The README says the app stays accessible with port forwarding and does not print a tunnel command. How to use SSH port forwarding on a cloud GPU is how a browser on your computer reaches a port on the instance. This page does not add an ssh command. After a forward that lands on port 3000 of your computer, the URL the README already prints is http://localhost:3000.
A query
The README’s browser-search URL, copied:
http://localhost:3000/?q=%s
docs/API/SEARCH.md says POST /api/search at http://localhost:3000/api/search. The sample query is What is Vane. sources values it lists are web, academic, and discussions. optimizationMode values it lists are speed, balanced, and quality. The sentences that compare those modes are not copied. stream in the sample is false. This page did not send the request.
The recommended Docker image bundles SearxNG, so that path does not print a search API key. The slim image and the non-docker steps use a SearxNG URL you set. They do not print a separate search API key on those lines.
When it fails
Ollama connection. The provider file throws Error connecting to Ollama API. Please ensure the base URL is correct and the Ollama server is running. The README says to check the API URL, and on Linux to set OLLAMA_HOST as above. This page did not reproduce that error.
No chat model provider. The local OpenAI-compatible section’s three checks are above. This page did not reproduce that message.
Invalid model. The Ollama file throws Error Loading Ollama Chat Model. Invalid Model Selected when the key is not in the list from /api/tags. This page did not reproduce that error.
CUDA out of memory. The pages this guide read print no GPU GB figure. If the model server raises CUDA out of memory, use how to fix CUDA out of memory on a cloud GPU. This page does not pick a smaller tag for you.
“CUDA error: no kernel image is available for execution on the device” on an RTX 5090. The pages this guide read do not pin a PyTorch build and do not name compute capability 12.0. The Dockerfile is node:24.5.0-slim and does not name a CUDA wheel. The RTX 5090 guide says that card is compute capability 12.0 (sm_120). This page did not re-test a model server on an RTX 5090. Catalog RTX 5090 and RTX 5090D are 32. That is the catalog number only.
What to copy off, then destroy
The Docker command mounts the named volume vane-data at /home/vane/data. The README says that volume holds data and uploaded files. Copy it before you destroy the instance. The model server stops with the instance. Save your work before you destroy a cloud GPU is the checklist. The terms say data on local instance storage is permanently deleted when the instance is destroyed.
The billing page states the billing rule in these words:
Per-minute options have a 1-minute minimum; unused prepaid minutes are refunded when you destroy the instance. Some configurations use whole-hour billing with a 1-hour minimum; unused time within a charged hour is not refunded on voluntary stop. The billing period, minimum charge and initial prepayment are shown before confirmation. No subscription.
Amounts are not copied here.
Frequently asked questions
What memory figure do the Vane pages print?
The README, the search API page, and the Ollama and OpenAI-compatible provider files print no GPU GB figure. This page does not mark a catalog row as enough. Which listing you can start is on https://cloudgpu.app/deploy.
Which settings point the app at a server on the GPU?
The recommended command is docker run -d -p 3000:3000 -v vane-data:/home/vane/data --name vane itzcrazykns1337/vane:latest. The Ollama field key is baseURL, env OLLAMA_BASE_URL. The placeholder is http://localhost:11434, or http://host.docker.internal:11434 when DOCKER is set. The README Linux line uses a private IP on port 11434. The OpenAI-compatible field key is baseURL, env OPENAI_BASE_URL, and the API key field is required. The search API examples include llama3.1:latest and nomic-embed-text. Those pages do not print an SSH command. This page did not run them.
What query does the search API print?
POST http://localhost:3000/api/search takes query What is Vane. sources lists web, academic, and discussions. optimizationMode lists speed, balanced, and quality. The browser URL the README prints is http://localhost:3000/?q=%s. This page did not send the request.
What license sentence does the file print, and which repository is it?
The LICENSE file is the MIT License. The copyright line is Copyright © 2026 ItzCrazyKns. The GitHub license field on 2026-11-14 was MIT. https://github.com/ItzCrazyKns/Perplexica resolved to ItzCrazyKns/Vane. Repository HEAD was 348feca3e378fb4157b217724ed508dc707f853f, committed 2026-09-01T14:12:10Z. That license text is not a CloudGPU rate.
Sources (read 2026-11-14, Asia/Shanghai)
- ItzCrazyKns/Perplexica resolved to ItzCrazyKns/Vane. Commit
348feca3e378fb4157b217724ed508dc707f853f, committed 2026-09-01T14:12:10Z. GitHub license field MIT.LICENSEis the MIT License. Copyright © 2026 ItzCrazyKns - README at that commit.
docker run -d -p 3000:3000 -v vane-data:/home/vane/data --name vane itzcrazykns1337/vane:latest. Bundled SearxNG. http://localhost:3000. Slim imageitzcrazykns1337/vane:slim-latestandSEARXNG_API_URL. JSON format and Wolfram Alpha for the slim and non-docker paths.npm i,npm run build,npm run start. Ollama troubleshooting URLs. Local OpenAI-compatible checks.http://localhost:3000/?q=%s. No GPU GB figure. Nosshcommand. Other provider names in the feature list are not copied Dockerfileat that commit.FROM node:24.5.0-slim.EXPOSE 3000 8080.ENV SEARXNG_API_URL=http://localhost:8080.yarn install --frozen-lockfile. NoENV DOCKERsrc/lib/models/providers/ollama/index.tsat that commit.baseURL,OLLAMA_BASE_URL, placeholders,/api/tags, the connection error, the invalid-model errorssrc/lib/models/providers/openai/index.tsat that commit.baseURL,OPENAI_BASE_URL, required API key. The default base URL and the default model list are not copied. Empty lists when the base URL is not that defaultsrc/lib/models/providers/lmstudio/index.tsat that commit. Placeholderhttp://localhost:1234.LM_STUDIO_BASE_URL./v1appended when missingsrc/lib/models/providers/index.tsat that commit. Other provider keys are not copieddocs/API/SEARCH.mdat that commit.POST /api/search. QueryWhat is Vane. Example keysllama3.1:latestandnomic-embed-text. Hosted model keys in the sample JSON are not copied.optimizationModevaluesspeed,balanced,quality. Comparison sentences are not copied- The pages above do not print
hf downloador ansshcommand - Public GPU memory: https://cloudgpu.app/v1/public/gpu-catalog (
generated_at2026-11-14T17:06:44.884Z).GET /v1/public/compute-capabilitiesreturned feature flags and no GPU list. The catalog had no Perplexica template and no Vane template. It listed Ollama template idsjupyterlab-ollama,ollama-qwen3, andollama
Cards you can start are on the Deploy page. Amounts are not copied here.
Last updated: 2026-11-14 (Asia/Shanghai).