Open WebUI: Instalace a produkční nasazení v Docker Compose

· 10 min čtení · Kategorie: navody
Open WebUI: Instalace a produkční nasazení v Docker Compose

Otevřít prohlížeč, přihlásit se na vlastní doméně, napsat prompt a dostat odpověď, která nikdy neopustí firemní server. Scénář, který dřív patřil specialistům, dnes stojí na jednom open-source projektu, čtyřech Docker kontejnerech a jednom večeru. Jmenuje se Open WebUI, má přes 128 000 hvězd na GitHubu (stav duben 2026) a podporuje OpenAI API, Anthropic, Azure, Ollamu i libovolný OpenAI-kompatibilní endpoint. Tento díl vede od prvního docker run k produkčnímu nasazení s Postgresem, Qdrantem, TLS a firemním OAuth. Licenční past, TCO v korunách a 14denní rollout řeší druhý díl.

Stručně — co si z článku odnést

  • Open WebUI je platforma, ne jen rozhraní. 300–500 MB RAM kontejner nad FastAPI a SvelteKitem, napojení na 9 vektorových databází, OAuth, LDAP, SCIM 2.0 i nativní MCP. Jeden UI pro Ollamu, GPT-5 i Claude Opus 4.7.
  • Produkční setup v jednom docker-compose. Postgres, Redis, Qdrant, Open WebUI a Caddy s automatickým Let's Encrypt TLS. První studený start do tří minut, celkem 2–4 GB RAM bez modelů.
  • Pokud firma přesáhne 49 uživatelů, nasazení se licenčně komplikuje. Důvody, ceny a kalkulace jsou ve druhé části. Návazně využívá návod na Ollamu ve firmě.
128 000+ Hvězd na GitHubu (stav duben 2026) — nejhvězdnatější AI chat UI projekt
9 + 15 Vektorových databází a vyhledávačů pro RAG v základní instalaci
300–500 MB RAM, kterou kontejner zabere bez modelu
~2 min Doba od prvního docker run po přihlášení admina

1. Co je Open WebUI a komu se vyplatí

Open WebUI vznikl v roce 2023 jako nadstavba nad Ollamou a po přejmenování v roce 2024 se proměnil v plnohodnotnou platformu s vlastním RAG enginem, plugin architekturou a napojením na všechna větší AI API. Backend běží na FastAPI, frontend na SvelteKitu. Data standardně v SQLite, pro produkci přepínatelné na PostgreSQL.

Stručně: Open WebUI je samohostovatelná webová aplikace s UX blízkým ChatGPT. Jako backend umí Ollamu, OpenAI API, Anthropic, Azure OpenAI a libovolný OpenAI-kompatibilní endpoint. Přidává RAG nad vlastními dokumenty, web search, role-based access control, napojení na firemní identitu přes OAuth nebo LDAP a plugin systém v Pythonu. Celé nasazení lze udržet v jednom VPS za několik set korun měsíčně.

Rozhodovací test: 6 otázek

Open WebUI nedává smysl pro každého. Následující test za dvě minuty vrátí jednoznačný verdikt. Součet bodů rozhoduje.

Je Open WebUI pro vaši firmu? 6 otázek, 0–21 bodů
Součet 0–21 bodů → verdikt za 2 minuty 1. Kolik lidí to bude používat za 12 měsíců? Do 10 = 1 · 11–49 = 3 · 50–200 = 4 (pozor na licenci) · 200+ = 2 (zvažte Onyx nebo enterprise) 2. Potřebujete přepínat OpenAI + Anthropic + lokální Ollamu? Jen jeden provider = 1 · Dva v oddělených konverzacích = 3 · Přepínat uprostřed jedné konverzace = 0 (LibreChat) 3. Co je primární — chat, nebo práce s dokumenty? Chat = 4 · Obojí stejně = 3 · Hlavně dokumenty = 1 (zvažte AnythingLLM nebo Onyx) 4. Kdo bude spravovat — IT admin, nebo business uživatel? IT admin s Dockerem = 4 · IT bez Dockeru = 2 · Business uživatel = 0 (desktop AnythingLLM) 5. Chcete RAG nad vlastními dokumenty? Ne, jen chat = 2 · Ano, do 1 000 dokumentů = 4 · Desítky tisíc z 10+ zdrojů = 1 (Onyx) 6. Máte firemní identitu (Google Workspace, M365, LDAP, AD)? Ne = 3 · Ano, stačí OAuth = 4 · Ano, potřebujeme SCIM provisioning = 2 (enterprise) Verdikt 0–8 bodů: cloudové řešení (ChatGPT Team, Claude Teams) je rychlejší a levnější. 9–16 bodů: Open WebUI je správná volba. Začněte Docker pilotem. 17–21 bodů: zvažte Onyx (RAG-first) nebo Open WebUI Enterprise od začátku. Nad 50 uživatelů: přečtěte si licenční sekci v druhém dílu.

2. Open WebUI vs LibreChat, AnythingLLM, Onyx

Nejčastější chyba při rozhodování je porovnávat tyto čtyři projekty, jako by dělaly totéž. Každý má jinou filozofii. Volba by neměla začínat počtem hvězd, ale otázkou, co bude uživatel dělat devadesát procent času.

Stručně: Open WebUI cílí na chat jako primární akci s plugin rozšiřitelností. LibreChat staví na přepínání modelů ve stejné konverzaci. AnythingLLM drží filozofii workspace nad dokumenty a jediný z kategorie nabízí desktop aplikaci bez Dockeru. Onyx řeší enterprise RAG se čtyřiceti konektory do firemních systémů.

Kritérium Open WebUI LibreChat AnythingLLM Onyx
Primární scénář Univerzální AI chat platforma Přepínání modelů v konverzaci Workspace nad dokumenty Enterprise RAG
MCP podpora Nativní (od v0.6.31) Přes plugin Ne (k dubnu 2026) Interní tool systém
RAG 9 vektorových DB, multi-OCR Meilisearch + vektor Per workspace, izolované 40+ konektorů do firemních zdrojů
Netechnický uživatel Vyžaduje Docker Vyžaduje Docker Nativní desktop (bez Dockeru) Docker/Kubernetes
Enterprise auth OAuth, LDAP, OIDC, SCIM 2.0 OAuth, LDAP OAuth (omezeně) OIDC, SAML, SCIM
GitHub hvězd (04/2026) 128 000+ 22 000+ 34 000+ 13 000+

Pro jedno rozhraní v celé firmě s plugin systémem volíte Open WebUI. Pro plynulé přepnutí mezi GPT-5 a Claude ve stejné konverzaci LibreChat. Pro netechnický tým pracující primárně s dokumenty AnythingLLM. Pro desítky firemních konektorů s důrazem na RAG Onyx.

3. Hardware: co potřebujete skutečně

Samotné Open WebUI je extrémně skromné. Rozhodující nároky přicházejí z jazykového modelu (pokud běží lokálně) a z vektorové databáze při tisících dokumentů. Požadavky Ollamy jsou řešené v samostatném návodu na Ollamu.

Stručně: Open WebUI potřebuje 300 až 500 MB RAM a jedno CPU jádro bez ohledu na počet uživatelů. S Postgresem a Qdrantem vyroste celková paměťová stopa na 2 až 4 GB RAM. Padesát uživatelů se solidním RAG korpusem si žádá 8 až 16 GB RAM, rychlý SSD a 4 CPU jádra. GPU není pro Open WebUI nutné — inference se řeší samostatně v backendu.

Profil RAM CPU Disk Databáze Vektor DB Měsíční hosting
Pilot (1–3) 1 GB 1 jádro 20 GB SSD SQLite ChromaDB in-container 100–250 Kč (Contabo, Hetzner CX11)
Malý tým (4–15) 4 GB 2 jádra 80 GB SSD PostgreSQL Qdrant 600–1 500 Kč (Hetzner CX32, Active24 VPS)
Střední firma (16–49) 8–16 GB 4 jádra 200 GB SSD PostgreSQL + Redis Qdrant / PGVector 2 500–5 500 Kč (Hetzner CCX23)
Enterprise (50+) 32 GB+ 8 jader+ 500 GB+ SSD PostgreSQL HA Qdrant cluster 15 000 Kč+ (Hetzner AX102, on-prem)

Pro české firmy jsou typické tři cesty. Active24, Wedos a Forpsi nabízejí KVM VPS vhodné pro pilot a malé týmy, SLA i síťová propustnost jsou ale o řád horší než u Hetzneru. Hetzner (CX, CCX, AX řady) je preferovaná volba pro produkci — datová centra v Německu a Finsku, GDPR v pořádku, ceny pod AWS. On-prem server dává smysl od 50 uživatelů nebo při striktních požadavcích na datovou lokalitu (bankovnictví, zdravotnictví).

Pozor na Synology NAS. Open WebUI na ARM NAS technicky poběží, ale embedding pro běžný PDF trvá desítky sekund místo milisekund. Pro jakékoliv RAG nasazení nad stovku dokumentů je NAS slepá ulička. Pro samotný chat bez RAG postačí.

4. Instalace: od docker run k produkční šabloně

Pro první seznámení stačí jeden řádek v terminálu a dvě minuty. Setup běží na Linuxu, macOS i Windows s Docker Desktopem. Pro produkci je pak připravená docker-compose šablona s Postgresem, Qdrantem, Redisem a Caddym.

Pilotní one-liner

Předpoklady: Docker 25.0+, 4 GB volného místa, port 3000 volný. Pokud plánujete Ollamu, nainstalujte ji zvlášť podle návodu.

docker run -d \
  --name open-webui \
  --restart always \
  -p 3000:8080 \
  --add-host=host.docker.internal:host-gateway \
  -v open-webui:/app/backend/data \
  ghcr.io/open-webui/open-webui:main

Po minutě se Open WebUI zpřístupní na http://localhost:3000. První obrazovka vyzve k vytvoření administrátorského účtu. Další účty v defaultu čekají na schválení admina. Pokud Ollama běží na stejném stroji, Open WebUI ji detekuje přes host.docker.internal:11434. OpenAI API klíč se přidá v Connections → OpenAI Compatible APIs.

Produkční docker-compose

Pro produkci je docker run nedostatečný. SQLite neunese souběžné zápisy od deseti uživatelů. ChromaDB v kontejneru ztrácí embeddings při každém restartu bez persistent volume. Web bez TLS selže u první zákaznické kontroly. Následující docker-compose.yml řeší pět potřeb najednou — Postgres pro data, Redis pro session store, Qdrant pro vektory, Open WebUI jako aplikaci a Caddy jako reverse proxy s automatickým Let's Encrypt.

services:
  postgres:
    image: postgres:16-alpine
    restart: always
    environment:
      POSTGRES_DB: openwebui
      POSTGRES_USER: openwebui
      POSTGRES_PASSWORD: ${DB_PASSWORD}
    volumes:
      - postgres-data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U openwebui"]
      interval: 10s
      retries: 5

  redis:
    image: redis:7-alpine
    restart: always
    volumes:
      - redis-data:/data

  qdrant:
    image: qdrant/qdrant:latest
    restart: always
    volumes:
      - qdrant-data:/qdrant/storage

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    restart: always
    depends_on:
      postgres: { condition: service_healthy }
      qdrant:   { condition: service_started }
      redis:    { condition: service_started }
    environment:
      DATABASE_URL: postgresql://openwebui:${DB_PASSWORD}@postgres:5432/openwebui
      VECTOR_DB: qdrant
      QDRANT_URI: http://qdrant:6333
      REDIS_URL: redis://redis:6379/0
      WEBUI_SECRET_KEY: ${WEBUI_SECRET_KEY}
      WEBUI_AUTH: "True"
      ENABLE_SIGNUP: "False"
      OLLAMA_BASE_URL: http://host.docker.internal:11434
    extra_hosts:
      - "host.docker.internal:host-gateway"
    volumes:
      - openwebui-data:/app/backend/data

  caddy:
    image: caddy:2-alpine
    restart: always
    ports: ["80:80", "443:443"]
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - caddy-data:/data
      - caddy-config:/config
    depends_on: [open-webui]

volumes:
  postgres-data: {}
  redis-data: {}
  qdrant-data: {}
  openwebui-data: {}
  caddy-data: {}
  caddy-config: {}

Doprovodný Caddyfile:

ai.vasedomena.cz {
    reverse_proxy open-webui:8080

    header {
        Strict-Transport-Security "max-age=31536000; includeSubDomains"
        X-Content-Type-Options "nosniff"
        X-Frame-Options "DENY"
        Referrer-Policy "strict-origin-when-cross-origin"
    }

    @auth path /api/v1/auths/*
    rate_limit @auth 10r/m
}

Ve stejném adresáři se vytvoří .env s DB_PASSWORD (nejméně 32 znaků) a WEBUI_SECRET_KEY (výstup z openssl rand -hex 32). V Caddyfile se ai.vasedomena.cz nahradí skutečnou doménou směřovanou na IP serveru. První studený start trvá tři minuty. Před ostrým spuštěním do provozu musí být nastavený zálohovací runbook: Postgres dump každou noc, volume snapshot týdně, Qdrant snapshot přes API. Konfigurační soubory do Gitu nebo šifrovaného správce hesel. Incident bez zálohy znamená ztrátu celé historie konverzací.

5. Autentizace a RBAC

Jakmile Open WebUI přejde z pilotu na produkci, začne tlak na napojení firemní identity. Uživatelé nechtějí další heslo, bezpečnostní tým nechce další úložiště hesel a compliance chce centrální provisioning. Open WebUI nabízí pět cest — od OAuth po SCIM 2.0.

Stručně: Pro firmy do 20 uživatelů stačí OAuth napojení na Google Workspace nebo Microsoft 365, setup trvá patnáct minut. Pro firmy s Active Directory je správná cesta LDAP nebo OIDC přes Authentik/Keycloak. SCIM 2.0 automatizované provisioning (vytváření a mazání účtů při nástupu a odchodu zaměstnance) je enterprise funkce a vyžaduje placenou licenci.

Metoda Ideální pro Setup Automatizace Licence
Local accounts Pilot, do 5 lidí 0 min Žádná, admin přidává ručně Free
OAuth (Google, Microsoft, GitHub) Firmy s Google Workspace nebo M365 15–30 min Přihlášení ano, mazání účtu ručně Free
OIDC (Authentik, Keycloak) On-prem s vlastním identity providerem 1–2 h Plná přihlašovací, částečná provisioning Free
LDAP / Active Directory Firmy s AD nad 20 lidí 2–4 h Přihlášení, mapování skupin na role Free
SCIM 2.0 Enterprise s Okta/Entra ID 1 den Plná — automatické vytváření i mazání Enterprise

Role a oprávnění

Open WebUI má tři vestavěné role: pending (registrovaný, čeká na schválení), user a admin. Od verze 0.5 jdou přidat custom role s granulárními oprávněními — kdo smí vytvářet modely, nahrávat dokumenty do RAG, měnit systémové prompty. Role se automaticky mapují na LDAP skupiny nebo OIDC claims.

Typické mapování v české firmě pracuje s pěti rolemi: admin (IT oddělení), power user (business analytici, produkt), kreativní (marketing — přístup k image gen), standardní uživatel (ostatní) a host (externí spolupracovníci s denním limitem zpráv). Plánování týden dopředu eliminuje pozdější konflikty typu „obchoďák generuje obrázky za firemní peníze".

Varování pro veřejně vystavené instance: default ENABLE_SIGNUP=True znamená, že se kdokoliv může zaregistrovat. Botnety si všimnou otevřené instance do několika hodin a začnou zahlcovat adminovi notifikace. Nastavte ENABLE_SIGNUP=False a uživatele přidávejte ručně nebo přes OAuth whitelist domény.

6. RAG: firemní ChatGPT nad dokumentací

Retrieval-Augmented Generation je hlavní důvod, proč české firmy přecházejí z obyčejného ChatGPT na vlastní Open WebUI. Model dostává otázku spolu s relevantními úryvky z firemní dokumentace a odpovídá na základě konkrétních materiálů, ne obecně.

Stručně: Pro RAG stačí nahrát dokumenty do Knowledge báze, přiřadit ji k modelu nebo uživateli a Open WebUI je při každé otázce prohledá. Default setup používá ChromaDB a jednoduchý chunking. Pro produkci je vhodné přepnout na Qdrant a ladit velikost chunků podle typu dokumentace. Hranice kvality leží kolem pěti tisíc dokumentů na jednu bázi.

Vector DB Ideální objem Výhody Nevýhody
ChromaDB (default) Do 1 000 dokumentů Nulová konfigurace, jeden soubor Nad 5 tis. dokumentů se zadrhává
Qdrant 1 000 – 100 000 dok. Rust výkon, clustering, payload filtering Samostatný kontejner, víc paměti
PGVector Firmy už s PostgreSQL Jedna DB pro data i vektory Pomalejší nad 50 tis. dokumentů
Milvus 100 000+ dok., GPU Škála pro velká data, GPU indexing Složitá architektura, dedikovaný provozní tým

Pro parsování se v základu používá Apache Tika (rychlé, běžné PDF stačí). Pro složité dokumenty s tabulkami Docling (pomalejší, přesnější). Pro účetní a právní dokumenty Azure Document Intelligence (placené, nejvyšší přesnost). Web search doplňuje odpovědi o aktuální obsah — pro privátní firemní nasazení je doporučený SearXNG, pro kvalitu výsledků Brave Search API nebo Tavily s GDPR-kompatibilní smlouvou v Evropě.

Nejčastější chyba v RAG pipeline

Uživatel nahraje velké PDF a diví se, že odpovědi jsou nepřesné. Problém bývá ve velikosti chunků — výchozích 500 tokenů s 50 tokeny překryvu sedí na články, ale ne na tabulky, smlouvy nebo manuály. V administraci jde velikost chunku upravit na 1 000–2 000 tokenů pro smlouvy a 200–300 pro FAQ dokumenty. Kvalita odpovědí pak vyskočí skokově.

7. Nejčastější otázky

Potřebuje Open WebUI Ollamu?

Ne, Ollama je volitelný backend. Open WebUI umí jako primární endpoint používat kterýkoliv OpenAI-kompatibilní API — OpenAI přímo, Anthropic, Azure OpenAI, Groq, Together AI, Langdock nebo vlastní inference server (vLLM, TGI). Kombinace Open WebUI + OpenAI API je nejčastější setup v SMB firmách, které nechtějí spravovat GPU.

Kolik lidí zvládne jedno nasazení?

Na Hetzner CCX23 (4 vCPU, 16 GB RAM) běží pohodlně 20–30 souběžných uživatelů, pokud se inference řeší přes cloud API. S lokální Ollamou na stejném stroji bez GPU kapacita klesá na 2–3 souběžné uživatele kvůli pomalé CPU inference. S GPU (RTX 4090) zvládne stejný setup 5–8 souběžných uživatelů. Pro 50+ souběžných je potřeba Kubernetes nebo oddělené GPU servery.

Jde provozovat bez Dockeru?

Ano, přes pip install open-webui na Linuxu, macOS i Windows. Vyžaduje Python 3.11 a vytváří vlastní virtuální prostředí. Pro produkci není pip instalace doporučená — správa aktualizací, logování a service manager je složitější než s Dockerem. Pro OSVČ a jednoho uživatele je pip rozumná alternativa.

Funguje Open WebUI česky v UI?

Ano, lokalizace pokrývá přes čtyřicet jazyků. Překlad je komunitní a některé pokročilé admin sekce zůstávají v angličtině. Pro běžného uživatele je UI plně česky. Jazyk se přepíná v Settings → General → Language.

Co zbývá dořešit

První polovina návodu končí v okamžiku, kdy Open WebUI produkčně běží, uživatelé se přihlašují přes firemní OAuth a RAG hledá v dokumentaci. Chybí ale odpovědět na čtyři otázky, na kterých se nasazení nejčastěji rozbíjí: zda licence dovolí růst nad 49 uživatelů, jaké reálné měsíční náklady to bude mít v Kč, jak zabezpečit instanci před vystavením do internetu a v jakém sledu postupovat, aby to za čtrnáct dní stálo ve firmě. Odpovědi má druhá polovina návodu — 12bodový bezpečnostní checklist, TCO porovnání s ChatGPT Enterprise a rozhodnutí, kdy je Open WebUI špatná volba a co sáhnout místo něj.

Navazující zdroje: lokální inference přes Ollamu, autonomní AI agent OpenClaw, rozklad nákladů na AI API a tokeny.