Private ChatGPT for a small business (Open WebUI + LiteLLM)

Quick answer

Staff log in to one company chat portal instead of using personal ChatGPT accounts. Open WebUI provides the chat interface, user accounts and document upload. LiteLLM sits between Open WebUI and the model providers: it holds the API keys, controls which models each team may use, and tracks usage and spend per key or user. You pay the model provider per token instead of per seat. Running Open WebUI + LiteLLM on one Hetzner Cloud server starts at about €19.99/month (CPX22, excl. VAT). That is a floor: Open WebUI publishes no official RAM figure. Model API usage, backups and your time come on top.

Last updated · sizing from each app's official docs · prices from Hetzner Cloud (2026-10-22)

Components

  • Open WebUI: Chat interface, user accounts, document upload
    Official hardware: Not published (measured by us: 909 MiB RAM while working) · License: Open WebUI License (BSD-3-Clause style with branding clause) (Custom / conditional)
  • LiteLLM: Model gateway: API keys, model access control, budgets, spend logs
    Official hardware: minimum 1 vCPU · 4 GB RAM · License: MIT (core) + LiteLLM Enterprise License (enterprise directory) (Open core)
  • Qdrantoptional: Vector database for document search (instead of the built-in default)
    Official hardware: Not published (measured by us: 566 MiB RAM while working) · License: Apache-2.0 (Permissive)

Combined hardware and monthly cost

Required components, official minimums1 vCPU · 4 GB RAM (sum of official minimums of LiteLLM), plus whatever Open WebUI needs (no official figure)
Smallest server that fitsCPX22 (2 vCPU, 4 GB RAM, 80 GB disk) €19.99/mo (floor)
Measured RAM in our own testOpen WebUI 0.12.3: 909 MB peak while working; Qdrant 1.20.0: 566 MB peak while working. Measured on SelfHostMap test VM (Oct 2026), 2026-10-22; container RAM only, not the whole server; no load test. Model-runner figures are for the small test models named on the app page; larger models need far more RAM.
Including optional components1 vCPU · 4 GB RAM (sum of official minimums of LiteLLM), plus whatever Open WebUI and Qdrant need (no official figure) → CPX22 €19.99/mo

How we got this: we added up the official minimum vCPU and RAM each project publishes (linked on its app page) and took the cheapest Hetzner Cloud Regular Performance (shared AMD vCPU) plan that meets the total. Prices read from www.hetzner.com/cloud/regular-performance on 2026-10-22. "From" monthly price cap shown by Hetzner, excluding VAT. Prices vary by location. Covers the server only; it excludes LLM API usage, backups, extra storage, GPUs and your time. Running everything on one server is our simplifying assumption. Measured figures, where we have them, are on each app page.

Cost vs ChatGPT / Claude / Microsoft 365 Copilot

1. The SaaS you pay for

2. Self-hosted stack

3. Model API spend (self-hosted side)
SaaS per year—
Self-host per year—
Break-even—

SaaS (cumulative)Self-host incl. setup (cumulative)
Open in full calculator
Assumptions and sources

    Deployment outline

    1. Deploy the LiteLLM proxy with a config file listing the models you want to offer, and a master key. source
    2. Give LiteLLM a database. Without one, virtual keys do not work and budgets are not enforced. source
    3. In the LiteLLM UI (port 4000, /ui) create a Team and a Virtual Key, and limit the key to the models Open WebUI may use. source
    4. Deploy Open WebUI (official Docker command on its app page). source
    5. In Open WebUI go to Settings → Connections and add a connection with the LiteLLM base URL and the virtual key. source
    6. For per-user spend tracking, set ENABLE_FORWARD_USER_INFO_HEADERS=True in Open WebUI and map the X-OpenWebUI-User-Id or -Email header in LiteLLM's general_settings.user_header_mappings. source
    7. Optional: to use Qdrant, set VECTOR_DB=qdrant and QDRANT_URI (plus QDRANT_API_KEY) in Open WebUI's environment. source

    This is a summary of the official docs, not a full tutorial. Each app page has the exact official install command.

    Gotchas

    • Open WebUI's default vector store (ChromaDB on SQLite) is not safe for multi-worker or multi-replica deployments. Switch to a server vector DB such as Qdrant or pgvector before you scale out. source
    • Users can change their own Open WebUI usernames and admins can change emails, so pick the user-ID header if spend reports must be tamper-proof. source
    • Open WebUI: Branding may only be changed for deployments of 50 or fewer end users in a rolling 30-day window, unless you have permission or an enterprise license. source
    • Open WebUI: If you only use hosted APIs, the :slim image is about 197 MB instead of 1.62 GB. It cannot be combined with the CUDA or bundled-Ollama variants. source
    • LiteLLM: Without a database, budgets are not enforced. max_budget is silently ignored apart from a one-time startup warning, and virtual keys do not work. source
    • LiteLLM: Memory is not a usable autoscaling signal for the proxy; scale on CPU instead. source
    • Qdrant: The quick-start command runs without authentication and listens on all interfaces. Secure the instance (API key, network) before real use. source

    What this does not replace

    • None of these apps includes an AI model. You connect a model API (billed by its provider) or run open models yourself, for example with Ollama.
    • Answer quality depends on the model you connect, not on the chat app.
    • You are responsible for the server, updates, backups and user management.
    • None of these works inside Word, Excel, Outlook or Teams the way Copilot does; they run as separate web apps.
    • You connect your own model (API or self-hosted).

    FAQ

    Can a small business run its own private ChatGPT?

    Yes. Open WebUI gives staff a ChatGPT-style interface with accounts and document upload, and LiteLLM connects it to the model APIs you choose while keeping keys, model access and spend under central control. You still pay the model provider for tokens.

    Does a self-hosted ChatGPT keep data off OpenAI's servers?

    Only if you also run the model yourself. With a hosted API (OpenAI, Anthropic and others), prompts still go to that provider; the stack controls which provider and logs usage. For fully local inference, see the offline stack with Ollama.

    How much does a private chatgpt for a 20-person company stack cost per month?

    Running Open WebUI + LiteLLM on one Hetzner Cloud server starts at about €19.99/month (CPX22, excl. VAT). That is a floor: Open WebUI publishes no official RAM figure. Model API usage, backups and your time come on top.

    What hardware does Open WebUI + LiteLLM need?

    1 vCPU · 4 GB RAM (sum of official minimums of LiteLLM), plus whatever Open WebUI needs (no official figure).

    Can a business use these apps commercially?

    Open WebUI: Open WebUI License (BSD-3-Clause style with branding clause) (internal business use allowed). LiteLLM: MIT (core) + LiteLLM Enterprise License (enterprise directory) (internal business use allowed). Qdrant: Apache-2.0 (internal business use allowed). Summaries only, not legal advice.

    Is it cheaper than ChatGPT or Claude or Microsoft 365 Copilot?

    It depends on team size, API usage and how you value your time. Use the calculator on this page; it starts with 20 users and ChatGPT Business (Standard seat) at the price published on 2026-10-22.

    Other stacks

    Not sure which app fits? Try the 5-question wizard.

    Every figure comes from the linked app pages and official docs. Spotted something wrong? Tell us.