
Lokalny ChatGPT w 10 minut: Open WebUI + Ollama (2026)
Jeśli kiedykolwiek marzyłeś o tym, by ChatGPT działał na Twoim laptopie zamiast na serwerach OpenAI, Open WebUI + Ollama to dokładnie stos technologiczny, którego potrzebujesz. Open WebUI zapewnia dopracowany interfejs czatu; Ollama uruchamia modele lokalnie. Żadnych kluczy API, żadnych opłat za tokeny, żadne dane nie opuszczają Twojej maszyny. Ten przewodnik przeprowadzi Cię od czystego terminala do pierwszej rozmowy w około dziesięć minut, a następnie doda elementy, które większość tutoriali pomija: głosowe I/O, Pipelines, MCP, benchmarki Apple Silicon oraz czystą ścieżkę HTTPS z Caddy.
Kluczowe wnioski:
- Open WebUI to hostowany u siebie frontend w stylu ChatGPT; Ollama to lokalny silnik modeli, który go zasila.
- Ścieżka z pojedynczym kontenerem Docker pozwoli Ci rozpocząć czat w ~10 minut na „rozgrzanej” maszynie.
- Ustaw
OLLAMA_BASE_URLnahttp://host.docker.internal:11434, aby naprawić błąd „brak połączenia” w dziewięciu na dziesięć przypadków.- Najważniejsze funkcje Open WebUI to Pipelines/Functions, natywne RAG, głosowe I/O i MCP, z czym nie może konkurować LM Studio.
Czym tak naprawdę jest Open WebUI + Ollama?
Open WebUI to open-source’owy, hostowany u siebie interfejs webowy, który nadaje Ollamie (i innym lokalnym środowiskom uruchomieniowym LLM) interfejs czatu w stylu ChatGPT. Razem pozwalają uruchamiać prywatne modele AI na własnej maszynie, bez kluczy API, bez kosztów za tokeny, z pełną kontrolą nad danymi. Open WebUI to warstwa czatu; Ollama to warstwa modelu. Komunikują się przez HTTP na porcie 11434 i to cała architektura.
Rozbijmy to na części, ponieważ nazwy mogą brzmieć wymiennie, ale nimi nie są:
- Open WebUI, aplikacja przeglądarkowa, z której faktycznie korzystasz. Wielu użytkowników, wbudowane RAG, system wtyczek, działa na porcie 8080 wewnątrz Dockera (mapujesz go na 3000 na hoście).
- Ollama, serwer modeli. Pobiera pliki GGUF (myśl o nich jak o
.mp3dla modeli AI), ładuje je na CPU/GPU i udostępnia przejrzyste API HTTP na porcie 11434. - Modele, rzeczywiste pliki wag.
llama3.2:3b,qwen2.5:14b,deepseek-r1:7bitp. Pobierane przezollama pull, wymienione w bibliotece modeli Ollamy.
Dlaczego ta kombinacja wygrywa: prywatność (dane zostają lokalnie), koszt (zero za token), możliwość pracy offline, wieloosobowość out-of-the-box i prawdziwy ekosystem wtyczek. Jeśli jesteś nowy w tej dziedzinie, nasz przewodnik po uruchamianiu LLM lokalnie omawia stronę sprzętową.
Oficjalna dokumentacja Open WebUI to kanoniczne źródło wiedzy, warto ją dodać do zakładek. Jest zwięzła, ale dokładna.
Jak zainstalować Open WebUI z Ollamą? (Szybka konfiguracja)
Zainstaluj Docker, zainstaluj Ollamę, a następnie uruchom docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main. Odwiedź http://localhost:3000, utwórz konto administratora, pobierz model z Admin → Settings → Connections → Ollama i zacznij czatować. Całkowity czas: około 10 minut na „rozgrzanej” maszynie.
Oto pełna ścieżka, krok po kroku:
1. Zainstaluj Docker Desktop, pobierz go ze strony docker.com dla Mac/Windows lub apt install docker.io na Linuxie.
2. Zainstaluj Ollamę
# macOS / Linux
curl -fsSL https://ollama.com/install.sh | sh
# Windows: download installer from ollama.com3. Pobierz model startowy. Zaczynaj od llama3.2:3b, szybki na prawie każdym sprzęcie, wystarczająco inteligentny, by być użytecznym. Jeśli chcesz przeglądu najmocniejszych opcji, sprawdź naszą listę najlepszych open-source’owych LLM.
ollama pull llama3.2:3b4. Uruchom kontener Open WebUI (kanoniczne polecenie):
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:main5. Otwórz http://localhost:3000, zarejestruj się (pierwszy użytkownik automatycznie staje się administratorem) i już czatujesz.
Wskazówka pro: Na Macach z Apple Silicon uruchamiaj Ollamę natywnie (nie w Dockerze). Tak zostało to zaprojektowane, aby Ollama mogła korzystać z GPU Metal. Open WebUI nadal działa w Dockerze; oba komunikują się przez
host.docker.internal:11434.
Co do obietnicy „10 minut”: to liczba dla „rozgrzanej” maszyny, z już zainstalowanym Dockerem i przyzwoitym internetem do pobrania obrazu ~2 GB i modelu ~2 GB. Pierwsza w życiu instalacja Dockera bez cache? Dodaj dziesięć minut. Wolne łącze? Dodaj kolejne pięć. Uczciwa baza, a nie marketingowa liczba.
Docker Compose: Konfiguracja gotowa na produkcję
Jeśli chcesz odtwarzalnej konfiguracji z wieloma kontenerami dla Open WebUI plus samowystarczalnej usługi Ollama, Docker Compose jest czystszą ścieżką. Jeden plik YAML deklaruje obie usługi, wspólną sieć, nazwane wolumeny dla trwałości i pozwala na ponowne wdrożenie jednym docker compose up -d. Świetne dla serwerów, homelabów lub zespołów.
Sztuczka, która myli ludzi: gdy obie usługi działają wewnątrz Compose, ustaw OLLAMA_BASE_URL=http://ollama:11434 (nazwa usługi Compose), a nie host.docker.internal. Wewnętrzny DNS Dockera automatycznie rozwiązuje nazwę usługi.
services:
ollama:
image: ollama/ollama:latest
container_name: ollama
ports:
- "11434:11434"
volumes:
- ollama:/root/.ollama
restart: always
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
ports:
- "3000:8080"
environment:
- OLLAMA_BASE_URL=http://ollama:11434
volumes:
- open-webui:/app/backend/data
depends_on:
- ollama
restart: always
volumes:
ollama:
open-webui:Uruchom to:
docker compose up -d
docker compose logs -fWarto podkreślić dwie rzeczy. Po pierwsze, nazwane wolumeny (ollama: i open-webui: na dole) są tu lepsze niż bind mounts, Docker zarządza uprawnieniami, a historia czatu/konfiguracja przetrwają przebudowę kontenera. Po drugie, jeśli chcesz, by jedno Open WebUI rozmawiało z lokalną Ollamą i zdalnym OpenAI/Anthropic przez jeden URL, postaw przed nim proxy LiteLLM. A jeśli wciąż wybierasz warstwę uruchomieniową, nasz przegląd najlepszych lokalnych narzędzi LLM obejmuje Ollamę, vLLM, LM Studio i inne.
Akceleracja GPU: NVIDIA, AMD i Apple Silicon
Ollama automatycznie wykrywa karty NVIDIA poprzez NVIDIA Container Toolkit, karty AMD poprzez ROCm na Linuxie, a GPU Apple Silicon natywnie przez Metal. Nie przekazujesz --gpus all do Open WebUI, tylko Ollama potrzebuje GPU. Najszybsza konfiguracja na każdej platformie wygląda inaczej, a niektóre momenty „czemu to jest wolne” wynikają z umieszczenia Ollamy w złym miejscu.
NVIDIA (Linux + Windows WSL2)
Zainstaluj NVIDIA Container Toolkit, a następnie uruchom Ollamę w Dockerze z --gpus all:
docker run -d --gpus=all \
-v ollama:/root/.ollama \
-p 11434:11434 \
--name ollama \
ollama/ollamaZweryfikuj za pomocą nvidia-smi, gdy model jest załadowany, powinieneś zobaczyć ollama na liście procesów GPU. Zmienna środowiskowa OLLAMA_NUM_GPU pozwala ograniczyć warstwy, gdy balansujesz VRAM z innymi obciążeniami.
Apple Silicon (M1/M2/M3/M4)
Uruchamiaj Ollamę natywnie, nie w Dockerze. Nie ma jeszcze przekazywania GPU Metal do Dockera (stan na początek 2026 roku), więc Ollama w Dockerze na Macu cofa się do CPU i będziesz się zastanawiać, dlaczego Twój M3 Max zachowuje się jak ThinkPad z 2015 roku. Open WebUI nadal działa w Dockerze; dociera do Ollamy przez host.docker.internal:11434.
Na moim M2 Pro (16 GB) uruchamiającym llama3.2:3b, widzę około 45-55 tokenów/sek. llama3.1:8b spada do ~22-28 tokenów/sek. qwen2.5:14b jest na granicy używalności przy ~9-12 tokenach/sek, OK do czatu, bolesne do pracy wsadowej. Liczby różnią się w zależności od kwantyzacji i długości kontekstu, ale taki jest rząd wielkości.
"Tokens/sec by Model and Hardware"
Tabela danych
| "Model" | "Apple M2 Pro 16GB" | "RTX 3060 12GB" | "RTX 4090 24GB" |
|---|---|---|---|
| "llama3.2:3b" | 50 | 75 | 180 |
| "llama3.1:8b" | 25 | 45 | 110 |
| "qwen2.5:14b" | 11 | 22 | 65 |
AMD (ROCm na Linuxie)
Ollama 0.5+ dostarcza wsparcie ROCm dla kart RDNA2/RDNA3 (seria RX 6000/7000, chipy datacenter MI200/MI300). Użyj dedykowanego obrazu:
docker run -d --device=/dev/kfd --device=/dev/dri \
-v ollama:/root/.ollama \
-p 11434:11434 \
--name ollama \
ollama/ollama:rocmWydajność AMD znacząco zmniejszyła lukę w 2025 roku — jeszcze nie poziom NVIDIA, ale już nie projekt naukowy.
Jak dodać RAG (własne PDF-y) do Open WebUI?
Open WebUI posiada natywne RAG. Kliknij swój profil → Workspace → Knowledge, utwórz bazę wiedzy, wrzuć PDF-y, dokumenty Word, Markdown lub pliki tekstowe. Za kulisami Open WebUI dzieli dokumenty na fragmenty, osadza je za pomocą skonfigurowanego modelu embeddingowego (domyślnie nomic-embed-text), przechowuje w ChromaDB i pobiera w czasie zapytania. Nie wymagana żadna zewnętrzna usługa.
Konfiguracja wymaga jednego dodatkowego kroku: najpierw pobierz model embeddingowy.
ollama pull nomic-embed-textNastępnie w Admin → Settings → Documents ustaw model embeddingowy na nomic-embed-text. Dostosuj rozmiar fragmentu (domyślnie 1500) i nakładanie (domyślnie 100) według uznania. Klasyczny problem: zbyt duże fragmenty przekraczają okno kontekstu małych modeli. Jeśli uruchamiasz llama3.2:3b z kontekstem 4K, fragmenty o 1500 tokenach zostawiają mało miejsca na właściwe pytanie, zmniejsz do 800 z nakładaniem 80.
Aby użyć bazy wiedzy w czacie, wpisz # i wybierz kolekcję. Lub dołącz ją na stałe do Niestandardowego Modelu w Workspace → Models. Wyszukiwanie w sieci działa podobnie, włącz dostawcę (SearXNG, Brave lub Tavily) w Admin → Settings → Web Search, a model będzie mógł pobierać wyniki na żywo.
Do głębszego porównania RAG zobacz nasz przegląd narzędzi RAG. A jeśli ChromaDB nie radzi sobie przy skalowaniu, nasz opis opcji baz wektorowych obejmuje Qdrant, pgvector i kompromisy.
Głosowe I/O: Rozmawiaj ze swoją lokalną AI
Open WebUI obsługuje zarówno mowę na tekst (STT), jak i tekst na mowę (TTS). Dla STT, faster-whisper działa lokalnie bez klucza API. Dla TTS możesz podpiąć API TTS OpenAI lub uruchomić lokalny silnik jak coqui-tts. Po włączeniu ikona mikrofonu pojawia się w polu czatu, a Twoja lokalna AI zaczyna odpowiadać głosem.
Przejdź do Admin → Settings → Audio. Dwa silniki, dwa rozwijane menu.
Ścieżka STT, wybierz Whisper (Local), wybierz rozmiar modelu: tiny, base, small, medium lub large. Model pobierze się automatycznie przy pierwszym użyciu. base to złoty środek dla większości laptopów; medium, jeśli masz zapas mocy GPU.
Ścieżka TTS, najprostsza to OpenAI TTS: wklej klucz API, wybierz tts-1 i głos (alloy, nova itp.). Ścieżka w pełni lokalna: silnik coqui-tts, z osobnym obrazem Docker. Większość osób ląduje na lokalnym Whisper + OpenAI TTS jako pragmatycznym kompromisie, Twoje audio nie opuszcza maszyny przy wejściu, a wywołanie API to tylko krótki ciąg tekstowy przy wyjściu.
Możesz uwzględnić wybór w kontenerze za pomocą zmiennych env:
docker run -d \
-e WHISPER_MODEL=base \
-e AUDIO_STT_ENGINE=whisper \
-p 3000:8080 \
--add-host=host.docker.internal:host-gateway \
-v open-webui:/app/backend/data \
--name open-webui \
ghcr.io/open-webui/open-webui:mainPełna referencja audio znajduje się w dokumentacji GitHub Open WebUI.
Pipelines i Functions: Najważniejsza cecha Open WebUI
Pipelines i Functions to sposób na rozszerzenie Open WebUI bez forkowania go. Pipelines to zewnętrzne usługi Pythona działające jako filtry, routery modeli lub pełne niestandardowe handlery. Functions to inline Python (Filter, Action lub Pipe), które żyją wewnątrz samego Open WebUI. Razem są powodem, dla którego Open WebUI pokonuje LM Studio dla poważnych użytkowników.
Trzy typy Functions, po jednym zdaniu każda:
- Filter, przetwarza wiadomości przed/po (redakcja PII, filtr wulgaryzmów, przepisywanie promptów).
- Action, przycisk w interfejsie czatu, który uruchamia Pythona (ponowne podsumowanie, zapis do Notion, uruchomienie zapytania SQL).
- Pipe, pełny niestandardowy handler modelu (routing do zdalnego API, łączenie wielu modeli, budowanie agenta).
Oto minimalny Filter, który usuwa adresy e-mail z promptów użytkownika, zanim dotrą do modelu:
from pydantic import BaseModel
import re
class Filter:
class Valves(BaseModel):
priority: int = 0
def __init__(self):
self.valves = self.Valves()
def inlet(self, body: dict, __user__: dict = None) -> dict:
for message in body.get("messages", []):
if message.get("role") == "user":
message["content"] = re.sub(
r"[\w\.-]+@[\w\.-]+",
"[REDACTED_EMAIL]",
message["content"],
)
return bodyWrzuć to do Admin → Settings → Functions → New, zapisz i włącz dla dowolnego modelu. Gotowe.
Dla zewnętrznych Pipelines, uruchom dedykowany kontener obok Open WebUI:
pipelines:
image: ghcr.io/open-webui/pipelines:main
container_name: pipelines
ports:
- "9099:9099"
volumes:
- pipelines:/app/pipelines
restart: alwaysNastępnie w Admin → Settings → Connections dodaj http://pipelines:9099 jako API kompatybilne z OpenAI. Prześlij pliki .py w Admin → Settings → Pipelines. Oficjalne repozytorium Pipelines zawiera dziesiątki przykładów, routery tłumaczeń, logowanie Langfuse, wywoływanie funkcji i inne.
MCP: Łączenie Open WebUI z zewnętrznymi narzędziami
Open WebUI 0.6+ obsługuje Model Context Protocol (MCP), co oznacza, że Twój lokalny model może wywoływać zewnętrzne narzędzia, wyszukiwanie plików, GitHub, Slack, Twoje własne serwery, przez ten sam protokół, którego używa Claude Desktop. To najczystszy sposób, by dać lokalnemu modelowi realne wykorzystanie narzędzi bez pisania Pipeline.
Dodaj serwer MCP w Admin → Settings → Tools: wklej URL serwera, nadaj mu nazwę i włącz per model. Model decyduje, kiedy go wywołać podczas czatu. Omawiamy protokół end-to-end w naszym przewodniku po Model Context Protocol (MCP), te same wzorce, tylko ze strony Open WebUI zamiast Claude Desktop.
Dlaczego to ważne: od połowy 2026 roku prawie żaden tutorial Open WebUI nie wspomina o MCP. Jeśli już standaryzowałeś serwery MCP dla swojej konfiguracji Claude lub Cursor, możesz wskazać Open WebUI na dokładnie te same serwery. Jeden protokół, każdy klient.
Dlaczego Open WebUI nie widzi moich modeli Ollama? (Rozwiązywanie problemów)
Jeśli Open WebUI się ładuje, ale lista modeli jest pusta, kontener nie może połączyć się z Ollamą. W dziewięciu na dziesięć przypadków rozwiązaniem jest --add-host=host.docker.internal:host-gateway plus OLLAMA_BASE_URL=http://host.docker.internal:11434. Na Linuxie bez flagi host-gateway, sieć mostkowa Dockera nie widzi portu 11434 hosta. Przy pierwszym wdrożeniu tego u klienta na Linuxie trafiliśmy dokładnie na to i straciliśmy godzinę.
Trzy główne przyczyny, w kolejności częstotliwości:
-
Brak flagi
--add-host(najczęstsze na Linuxie). macOS Docker Desktop ustawiahost.docker.internalautomatycznie; Linux wymaga jawnej flagi. -
Ollama związana tylko z
127.0.0.1. Z perspektywy kontenera jest to nieosiągalne. Naprawa:bashOLLAMA_HOST=0.0.0.0:11434 ollama serveLub ustaw
Environment="OLLAMA_HOST=0.0.0.0:11434"w jednostce systemd na Linuxie. -
Firewall / antywirus blokujący 11434. Rzadsze, ale sprawdź
ufw, Windows Defender lub korporacyjne oprogramowanie endpoint.
Diagnostyka, uruchom to z wnętrza kontenera Open WebUI:
docker exec open-webui curl http://host.docker.internal:11434/api/tagsJeśli zwraca JSON z listą modeli, sieć działa poprawnie, a problem leży w ustawieniach Open WebUI (sprawdź Admin → Connections → Ollama URL). Jeśli zawiesza się lub odmawia, masz problem po stronie hosta, zacznij od przyczyny #2.
Open WebUI vs LM Studio vs Jan vs AnythingLLM
Open WebUI wygrywa w wieloosobowości, głębi RAG i Pipelines/Functions. LM Studio wygrywa w wydajności GPU out-of-the-box i dopracowanym UI dla jednego użytkownika. Jan wygrywa w minimalnym tarciu przy pierwszym uruchomieniu. AnythingLLM wygrywa w ergonomii ingestii dokumentów. Jeśli chcesz hostowanego u siebie zamiennika ChatGPT dla zespołu, Open WebUI jest odpowiedzią.
| Cecha | Open WebUI | LM Studio | Jan | AnythingLLM |
|---|---|---|---|---|
| Wieloosobowość | Tak | Nie | Nie | Tak |
| Natywne RAG | Tak (głębokie) | Tylko wtyczki | Podstawowe | Tak (najlepsze UX) |
| Wtyczki / Rozszerzenia | Pipelines + Functions | Ograniczone | Rozszerzenia | Wtyczki |
| Wsparcie GPU | Przez backend Ollama | Wbudowane (najlepsze) | Wbudowane | Przez backend |
| Najlepsze dla | Zespoły self-hosted | Solo power users na desktopie | Pierwsze lokalne AI | Przepływy z dużą liczbą dokumentów |
Werdykt: jeśli jesteś samotnym deweloperem, który chce tylko uruchomić model na swoim GPU gamingowym i czatować, LM Studio szybciej się konfiguruje. Jeśli budujesz prywatnego ChatGPT dla zespołu, robisz poważne RAG lub podpinasz niestandardową logikę Pythona, Open WebUI jest jedynym realnym wyborem. Nasz szerszy post o najlepszych lokalnych narzędziach LLM porównuje warstwę uruchomieniową (vLLM, llama.cpp, Ollama) pod tymi interfejsami.
Jak bezpiecznie udostępnić Open WebUI przez HTTPS?
Dwie czyste ścieżki: 5-linijkowy Caddyfile przed Open WebUI dla prawdziwego certyfikatu Let's Encrypt (prawie produkcyjnie) lub Cloudflare Tunnel do udostępniania zespołowi bez otwartych portów. Obie utrzymują Open WebUI na localhost:3000, jednocześnie udostępniając czysty publiczny URL z HTTPS. Wybierz w zależności od tego, czy kontrolujesz DNS dla domeny.
Ścieżka Caddy, skieruj swoją domenę na maszynę, a następnie:
ai.example.com {
reverse_proxy localhost:3000
}To cała konfiguracja. Caddy pobiera certyfikat Let's Encrypt automatycznie przy pierwszym żądaniu. Uruchom caddy run --config Caddyfile (lub użyj jednostki systemd). Pełna referencja: dokumentacja Caddy.
Ścieżka Cloudflare Tunnel, cloudflared tunnel create open-webui, route'uj hostname w swojej strefie Cloudflare, a następnie cloudflared tunnel run. Zero otwartych portów, Cloudflare obsługuje TLS. Świetne dla „chcę, żeby mój zespół miał do tego dostęp bez dziurawienia firewalla”.
Jedna twarda zasada: nigdy nie wystawiaj portu 3000 bezpośrednio do publicznego internetu. Rejestracja w Open WebUI jest domyślnie otwarta, każdy kto trafi na Twój URL może utworzyć konto. WEBUI_AUTH=False jest OK dla LAN, nigdy dla publicznego dostępu. Zawsze stawiaj przed nim reverse proxy plus whitelistę uwierzytelnionej rejestracji (Admin → Settings → General → „Enable Signup” wyłącz po utworzeniu kont).
Jak Techsy podchodzi do wdrożeń lokalnych LLM
Wdrożyliśmy konfiguracje Open WebUI + Ollama dla klientów w sektorze prawniczym, opieki zdrowotnej i zespołach narzędzi wewnętrznych, którzy nie mogą (lub nie chcą) wysyłać danych do OpenAI. Wzorce powtarzają się na tyle często, że przestaliśmy pisać je od zera, ale każde wdrożenie ma te same trzy priorytety.
Co faktycznie robimy:
- Dopasowujemy model do sprzętu i budżetu. Zakres 3B–8B trafia w złoty środek częściej niż nie. Większy nie zawsze znaczy lepszy, gdy liczy się latencja i koszt miesięczny.
- Hartujemy wdrożenie. Caddy z przodu, rejestracja wyłączona,
/app/backend/datana backupowanym nazwanym wolumenie, cotygodniowe snapshoty i rzeczywisty plan disaster-recovery. - Podpinamy Pipelines pod potrzeby organizacji. Filtry redagujące PII, niestandardowe pipeline'y RAG wskazujące na wewnętrzny SharePoint lub Confluence, narzędzia wywoływania funkcji dla bezpiecznego dostępu do powłoki, rzeczy, które sprawiają, że interfejs czatu jest faktycznie użyteczny w firmie.
Jeśli wolisz pominąć konfigurację i otrzymać gotowy do działania prywatny stos AI, umów bezpłatną konsultację. Chętnie oszacujemy zakres.
Podsumowanie
Trzy szybkie recapy:
- Ścieżka pojedynczego kontenera, najszybszy sposób na pierwszy czat, uczciwe dziesięć minut na rozgrzanej maszynie.
- Docker Compose, to czego naprawdę chcesz dla wszystkiego, co musi przetrwać restart.
- Pipelines + RAG + MCP, fosa, która sprawia, że Open WebUI warto wybrać zamiast LM Studio lub Jan.
Czatujesz ze swoją własną AI w dziesięć minut. Od tamtej pory wszystko jest inkrementalne, dodaj RAG, gdy masz dokumenty, dodaj Caddy, gdy chcesz mieć to na telefonie, dodaj Pipelines, gdy chcesz, by robiło prawdziwą pracę. Jeśli chcesz zagłębić się w wybór modeli lokalnych, nasz przewodnik uruchamianie LLM lokalnie szczegółowo omawia stronę sprzętową.
FAQ
Jak zainstalować Open WebUI z Ollamą?
Trzy kroki: zainstaluj Docker Desktop, zainstaluj Ollamę (curl -fsSL https://ollama.com/install.sh | sh na macOS/Linux), a następnie uruchom kanoniczny kontener Open WebUI poleceniem docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main. Otwórz http://localhost:3000 i utwórz swoje konto administratora.
Czy Open WebUI jest darmowe?
Tak, Open WebUI jest na licencji MIT i w pełni open source. Self-hosting jest darmowy; płacisz tylko za sprzęt, na którym to działa (Twój laptop, serwer homelab lub chmurowa VM). Opcjonalne płatne elementy to API TTS OpenAI do głosu lub modele komercyjne dostępne przez konektor OpenAI-compatible w Open WebUI. Wszystko co podstawowe jest bezkosztowe.
Czy Open WebUI może działać bez Ollamy?
Tak, Open WebUI rozmawia z każdym API kompatybilnym z OpenAI. Możesz wskazać je bezpośrednio na OpenAI, Anthropic przez proxy LiteLLM, serwery vLLM, serwer HTTP llama.cpp lub hostowanych dostawców jak Groq i Together. Ale „Open WebUI + Ollama” to kanoniczna kombinacja lokalnej AI, ponieważ Ollama sprawia, że zarządzanie modelami jest banalnie proste.
Dlaczego Open WebUI nie może połączyć się z Ollamą?
Najczęstsza przyczyna: brak flagi --add-host=host.docker.internal:host-gateway i nieustawiony OLLAMA_BASE_URL w ustawieniach Open WebUI. Druga najczęstsza: Ollama związana tylko z 127.0.0.1, nieosiągalna z wnętrza kontenera, naprawa przez OLLAMA_HOST=0.0.0.0:11434 ollama serve. Uruchom docker exec open-webui curl http://host.docker.internal:11434/api/tags, aby szybko zdiagnozować.
Jak dodać modele do Open WebUI?
Najłatwiejsza ścieżka: z hosta uruchom ollama pull llama3.2:3b (lub dowolny model z ollama.com/library). Model pojawi się w rozwijanym menu Open WebUI automatycznie, restart nie jest potrzebny. Alternatywnie, w Open WebUI przejdź do Admin → Settings → Connections → Ollama i użyj przycisku pull w UI. W obu przypadkach modele żyją po stronie Ollamy.
Jaka jest różnica między Open WebUI a LM Studio?
LM Studio to aplikacja desktopowa dla jednego użytkownika skupiona na zarządzaniu modelami plus czat, mocne domyślne ustawienia GPU, elegancki UI, brak wieloosobowości. Open WebUI to hostowany u siebie serwer obsługujący wielu użytkowników, natywne RAG, głosowe I/O, Pipelines/Functions i MCP. Różne grupy odbiorców: LM Studio dla samotnych power userów na desktopie, Open WebUI dla zespołów lub każdego, kto chce rozszerzalnego prywatnego ChatGPT.
Czy mogę używać Open WebUI na telefonie?
Tak, Open WebUI jest w pełni responsywne, więc działa każda mobilna przeglądarka. Połącz to z HTTPS (Caddy z certyfikatem Let's Encrypt lub Cloudflare Tunnel) i staje się w pełni funkcjonalną mobilną aplikacją czatową. Dodaj do ekranu głównego na iOS lub Androidzie dla niemal natywnego doświadczenia PWA. Tylko nie wystawiaj tego publicznie bez autoryzacji.
Jak zaktualizować Open WebUI?
Pobierz najnowszy obraz i zrestartuj: docker pull ghcr.io/open-webui/open-webui:main && docker stop open-webui && docker rm open-webui a następnie ponownie uruchom swoje oryginalne polecenie docker run. Nazwane wolumeny zachowują wszystkie dane, historię czatu, użytkowników, kolekcje RAG i ustawienia. Z Docker Compose: docker compose pull && docker compose up -d. Aktualizacje wychodzą mniej więcej co tydzień.
Czy Open WebUI obsługuje czat głosowy?
Tak, zarówno mowa na tekst (przez lokalny faster-whisper) jak i tekst na mowę (przez API TTS OpenAI lub lokalny coqui-tts). Skonfiguruj oba w Admin → Settings → Audio. Po włączeniu ikona mikrofonu pojawia się w polu czatu. Pragmatyczna konfiguracja to lokalny Whisper plus OpenAI TTS, w pełni offline wejście, szybkie czyste wyjście. Zobacz sekcję Głosowe I/O powyżej dla konfiguracji zmiennych env.
Jak dodać moje PDF-y do Open WebUI?
Kliknij swój profil → Workspace → Knowledge → New collection, a następnie prześlij PDF-y, dokumenty Word, Markdown lub pliki tekstowe. Open WebUI dzieli dokumenty na fragmenty, osadza je za pomocą nomic-embed-text (najpierw pobierz go przez ollama pull nomic-embed-text) i przechowuje w ChromaDB. Odwołuj się do dowolnej kolekcji w czacie za pomocą #nazwa-kolekcji lub dołącz na stałe do Niestandardowego Modelu.