Ana içeriğe geç

Docker

Docker, tek sunucu için en kolay üretim tarzı dağıtımdır.

İnternetten erişilen tek sunuculu kurulum için Özel Uzak Dağıtım ile başlayın. Compose şablonu uygulama bağlantı noktası yayımlamaz, varsayılan main görüntüsünü kullanır ve dış Cloudflare Access sınırı, ana makine denetimleri, yedekler ve kapsayıcı sınırları ekler.

Work Kullanılabilirliği

Work, depo Compose dosyalarında varsayılan olarak etkindir. Görüntü Docker CLI içerir, Compose /var/run/docker.sock yuvasını bağlar; Work kapsayıcıları Libre WebUI kapsayıcısının eş düzeyidir. Ana makinedeki docker ps içinde görünürler.

Yuvaya erişen işlem Docker ana makinesi üzerinde root yetkisine eşdeğer denetime sahiptir. Work’ün varsayılan etkinliği bilinçlidir: temel özelliktir ve hizmet erişimi olmadan çalışamaz. Sonuç olarak her Libre WebUI yöneticisi fiilen ana makine yöneticisidir. Şunları planlayın:

  • Yığını, yöneticilerine güvendiğiniz ana makinede tutun.
  • Yayımlanan bağlantı noktasını güvenilmeyen ağa açmayın.
  • Work gerekmiyorsa /var/run/docker.sock bağlantısını kaldırın. Work sayfası Runtime unavailable bildirir.

Linux’ta yuva root yerine docker grubuna aittir; root olmayan uygulama kullanıcısı grup kimliğine ihtiyaç duyar. Bir kez ayarlayın:

echo "DOCKER_GID=$(docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \
alpine stat -c '%g' /var/run/docker.sock)" >> .env

Değeri gösterildiği gibi kapsayıcı üzerinden okuyun. Docker Desktop yuvayı sanal makineden ilettiği için macOS ana makinesi kapsayıcının gördüğünden farklı değer verir. Grup yanlışsa Work sessizce başarısız olmak yerine sorunu açıklar. Work: Yalıtılmış Çalışma Alanları sayfasına bakın.

Work önizlemeleri ve Work Computer, rastgele bağlantı noktalarını yalnızca özel bir ana makine arayüzünde yayımlar. Docker Desktop, Compose varsayılanlarıyla çalışır: bağlama için ana makine geri döngüsü, arka uç bağlantısı için host.docker.internal. Yerel Docker Engine, kardeş kapsayıcıdan ana makine geri döngüsündeki dinleyiciye ulaşamaz. Bunun yerine bağlamayı herkese açık olmayan Docker köprü ağ geçidine ayarlayın:

echo "WORK_PREVIEW_BIND=$(docker network inspect bridge \
--format '{{(index .IPAM.Config 0).Gateway}}')" >> .env
echo "WORK_DOCKER_PUBLISHED_HOST=host.docker.internal" >> .env
docker compose up -d --force-recreate libre-webui

Compose dosyaları host.docker.internal adını host-gateway üzerinden eşler. WORK_PREVIEW_BIND=0.0.0.0 değerini asla kullanmayın; bu, kimlik doğrulaması olmayan geçici görev bağlantı noktalarını Libre WebUI’nin imzalı vekili arkasında tutmak yerine her ana makine arayüzünde yayımlar.

Paketli Ollama

Libre WebUI ile Ollama’yı tek Compose yığınında çalıştırır:

docker compose up -d

http://localhost:8080 adresini açın.

WebUI bağlantı noktası varsayılan olarak ana makine geri döngüsüne bağlanır. Yalnızca güvenilir LAN veya ters vekil erişecekse WEBUI_BIND_ADDRESS=0.0.0.0 ayarlayın ve bağlantı noktasını güvenlik duvarıyla kısıtlayın.

Ollama Compose ağında özel kalır. Ana makine uygulamalarına geri döngüden açmak için açık geçersiz kılmayı ekleyin:

docker compose -f docker-compose.yml -f docker-compose.ollama-host.yml up -d

OLLAMA_BIND_ADDRESS değerini yalnızca başka bilgisayarın Ollama’ya erişmesi gerektiğinde ayarlayın; güvenlik duvarı ve kimlik doğrulamalı vekille koruyun.

NVIDIA GPU

Docker’ın NVIDIA çalışma zamanına erişimi varsa GPU Compose dosyasını kullanın:

docker compose -f docker-compose.gpu.yml up -d

Modeller hâlâ CPU’da çalışıyorsa Ollama kapsayıcısından GPU erişimini doğrulayın.

Harici Ollama

Ollama ana makinede veya başka sunucuda çalışıyorsa kullanın:

docker compose -f docker-compose.external-ollama.yml up -d

Gerekirse Ollama adresini geçersiz kılın:

OLLAMA_BASE_URL=http://192.168.1.10:11434 docker compose -f docker-compose.external-ollama.yml up -d

Yuva Yalıtımlı Work

Standart Compose dosyaları Work kapsayıcılarını çalıştırmak için Docker yuvasını Libre WebUI’ye bağlar; bu, ana makinede root yetkisine eşdeğerdir. Web uygulamasına yuva vermeden Work’ü korumak için yuva vekili çeşidini kullanın:

docker compose -f docker-compose.socket-proxy.yml up -d

İç ağdaki vekil /var/run/docker.sock yuvasını tutar ve yalnızca Work’ün kullandığı API bölümlerini iletir (containers, images, volumes, networks, exec, info). Swarm, secrets, configs, build ve system uç noktaları engellenir. Libre WebUI DOCKER_HOST=tcp://docker-socket-proxy:2375 üzerinden erişir; yuva, DOCKER_GID gerekmez, terminal ve tanılama değişmez. Çalışma alanı belgeleri sınırın kapsamını açıklar.

Veri Kalıcılığı

Libre WebUI arka uç verilerini kapsayıcı içindeki /app/backend/data yolunda saklar. Compose bu yolu adlı birim olarak bağlar.

Görüntü doğrudan docker run ile başlatıldığında da bu yolu kullanır; veritabanı ön kontrolü ayrı /app/backend/temp altında kalır. Kapsayıcı yeniden oluşturulabilecekse /app/backend/data yolunu bağlayın.

Üretim için kararlı gizli değerler ayarlayın:

JWT_SECRET=replace-with-a-long-random-secret
ENCRYPTION_KEY=replace-with-64-hex-characters

Veri birimini şifreleme anahtarıyla birlikte yedekleyin.

Eski görüntüden doğrudan başlatılmış kapsayıcıyı kaldırmadan önce /app/backend/data/.encryption_key bulunduğunu doğrulayın veya ENCRYPTION_KEY değerini kaydedin. Eski görüntüler otomatik anahtarı yalnızca kapsayıcı katmanına yazmış olabilir; kapsayıcıyı silmek kalıcı veritabanını çözebilen tek anahtarı da siler.

Özel Work çalışma zamanı kullanıyorsanız görev dosyaları ayrı adlı Docker birimlerindedir ve normal /app/backend/data yedeğine girmez.

Genel Erişim

Depo Compose dosyaları WebUI’yi geri döngüye bağlar ve CORS_ORIGIN değerini doğrudan ayarlar. Kabuk veya .env değeri bu sabiti değiştirmez. libre-webui.environment kaydını düzenleyin veya compose.origin.yml olarak açık geçersiz kılma kaydedin:

services:
libre-webui:
environment:
CORS_ORIGIN: https://your-domain.example
BASE_URL: https://your-domain.example

Seçili Compose dosyasıyla birlikte uygulayın:

docker compose -f docker-compose.yml -f compose.origin.yml up -d

Sonra Libre WebUI’yi ters vekil veya yük dengeleyiciyle HTTPS arkasına koyun. WEBUI_BIND_ADDRESS değerini vekilin gerektirdiği kesin arayüze ayarlayın; güvenlik duvarı gerektirmedikçe tüm arayüzlerde yayımlamayın.

Sunucu, derlenmiş ön yüzü zaten verimli sunar: /js/ ve /assets/ altındaki karma adlı paketler brotli veya gzip ile sıkıştırılmış olarak ve bir yıllık immutable önbellek süresiyle gönderilir; index.html ile service worker ise no-cache işaretlidir, böylece yeni sürüm bir sonraki yüklemede alınır. Vekilin bu yolları yeniden sıkıştırması veya önbelleğe alması gerekmez; Accept-Encoding başlığını olduğu gibi iletin.

Yararlı Komutlar

docker compose ps
docker compose logs -f libre-webui
docker compose logs -f ollama
docker compose pull
docker compose up -d

İlgili Belgeler