Solutions · Chat interface
A VPS for Open WebUI
Open WebUI is the self-hosted chat interface for Ollama and any OpenAI-compatible API: accounts, history, documents and web search in one browser tab. It publishes no hardware minimum, so the sizes here are ours and labelled. Pointed at a hosted model it is a light app, and C2-4-80 at $37.90 is plenty; with the Ollama it can bundle, the model has to fit in memory as well, and BD-8 at $12.90 is the cheapest machine that holds an 8B model with room to spare.
What it needs
Software from the docs, sizes labelled by source
The software and the security posture come from the project's own documentation. Where the project publishes no hardware figure, the sizes say whose they are.
From the Open WebUI README and docs.openwebui.com
- Install with Docker:
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:mainThe UI listens on port 8080 inside the container; the docs map it to 3000 on the host. - Does it include Ollama? Only in the
:ollamaimage, which bundles both in one container. The:mainimage does not: it connects to an Ollama or any OpenAI-compatible API you point it at, byOLLAMA_BASE_URL. - The image is 1.66 GB to download, and the default embedding model for document search takes about 500 MB of RAM per worker. The docs publish no minimum for CPU, RAM or disk.
- Everything you create lives in the
/app/backend/datavolume; the docs warn never to run without it. The first account you create becomes the administrator, and sign-up closes once it exists.
Sizes (ours: the docs publish no minimum)
| Workload | vCPU | RAM |
|---|---|---|
| Open WebUI against a hosted API or a separate OllamaOurs. The image, the app and the embedder for document search fit with room; a handful of users chatting. | 2 | 4 GB |
| Open WebUI with the bundled Ollama and an 8B modelOurs. An 8B model is a 4.9 GB download and has to fit in memory next to the app. A few tokens a second on a CPU. | 4 | 8 GB |
| Bundled Ollama with a 14B model, or several people at onceOurs. A 14B model is 9.3 GB; the rest is memory for the app, its embedder and concurrent chats. | 8 | 24 GB |
The plans that fit
4 machines, priced live
Cheapest fitting machine first. Prices are today's, per month, read from the catalogue.
- C2-4-80$37.90/mo
2 vCPU · 4 GB · 80 GB disk · 3 TB
Hosted models only: the light install. 2 vCPU / 4 GB / 80 GB. Open WebUI with an API key or an Ollama elsewhere. Pick it for the city, not the size.
- BD-8$12.90/mo
4 vCPU · 8 GB · 100 GB disk · 32 TB
Cheapest with room for the bundled Ollama and an 8B model. 4 vCPU, 8 GB, 100 GB for the image and the model downloads. Twice the memory of the light install, for the model.
- C4-8-160$75.90/mo
4 vCPU · 8 GB · 160 GB disk · 3 TB
The same shape with 160 GB, in more cities. 4 vCPU / 8 GB / 160 GB, for when the cheapest row's cities do not suit you or you want a bigger model library.
- BD-24$31.90/mo
8 vCPU · 24 GB · 300 GB disk · 32 TB
8 vCPU / 24 GB for 14B models and a team. A 14B model and several concurrent chats, with disk for a document library.
There is no start-up preset for Open WebUI yet: the install is the four steps below, typed by you. They are the commands from its own docs, with one labelled change.
The install
Four steps, from the Open WebUI docs
Docker, the container, the admin account, then a model. Do step 3 straight away: the first account created is the administrator.
- Docker.
curl -fsSL https://get.docker.com | shCheck it withdocker --version. - Make a secret key and start it. Run
openssl rand -hex 32and keep the output; the docs pass it as WEBUI_SECRET_KEY. Our one change to their command:127.0.0.1:3000:8080keeps the port off the public internet until you have HTTPS.docker run -d -p 127.0.0.1:3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data -e WEBUI_SECRET_KEY=your-secret-key --name open-webui --restart always ghcr.io/open-webui/open-webui:mainFor the bundled Ollama, swap the image forghcr.io/open-webui/open-webui:ollamaand add-v ollama:/root/.ollama. - Create the admin now. From your laptop,
ssh -N -L 3000:127.0.0.1:3000 root@your-serverthen openhttp://127.0.0.1:3000. The first screen offers Create Admin Account; that account manages every setting, and sign-up switches itself off after it. - Connect a model, then a domain. In Admin settings, Connections: add an OpenAI-compatible API key, or the address of your Ollama. For an Ollama on the same host, the README says to use
--network=hostwith-e OLLAMA_BASE_URL=http://127.0.0.1:11434; the port then becomes 8080. For HTTPS, put a reverse proxy in front and setproxy_buffering off;in its location block, or streamed answers arrive garbled.
Honestly
What we would actually buy
The project names no minimum, so buy for the model, not for the interface.
For Open WebUI with its own Ollama
BD-8 · $12.90/mo
4 vCPU, 8 GB and 100 GB at $12.90: the 1.66 GB image, the embedder, and an 8B model in memory beside them, answering at a few tokens a second on a CPU. That suits one person or a small team asking patiently, not a room of people waiting. If all your models are hosted, C2-4-80 at $37.90 is the same interface for less. If people need fast local answers, the GPU line is the honest answer, and the :cuda image is built for it.
Questions