Locul / Setup guides / On-premise
Setup guide: on-premise

vLLM vs Ollama: run your own office LLM server

vLLM vs Ollama, set up for real: one GPU server in the office or in a data centre in your country, an OpenAI-compatible endpoint, and Locul on top. Real commands, a sizing table by team size, and how to pilot it on rented hardware first.

Quick answer

Use Ollama for a pilot or a small team: install it with curl -fsSL https://ollama.com/install.sh | sh, set OLLAMA_HOST=0.0.0.0:11434 in a systemd override and pull a model. Use vLLM when many people work at once: vllm serve openai/gpt-oss-120b --api-key ... on one 80 GB GPU. Both speak the OpenAI API. Point Locul's Ollama address at the server, and keep port 11434 inside your network.

Prompts stay on your serverUpdated By Junaid Khalid9 min read
YOUR NETWORK LAN OR VPN :11434 OR :8000 LoculDESKTOP APP OR TEAM BRAIN Ollama or vLLMOPENAI-COMPATIBLE API Your GPU serverOFFICE OR LOCAL DATA CENTRE YOUR NETWORK LAN OR VPN :11434 OR :8000 LoculDESKTOP APP OR TEAM BRAIN Ollama or vLLMOPENAI-COMPATIBLE API Your GPU serverOFFICE OR LOCAL DATA CENTRE
Prompts travel from Locul to your own server and back. Nothing leaves your network unless you send it.

vLLM vs Ollama: which should run on the office server?

Pick Ollama for a pilot or a team of a few people, and vLLM once many people send prompts at the same time.

Both expose an OpenAI-compatible API, so the apps on top do not care which one you chose. The difference is how they handle a queue of requests and how much setup they ask of you.

Ollama and vLLM side by side, from their own docs
OllamavLLM
InstallOne script, runs as a systemd servicePython package in a virtual environment
Model filesGGUF, pulled by name from ollama.com or Hugging FaceHugging Face weights (safetensors), full or quantised
HardwareNVIDIA, AMD, Apple Silicon, or CPU onlyBuilt for data centre GPUs, NVIDIA first
Parallel requestsDefault 1 per model, raise with OLLAMA_NUM_PARALLELContinuous batching, made for many users at once
Sign-inNone built in, keep it behind your firewall--api-key or VLLM_API_KEY
Default address127.0.0.1:11434, API under /v1localhost:8000, API under /v1
Best forPilots, 1 to 10 people, mixed hardwareBusy teams, one big model, steady load

"vLLM can be deployed as a server that implements the OpenAI API protocol."

vLLM docs, Quickstart

Still weighing whether to run your own model at all? Our self-hosted LLM guide covers build versus buy, and the on-premise LLM guide covers hardware, cost and risk. This page is the hands-on part.

How do I set up an Ollama server for the whole office?

Install Ollama on a Linux box with a GPU, tell it to listen on the network, pull a model and test it with one curl command.

  1. Install

    bash
    $ curl -fsSL https://ollama.com/install.sh | sh

    The script installs Ollama and registers it as a systemd service, so it starts again after a reboot.

  2. Listen on the office network

    By default Ollama only answers on the machine itself. Add an override so other machines can reach it:

    bash
    $ sudo systemctl edit ollama.service

    Add these lines in the editor that opens, save, then reload:

    ini
    [Service]
    Environment="OLLAMA_HOST=0.0.0.0:11434"
    Environment="OLLAMA_NUM_PARALLEL=2"
    bash
    $ sudo systemctl daemon-reload
    $ sudo systemctl restart ollama
  3. Pull a model

    Pick one from the sizing table. Models on Hugging Face pull straight by name:

    bash
    $ ollama pull hf.co/unsloth/Qwen3.5-9B-GGUF:Q4_K_M
  4. Test it from another machine

    bash
    $ curl http://192.168.1.40:11434/v1/chat/completions \
        -H 'Content-Type: application/json' \
        -d '{"model":"hf.co/unsloth/Qwen3.5-9B-GGUF:Q4_K_M","messages":[{"role":"user","content":"Say hello to the office"}]}'

    Any JSON reply with a choices list means the server works. A timeout usually means the firewall, not Ollama.

  5. Lock it down

    Ollama has no sign-in of its own. Allow port 11434 only from your office subnet or VPN, never from the internet:

    bash
    # allow the office subnet only
    $ sudo ufw allow from 192.168.1.0/24 to any port 11434 proto tcp

"Ollama binds 127.0.0.1 port 11434 by default."

Ollama docs, FAQ

How do I serve a model with vLLM?

Install vLLM into a Python virtual environment, then run vllm serve with the model name and an API key.

bash
$ uv venv --python 3.12 --seed
$ source .venv/bin/activate
$ uv pip install vllm --torch-backend=auto
bash
$ vllm serve openai/gpt-oss-120b --api-key "$VLLM_API_KEY"

The first start downloads the weights, which takes a while for big models. After that, the OpenAI-compatible API answers on port 8000. Every request must carry the key as Authorization: Bearer.

One model, one GPU. OpenAI says gpt-oss-120b, its open-weight model, fits on a single 80 GB card, because its mixture-of-experts weights ship in MXFP4. That makes it a natural first vLLM model for a team.

"Fit into a single 80GB GPU (like NVIDIA H100 or AMD MI300X)."

OpenAI, gpt-oss-120b model card

How do I point Locul at my own server?

For an Ollama server, type its address into the Locul desktop app. For vLLM, your Locul partner or our team wires it in during the on-premise setup.

  1. Open the local models card

    In Locul, open Settings, find the local models card and choose Advanced.

  2. Set the Ollama address

    In Ollama address, enter the server and port, for example 192.168.1.40:11434. A bare port number means this machine.

  3. Pick the chat model

    Under Chat model, choose the model you pulled on the server. Leave the embedding model on automatic unless you have a reason to change it.

  4. Give each bot its model

    Bots that handle client files use the office server. A coding bot can still use Claude, if your policy allows it.

vLLM and bigger setups. For a vLLM server, a Team Brain on your own hardware, or several offices, a Locul partner or our team does the wiring during an on-premise deployment. Email us to plan one.

What GPU do I need for my team size?

A 24 GB GPU covers a small office on a 9 to 12 billion parameter model, and a single 80 to 96 GB card runs a 120B-class model for a bigger team.

Starting points, not promises. Test with your own documents before you buy.
Team sizeModel classGPU and VRAMServerPeople at once
1 to 59 to 12B, Q4 or Q8 (Qwen3.5 9B, Gemma 4 12B)One 24 GB cardOllamaOne or two; raise OLLAMA_NUM_PARALLEL if VRAM allows
5 to 2527 to 35B, Q4 (Qwen3.8 27B, Qwen3.6 35B-A3B)48 GB (L40S) or 96 GB (RTX PRO 6000)Ollama or vLLMA handful; queues form at busy moments
25 to 100gpt-oss-120bOne 80 GB H100 or a 96 GB cardvLLMMany; batching keeps the queue moving
100 or more120B class, several copies, or larger modelsSeveral GPUs (4x RTX PRO 6000, H100 nodes)vLLM, tensor parallelPlan with a partner

Model sizes on disk come from the files on Hugging Face: a Q4_K_M build of Qwen3.5 9B is 5.68 GB, Gemma 4 12B is 7.12 GB and Qwen3.6 35B-A3B is 22.13 GB. Leave room on the card for the context of every request running at once.

"Required RAM will scale by OLLAMA_NUM_PARALLEL * OLLAMA_CONTEXT_LENGTH."

Ollama docs, FAQ

We do not quote tokens per second here. Speed depends on the model, the quantisation, the prompt length and how many people press Enter at once. Our own measurements will go in the benchmark section when they are final.

Can I rent an EU GPU for a pilot first?

Yes. Rent a GPU server from an EU provider for a few weeks, run the same setup as above and decide on hardware afterwards.

ProviderGPUVRAMWhereGood for
ScalewayL40S48 GBParis, France27 to 35B models for a mid-sized team
ScalewayH10080 GBParis, Francegpt-oss-120b on vLLM
Hetzner GEX45RTX PRO 4000 Blackwell24 GBHelsinki, FinlandA small office pilot on Ollama
Hetzner GEX131RTX PRO 6000 Blackwell Max-Q96 GBFalkenstein, Germany, or Helsinki120B-class models with room for context

Check current rates on Scaleway's GPU pricing page and Hetzner's GPU server page. Both are EU companies with EU data centres. Scaleway GPU Instances are cloud servers you can start and stop, while Hetzner GEX machines are dedicated servers rented by the month.

What does an on-premise model handle well?

The everyday, slightly messy jobs that involve client names and numbers you would rather not send abroad.

Here is a request a partner at a small accounting firm might send to a bot running on the office server:

From Sandeep, partnerPrompt
Can you turn this into something I can read out at Monday's partners meeting? Basically: what does Jansen BV actually owe us after the credit note, and why are there two different totals in the sheet. I think the 14/11 invoice got entered as 11/14 by someone, and col F has #REF! from row 212 down. Lotte "fixed" the EUR/GBP thing last week but I don't trust it. Keep it short, Willem is already annoyed about this one.

Everything in that message, the client name, the amounts and the colleague who made the mistake, stays on hardware you control. The bot reads the sheet and the credit note from Locul's memory and answers on the same server.

How fast is an office server in practice?

We are timing real office tasks on the GPUs in the tables above, and the numbers will be published here.

Benchmark in progress

Response times and answer quality per GPU, with one, five and twenty people at once, on Ollama and on vLLM. Coming soon.

Frequently asked questions

Is vLLM faster than Ollama?

With many people sending prompts at once, vLLM usually keeps up better because it batches requests continuously. For one or two people on a single GPU the difference is small, and Ollama is far quicker to set up.

Can Ollama serve several users at once?

Yes. Set OLLAMA_NUM_PARALLEL above its default of 1. Each extra parallel slot needs memory for its own context, so watch VRAM as you raise it.

Does Ollama have authentication?

No. Ollama has no built-in sign-in, so keep it on your office network or VPN and block port 11434 from the internet. vLLM can require an API key with --api-key.

What is the cheapest way to test an on-premise LLM?

Rent a GPU server from an EU provider such as Scaleway or Hetzner for a short pilot, install Ollama, and point Locul at it. Buy hardware only once the pilot shows which model size your team needs.

Do I need a GPU at all?

For a team, yes. Ollama runs on CPU only, but replies become slow enough that people stop using it. A single 24 GB GPU is a sensible floor for a small office.

Sources

Every command and quote on this page comes from these primary sources, checked on 24 October 2026.

  1. Ollama docs: Linux install
  2. Ollama docs: FAQ (OLLAMA_HOST, OLLAMA_NUM_PARALLEL)
  3. Ollama docs: OpenAI compatibility
  4. vLLM docs: Quickstart
  5. OpenAI: gpt-oss-120b model card
  6. Scaleway: GPU Instances
  7. Hetzner: GPU dedicated servers
Junaid Khalid
LOCAL-FIRST AI SPECIALIST

Junaid builds Locul and sets up private AI for small regulated firms. He tests every command on this page on his own machines before it ships.

Other setup paths

On-premise Locul

Want a partner to set up the server for you?

Locul partners install the GPU server, the model and the Team Brain in your office or a data centre in your country, then hand it over.