Open WebUI Ollama Yerel LLM Docker Açık Kaynak Local AI LLM

Open WebUI Nasıl Kurulur? Ollama ile Tarayıcıdan Yerel LLM

Başlangıç
person Yapay Zeka Uzmanı
list_altİçindekilerexpand_more
  1. 01Open WebUI Nedir?
  2. 02Terminal neden yetmez?
  3. 03Kurulum Seçenekleri
  4. 04Docker ile Kurulum
  5. 05Pip ile Kurulum
  6. 06Ollama Bağlantısı
  7. 07Arayüz Özellikleri
  8. 08OpenAI API ve Diğer Servisler
  9. 09Çok Kullanıcılı Kurulum
  10. 10Sorun Giderme
  11. 11Motor Seçimi Nasıl Etkiler?
  12. 12Hangi Kurulum Yöntemini Seçmeli?
  13. 13Bilinen Kısıtlamalar
Editorial tech-magazine cover illustration about local LLM with open-source browser chat interface, glowing server nodes and Docker container architecture, Python data streams flowing into a web dashboard, abstract artificial-intelligence motifs (glowing neural networks, flowing data, subtle circuitry), sophisticated modern concept art, clean balanced composition, soft cinematic studio lighting, rich depth of field, premium color grading in deep navy blues with cyan and magenta accents, highly detailed, polished editorial 8k. No text, no words, no letters, no captions, no logos, no watermark, no UI.

Ollama’yı kurmak kolay. Her modeli terminalden ollama run <model> ile çağırmak, konuşma geçmişini takip etmek, PDF yükleyip soru sormak ise ciddi kullanımda yetersiz kalır. Open WebUI bu boşluğu kapatıyor: ChatGPT arayüzüne benzer bir tarayıcı deneyimi, tamamen yerel, verileriniz dışarı çıkmıyor.

Bu rehberde Open WebUI’yi Docker veya pip ile nasıl kuracağınızı, Ollama’ya nasıl bağlayacağınızı ve hangi özelliklerin gündelik kullanımda fark yarattığını somut adımlarla ele alacağız.

Ollama kurulumu ve yerel LLM’lere başlangıç için önce bu rehbere bakabilirsiniz.

Open WebUI — Ollama ile tarayıcı tabanlı yerel LLM arayüzü

Open WebUI Nedir?

Open WebUI, 2023’te Timothy Baek tarafından “Ollama WebUI” adıyla çıkmış, OpenAI API desteği de eklenince bugünkü adını almış açık kaynaklı bir web arayüzüdür. 2026 ortasında GitHub’da 90.000’den fazla yıldıza ulaştı ve yerel LLM arayüzleri arasında fiilen standart haline geldi.

Görünüm açısından ChatGPT’ye benziyor: sol kenar çubuğunda konuşma listesi, ortada sohbet ekranı, model seçici, dosya yükleme, sistem istemi yönetimi. Fark şu: tüm bunlar kendi makinenizde çalışıyor, hiçbir istek dış sunucuya gitmiyor.

Altında çalışan motor Ollama veya herhangi bir OpenAI-uyumlu API olabilir. vLLM, LiteLLM, llama.cpp tabanlı yerel sunucular, hatta GPT-4o ve Claude gibi bulut modelleri; hepsi aynı arayüzden yönetilebilir. Birden fazla model varsa konuşmalar arasında serbestçe geçiş yapılabiliyor.

Terminal neden yetmez?

ollama run llama3.2 komutuyla doğrudan konuşmak işe yarıyor, ancak ciddi kullanımda dar kalır:

  • Konuşmalar oturumlar arasında korunmuyor
  • Dosya veya görsel yüklenemiyor
  • Farklı modelleri paralel karşılaştırmak mümkün değil
  • Ekip paylaşımı, kullanıcı yönetimi yok
  • Sistem istemini saklamak veya şablon oluşturmak için ayrıca düzenek kurulması gerekiyor

Open WebUI bu sorunların hepsini kutudan çıkan bir arayüzle çözüyor.

Kurulum Seçenekleri

İki ana yol var: Docker ve pip. Docker önerilen seçenek: bağımlılık çakışması yok, güncelleme tek komut, container izolasyonu sistem dosyalarına dokunmuyor. Pip ise Docker istemeyenler için veya mevcut Python ortamıyla sıkı entegrasyon gerektiğinde işe yarıyor.

Ortak gereksinimler:

  • Ollama kurulu ve ollama serve ile çalışıyor olmalı (ya da başka bir OpenAI-uyumlu API)
  • 4 GB RAM minimum (modellerin ayrı bellek ihtiyacı buna ek)
  • Güncel bir tarayıcı (Chrome, Firefox veya Safari son sürüm)

Docker için: Docker Desktop (Mac/Windows) veya Docker Engine + Compose (Linux)
Pip için: Python 3.11 ve üstü

Docker ile Kurulum

Ollama aynı makinede çalışıyorsa aşağıdaki tek komut yeterli:

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:main

Komut ne yapıyor?

  • -d: container’ı arka planda başlatır
  • -p 3000:8080: yerel 3000 portunu container’ın 8080 portuna bağlar
  • --add-host=host.docker.internal:host-gateway: container’ın ana makineye (Ollama’ya) ulaşabilmesini sağlar
  • -v open-webui:/app/backend/data: konuşma geçmişi ve ayarları kalıcı volume’de saklar
  • --restart always: makine açılışında otomatik başlar

Komut çalıştıktan sonra tarayıcıdan http://localhost:3000 adresini açın. İlk açılışta yönetici hesabı oluşturma ekranı gelir.

Nvidia GPU varsa:

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

:cuda imajı CUDA sürücüleriniz mevcutsa GPU hızlandırmasını devreye sokar. CUDA kurulu olmayan sistemlerde :main imajını kullanın.

Güncelleme:

docker pull ghcr.io/open-webui/open-webui:main
docker stop open-webui && docker rm open-webui
# Yukarıdaki run komutunu tekrar çalıştırın

Volume silinmediği için konuşmalar ve ayarlar korunur.

Pip ile Kurulum

Docker olmadan kurmak isteyenler için:

pip install open-webui
open-webui serve

Varsayılan port 8080. Tarayıcıdan http://localhost:8080 adresine gidin.

Bağımlılık çakışmalarını önlemek için sanal ortam kullanmanızı öneririm:

python -m venv webui-env
source webui-env/bin/activate   # Windows: webui-env\Scripts\activate
pip install open-webui
open-webui serve --port 3000

Güncelleme:

pip install --upgrade open-webui

Ollama Bağlantısı

Open WebUI varsayılan olarak http://localhost:11434 adresindeki Ollama’ya bağlanmaya çalışır. Ollama çalışıyorsa bağlantı otomatik kurulur.

Ollama’nın çalıştığını doğrulamak için:

ollama list

Hiç model yoksa Open WebUI içinden de model indirebilirsiniz: Settings → Models → Pull a model from Ollama.com. Terminalden de çekilebilir:

ollama pull llama3.2
ollama pull qwen2.5-coder:7b
ollama pull mistral

Model listesi Open WebUI’ye otomatik yansır. Sohbet ekranının sol üstündeki model seçiciden aktif modeli değiştirebilirsiniz.

Ollama farklı bir IP veya portta çalışıyorsa:

Settings → Connections → Ollama API URL alanına doğru adresi girin. Aynı ağdaki başka bir makinede çalışıyorsa http://192.168.1.100:11434 biçiminde.

Arayüz Özellikleri

Open WebUI’nin terminale göre asıl fark yarattığı noktalar:

Model geçişi. Aynı sohbette model değiştirilebilir. Bir soruya llama3.2 ile başlayıp yanıtı beğenmezseniz mistral ile devam edebilirsiniz. Model seçici konuşma üstünde her zaman görünür.

Belge yükleme. PDF, Word, metin dosyası veya web sayfası URL’si sohbete eklenebilir. Arayüz belgeyi bölümlere ayırır, yerel bir vektör veritabanında saklar ve sorularınızla ilgili bölümleri otomatik çeker. Bu yapı temel RAG akışının kullanıcı arayüzüne taşınmış halidir.

Sistem istemi şablonları. Sık kullandığınız rolleri kaydedin: “Kıdemli Python geliştiricisi olarak yanıtla”, “Teknik İngilizce metni Türkçeye çevir”. Model seçiminde şablonu da seçin, her konuşmayı sıfırdan ayarlamak zorunda kalmayın.

Görsel anlama. LLaVA, Qwen-VL veya Gemma gibi vision modelleri yüklendiğinde arayüz görsel yüklemeyi otomatik aktif eder. Ekran görüntüsü veya fotoğraf yükleyip model üzerinde analiz yaptırabilirsiniz.

Web arama entegrasyonu. Bağlı bir arama API’ı (Brave Search, SerpAPI vb.) tanımlandığında model gerçek zamanlı web araması yapabilir. Offline çalışan modele internet erişimi kazandıran pratik bir köprü.

Konuşma paylaşımı. Tek bir bağlantı oluşturup başkasıyla paylaşabilirsiniz. Özellikle ekip sunucusunda çalışan bir Open WebUI örneğinde anlamlı.

OpenAI API ve Diğer Servisler

Open WebUI Ollama ile sınırlı değil. GPT-4o, Groq, Together AI veya OpenAI-uyumlu herhangi bir API bağlanabilir.

Settings → Connections → OpenAI API bölümüne:

  • API URL: https://api.openai.com/v1
  • API Key: OpenAI anahtarınız

Kaydedin. Model seçicide artık gpt-4o, gpt-4o-mini gibi seçenekler de görünür. Aynı arayüzden hem yerel Ollama modelleri hem bulut modelleri kullanılabiliyor. Hangi servisin ne kadar maliyete yol açtığını takip etmek isteyenler için LLM API maliyet karşılaştırması bu rehberde.

LiteLLM gibi proxy araçlar üzerinden Claude API da OpenAI-uyumlu modda bağlanabilir. Bu şekilde tek bir Open WebUI örneğinden hem yerel hem çoklu bulut modellerine erişilebilir.

Çok Kullanıcılı Kurulum

Open WebUI çok kullanıcılı çalışmayı destekliyor. Admin panelinden yeni kullanıcılar eklenip yetki seviyeleri belirlenebilir (Admin / Kullanıcı / Bekleyen).

Bir sunucuya kurulduğunda ekip üyeleri aynı örneğe farklı hesaplardan bağlanabilir. Her kullanıcının konuşma geçmişi ve ayarları ayrı tutuluyor, modeller ortak havuzdan seçiliyor.

Harici erişim için nginx ile ters proxy kurulumu:

server {
    listen 443 ssl;
    server_name llm.sirketiniz.com;

    ssl_certificate /etc/letsencrypt/live/llm.sirketiniz.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/llm.sirketiniz.com/privkey.pem;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Certbot ile ücretsiz Let’s Encrypt sertifikası edinip HTTPS üzerinden güvenli erişim kurabilirsiniz.

Sorun Giderme

“Could not connect to Ollama” hatası:

Docker içinden Ollama’ya ulaşmak için --add-host=host.docker.internal:host-gateway parametresi gerekir. Bu parametre eksikse container’ı durdurun, kaldırın ve komutu doğru parametreyle yeniden çalıştırın.

Ollama’nın tüm ağ arayüzlerini dinlediğinden de emin olun:

OLLAMA_HOST=0.0.0.0 ollama serve

Sistem servisi olarak çalışıyorsa /etc/systemd/system/ollama.service dosyasına şu satırı ekleyin:

[Service]
Environment="OLLAMA_HOST=0.0.0.0"

Port 3000 zaten kullanımda:

-p 3001:8080 şeklinde farklı bir dış port seçin ve tarayıcıdan http://localhost:3001 adresine gidin.

Model listesi görünmüyor:

Settings → Connections bölümünde Ollama API URL’sini kaydedip sayfayı yenileyin. Bazı durumlarda URL alanı dolu görünse de kaydetmek gerekiyor.

İlk admin hesabı oluşturulamadan uygulama kapandı:

docker volume rm open-webui

Volume’u silip container’ı yeniden başlatın. Kayıt ekranı tekrar gelir.

Belge yükleme çalışmıyor:

Settings → Documents bölümünden embedding modelini kontrol edin. Yerel embedding için nomic-embed-text gibi bir embedding modeli Ollama üzerinde yüklü olmalı. Olmadığı durumlarda OpenAI embedding API’ı kullanılabilir.

Motor Seçimi Nasıl Etkiler?

Open WebUI sadece Ollama ile çalışmak zorunda değil. Hangi yerel çalıştırma motorunu seçtiğinizden bağımsız olarak üste eklenen arayüz katmanı olarak çalışabilir.

Ollama, LM Studio ve Jan karşılaştırması için bu rehbere bakabilirsiniz. vLLM, llama.cpp sunucusu veya LiteLLM proxy gibi OpenAI-uyumlu endpoint sunan her araç Settings → Connections bölümünden tanımlanabilir.

Hangi Kurulum Yöntemini Seçmeli?

Docker ile pip arasında kalmak büyük çoğunluğun kafasını karıştırıyor. Karar aslında birkaç koşula bağlı.

Docker’ı seçin:

  • Makine başka uygulamalar da çalıştırıyorsa (bağımlılık izolasyonu sorun çıkarmaz)
  • Ekip kullanımı söz konusuysa (servis yönetimi ve güncelleme kolaylaşır)
  • Linux sunucuya kuruyorsanız (systemd veya container orchestration’a uyum sağlar)

Pip’i seçin:

  • Docker kurmak istemiyorsanız veya kurulum kısıtlıysa
  • Python geliştirme ortamıyla sıkı entegrasyon gerekiyorsa
  • Hızlı denemek, birkaç gün sonra silmek istiyorsanız

Tek kişi, kişisel bilgisayar: pip install open-webui && open-webui serve yeterli. Konuşmalar ~/.open-webui/ altında kalır; güncelleme tek komut.

Küçük ekip, paylaşımlı sunucu: Docker, nginx ters proxy ve Let’s Encrypt. Admin panelinden kullanıcı davet edip model kısıtlayabilir, şablon havuzu paylaşabilirsiniz. Üç ile beş kişilik bir geliştirici ekibi bu kurulumla aynı yerel modellere tek arayüzden ulaşır; her kullanıcının geçmişi ayrı tutulur.

Bilinen Kısıtlamalar

Güçlü yönleri kadar nerede zorlandığını bilmek de işe yarıyor:

Eş zamanlı VRAM baskısı: Birden fazla kullanıcı büyük bir modeli aynı anda sorgularsa VRAM veya RAM yetersizliği yaşanabilir. Ollama bir modeli bellekte tuttuğu sürece ikinci istek kuyruklanır; bu davranış yükü düzleştirir ama trafiğin artmasıyla yanıt gecikmesi de uzar.

Embedding gerektiren özellikler: Belge yükleme ve RAG akışı yerel bir embedding modeli gerektirir. nomic-embed-text gibi modelleri internet olmadan indiremezsiniz; bant dışı ortamlarda önceden çekmeniz şart.

Mobil tarayıcı: Masaüstü için tasarlanmış. Telefonda temel sohbet çalışıyor; yan paneller ve belge yönetimi dar ekranda tam uyum sağlamıyor.

Gerçek zamanlı işbirliği: Aynı konuşmada iki kullanıcı aynı anda yazamaz. Paylaşım salt okunur bağlantıyla sınırlı.

Bu sınırlılıklar bireysel ve küçük ekip kullanımında pratikte sorun çıkarmıyor. Onlarca kullanıcı aynı anda sorgular göndermeye başlarsa tablo değişir.

auto_stories İlgili Makaleler