Ana içeriğe geç
Kategoriye Dön

Open WebUI Kurulumu: ChatGPT Benzeri Arayüz ile Yerel AI

Open WebUI kurulumu Docker ile, Ollama entegrasyonu, kullanıcı yönetimi, RAG (belge sorgulama), model yönetimi, özel promptlar ve çoklu kullanıcı desteği.

Okuma süresi: 14 dk AI & ML Self-Hosting
open-webuichatgptyapay zekaollamaself-hostingdockerrag

İçindekiler

Open WebUI Kurulumu: ChatGPT Benzeri Arayüz ile Yerel AI

Open WebUI (eski adıyla Ollama WebUI), yerel LLM modelleriniz için ChatGPT benzeri modern bir web arayüzü sunan açık kaynaklı bir projedir. Ollama ile entegre çalışarak tarayıcı üzerinden AI modellerinizle sohbet edebilir, belge yükleyebilir ve RAG (Retrieval-Augmented Generation) ile dokümanlarınızı sorgulayabilirsiniz.

Open WebUI Nedir?

Open WebUI, self-hosted AI deneyimi için tasarlanmış kapsamlı bir web arayüzüdür. Temel özellikleri:

  • ChatGPT Benzeri Arayüz: Modern, kullanıcı dostu sohbet deneyimi
  • Ollama Entegrasyonu: Yerel LLM modelleri ile doğrudan bağlantı
  • RAG Pipeline: Belge yükleme ve doküman tabanlı sorgulama
  • Çoklu Kullanıcı: Kullanıcı yönetimi ve rol tabanlı erişim
  • Model Yönetimi: Arayüzden model indirme, silme ve yapılandırma
  • Özel Promptlar: System prompt şablonları ve paylaşım
  • Sohbet Geçmişi: Tüm konuşmaların kaydı ve arama
  • Markdown Desteği: Kod blokları, tablolar ve zengin metin formatı

Sistem Gereksinimleri

BileşenMinimumÖnerilen
RAM4 GB (UI için)8 GB+
Disk5 GB10 GB+
Docker20.10+En güncel
OllamaKurulu ve çalışırAynı sunucu veya ağ

Docker ile Kurulum

Ollama Aynı Sunucuda

Eğer Ollama aynı sunucuda çalışıyorsa:

hljs bash
docker run -d \
  --name open-webui \
  -p 3000:8080 \
  --add-host=host.docker.internal:host-gateway \
  -e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
  -v open-webui:/app/backend/data \
  --restart unless-stopped \
  ghcr.io/open-webui/open-webui:main

Ollama ile Birlikte (Tek Container)

Ollama ve Open WebUI'yi tek container'da çalıştırmak için:

hljs bash
docker run -d \
  --name open-webui \
  -p 3000:8080 \
  --gpus all \
  -v ollama:/root/.ollama \
  -v open-webui:/app/backend/data \
  --restart unless-stopped \
  ghcr.io/open-webui/open-webui:ollama

Docker Compose (Önerilen)

hljs yaml
version: '3.8'
services:
  ollama:
    image: ollama/ollama
    container_name: ollama
    ports:
      - "11434:11434"
    volumes:
      - ollama_data:/root/.ollama
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
    restart: unless-stopped

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    ports:
      - "3000:8080"
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
      - WEBUI_SECRET_KEY=guclu-bir-secret-key-buraya
      - ENABLE_SIGNUP=true
      - DEFAULT_USER_ROLE=pending
    volumes:
      - open-webui_data:/app/backend/data
    depends_on:
      - ollama
    restart: unless-stopped

volumes:
  ollama_data:
  open-webui_data:

Başlatma:

hljs bash
docker compose up -d

İlk Yapılandırma

Tarayıcıdan http://SUNUCU_IP:3000 adresine gidin.

Admin Hesabı Oluşturma

İlk kayıt olan kullanıcı otomatik olarak admin olur:

  1. Sign Up butonuna tıklayın
  2. Ad, e-posta ve şifre girin
  3. İlk kullanıcı admin rolü alır

İlk kullanıcıyı hemen oluşturun. Aksi halde başka biri admin olabilir. Kayıt sonrası ENABLE_SIGNUP=false yaparak yeni kayıtları kapatabilirsiniz.

Ollama Bağlantısı

Admin panelinden Ollama bağlantısını doğrulayın:

  1. Admin PanelSettingsConnections
  2. Ollama URL: http://ollama:11434 (Docker Compose) veya http://host.docker.internal:11434
  3. Test Connection ile bağlantıyı doğrulayın

Model Yönetimi

Arayüzden Model İndirme

  1. Admin PanelSettingsModels
  2. Model adını girin (örn: llama3.1)
  3. Pull butonuna tıklayın
  4. İndirme ilerlemesini takip edin

Komut Satırından Model İndirme

hljs bash
# Ollama container'ına bağlanarak
docker exec -it ollama ollama pull llama3.1
docker exec -it ollama ollama pull mistral
docker exec -it ollama ollama pull codellama

Model Ayarları

Her model için özel parametreler ayarlayabilirsiniz:

Temperature: 0.7      # Yaratıcılık seviyesi (0-1)
Top P: 0.9            # Nucleus sampling
Context Length: 4096  # Bağlam penceresi
Max Tokens: 2048      # Maksimum yanıt uzunluğu

RAG (Retrieval-Augmented Generation)

Open WebUI, belge yükleme ve doküman tabanlı sorgulama desteği sunar:

Belge Yükleme

  1. Sohbet penceresinde + butonuna tıklayın
  2. PDF, TXT, DOCX, MD dosyası yükleyin
  3. Belge otomatik olarak parçalanır ve embedding oluşturulur
  4. Sohbette belgeye referans vererek sorular sorun

RAG Yapılandırması

Admin PanelSettingsDocuments:

Chunk Size: 1000          # Belge parça boyutu
Chunk Overlap: 200        # Parçalar arası örtüşme
Embedding Model: nomic-embed-text  # Embedding modeli
Top K: 5                  # Sorgu başına dönen parça sayısı

Embedding Modeli Kurulumu

hljs bash
# RAG için embedding modeli indirin
docker exec -it ollama ollama pull nomic-embed-text

Kullanıcı Yönetimi

Roller

  • Admin: Tam yetki (ayarlar, kullanıcılar, modeller)
  • User: Sohbet ve belge yükleme
  • Pending: Onay bekleyen kullanıcı

Kullanıcı Ayarları

Admin PanelUsers:

# Ortam değişkenleri ile yapılandırma
ENABLE_SIGNUP=true          # Kayıt açık/kapalı
DEFAULT_USER_ROLE=pending   # Varsayılan rol (pending/user)
ENABLE_LOGIN_FORM=true      # Giriş formu

Özel System Prompt

Her model için özel system prompt tanımlayabilirsiniz:

  1. WorkspaceModels → Model seçin
  2. System Prompt alanına yazın:
Sen REXE Teknoloji teknik destek asistanısın.
Sunucu yönetimi, Docker, Linux ve ağ konularında uzmanlaşmışsın.
Yanıtlarını Türkçe ver.
Kod örnekleri ekle.
Adım adım açıkla.

Prompt Şablonları

WorkspacePromptsCreate Prompt:

Title: Linux Sorun Giderme
Command: /linux-fix
Content: "Aşağıdaki Linux sorununu analiz et ve çözüm öner:
1. Sorunun olası nedenlerini listele
2. Teşhis komutlarını ver
3. Adım adım çözüm yaz
4. Önleme önerileri ekle

Sorun: {{prompt}}"

Nginx Reverse Proxy

Open WebUI'yi domain ile erişilebilir yapmak için:

hljs nginx
server {
    listen 80;
    server_name ai.example.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    server_name ai.example.com;

    ssl_certificate /etc/letsencrypt/live/ai.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ai.example.com/privkey.pem;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # WebSocket desteği
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    # Büyük dosya yükleme için
    client_max_body_size 100M;
}

Güncelleme

hljs bash
# Docker Compose ile güncelleme
docker compose pull
docker compose up -d

# Tek container güncelleme
docker pull ghcr.io/open-webui/open-webui:main
docker stop open-webui
docker rm open-webui
# Aynı run komutuyla yeniden başlatın

Sorun Giderme

hljs bash
# Open WebUI logları
docker logs open-webui

# Ollama bağlantı testi
docker exec open-webui curl -s http://ollama:11434/api/tags

# Container durumu
docker ps | grep -E 'open-webui|ollama'

# Veri dizini boyutu
docker exec open-webui du -sh /app/backend/data

REXE VPS sunucularında Open WebUI ile kendi ChatGPT alternatifini kurabilirsiniz. Verileriniz tamamen sizin kontrolünüzde kalır.