SSD Nodes Learn 🎉 VPS $4.99/aydan başlayan
Rehberler Matt ConnorYazan Matt Connor · Güncellendi 2026-08-07

VPS için en iyi Open WebUI alternatifleri nelerdir?

Open WebUI, LibreChat, Hollama ve OrionChat projelerini VPS üzerinde karşılaştırıyoruz. RAM tüketimi, kimlik doğrulama ve uzaktan Ollama erişimi gibi kritik farkları inceleyin.

Bir VPS üzerinde hangi Open WebUI alternatifi kullanılmalı

Open WebUI alternatifleri neredeyse her zaman, RAM'in ucuz olduğu ve hiçbir servisin genel bir adreste dinleme yapmadığı dizüstü bilgisayarlar üzerinden kıyaslanır. Bir VPS ise bu iki gerçeği de değiştirir ve bu durum sıralamayı etkiler. İkinci bir kişi sisteme giriş yaptığı anda Open WebUI doğru varsayılan seçenek olmaya devam eder; çünkü gerçek kullanıcı hesapları ve bir yönetici paneli ile gelir. Arayüz, son gigabayt RAM için model ile rekabet ettiğinde ise daha hafif projeler öne çıkar. Bu başarının bedeli ise kimlik doğrulamadır: bu projelerin hiçbirinde kimlik doğrulama özelliği bulunmaz.

Aşağıdaki bilgiler, Ağustos 2026 itibarıyla her projenin kendi dokümantasyonundan alınmıştır. Dört eksen, yalnızca sunucu internetten erişilebilir olduğunda ortaya çıkan kriterlerdir.

Genel IP adresinde yalnızca önem taşıyan dört eksen

  • Modelin yanındaki bellek. Model sunucusu, sistemdeki en maliyetli süreçtir. Arayüzün kullandığı her megabayt, modelin kullanamayacağı bir megabayt demektir.
  • Kimlik doğrulama. Bu projelerin bazılarında kullanıcı hesapları ve roller bulunur. Diğerleri ise sadece dizüstü bilgisayarınızda çalıştıklarını varsayar ve hiçbir giriş mekanizması barındırmaz.
  • Uzak çıkarım (remote inference). Yalnızca 127.0.0.1:11434 adresine erişebilen bir arayüz, modeli arayüzle aynı makinede çalışmaya zorlar.
  • Bakım. SQLite dosyası içeren tek bir container ile MongoDB ve arkasında bir vektör veritabanı bulunan altı container'lı bir yapı, birbirinden farklı iş yükleridir.

Model arayüz için ne kadar RAM bırakıyor

Arayüz, sunucudaki en büyük kaynak tüketicisi değildir. Modelin kendisi öyledir. Yayınlanan indirme boyutları size alt sınırı verir; çünkü model yanıt verirken ağırlıkların bellekte yüklü olması gerekir ve bağlam önbelleği (context cache) ayrıldığında gerçek bellek kullanımı indirme boyutundan daha yüksek olur.

ChartPublished download size of common Ollama models, August 2026
The data behind this chart
[
  {
    "label": "llama3.2:3b",
    "download_gb": "2.0"
  },
  {
    "label": "qwen3:4b",
    "download_gb": "2.5"
  },
  {
    "label": "gemma3:4b",
    "download_gb": "3.3"
  },
  {
    "label": "qwen3:8b",
    "download_gb": "5.2"
  }
]

Bunlar, Ağustos 2026'da Ollama kütüphanesi sayfalarında yayınlanan rakamlardır. Bunlar ölçüm değil, yayınlanmış boyutlardır. 4 GB RAM'e sahip bir VPS üzerinde, qwen3:4b modeli 2.5 GB boyutuyla işletim sistemi ve diğer her şey için 1.5 GB'tan az alan bırakır; ayrıca konuşma uzadıkça bağlam önbelleği bu alandan tüketmeye başlar. qwen3:8b modeli ise 5.2 GB boyutuyla bu sunucuya hiçbir şekilde sığmaz. Dizüstü bilgisayar incelemelerinde asla değinilmeyen durum budur ve birkaç yüz megabaytlık bir sohbet arayüzünün, modelin çalışıp çalışmayacağını belirlediği nokta burasıdır.

İncelemelerdeki hiçbir sayıya, buna dahil, güvenmek yerine ölçüm yapın. docker stats --no-stream komutunu konteyner başladıktan bir dakika sonra değil, gerçek kullanımdan bir saat sonra çalıştırın; çünkü önemli olan bellek, ilk kullanım sırasında ayrılan bellektir.

Open WebUI: birden fazla kullanıcı için varsayılan yapılandırma

Open WebUI tek bir imaj üzerinden çalışır ve verilerini tek bir birimde (volume) tutar.

docker run -d -p 127.0.0.1:3000:8080 -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

Proje README dosyasındaki komut, tüm arayüzleri dinleyen -p 3000:8080 portunu dışarıya açar. 127.0.0.1: ön eki, portu yalnızca yerel döngü (loopback) üzerinde tutar. Bir VPS üzerinde bu ön ek, satırdaki diğer her şeyden daha önemlidir; çünkü Docker kendi iptables kurallarını yazar ve dışarıya açılan bir port, ufw üzerindeki reddetme kurallarınızı geçersiz kılar.

Sayfaya aşağıda açıklanan bir tünel veya proxy aracılığıyla erişin ve ardından ilk hesabı oluşturun. Bu hesap yönetici yetkilerine sahip olur. Sonraki kayıtlar, DEFAULT_USER_ROLE dokümantasyonunda belirtilen varsayılan pending rolüyle oluşturulur; bu sayede sayfaya ulaşan yabancı bir kullanıcı, bir yönetici onay verene kadar modelinizi kullanamaz.

Open WebUI, daha fazla işlev sunduğu için aşağıda belirtilen projelere göre daha fazla bellek tüketir; performans sayfası, bu tüketime neden olan bileşenleri listeler. Varsayılan yerleştirme (embedding) motoru, container içerisinde bir sentence-transformers modeli yükler ve bu işlem işçi süreci başına yaklaşık 500 MB bellek gerektirir. RAG_EMBEDDING_ENGINE=ollama ayarını yapmak, bu görevi halihazırda çalıştırdığınız model sunucusuna devreder. AUDIO_STT_ENGINE=webapi, yerel bir konuşmadan metne (speech-to-text) modelinin yüklenmesini engeller. SQLite üzerinde DATABASE_POOL_SIZE ayarlanmadığında, havuz büyük bir dahili boyuta döner ve her bağlantı kendi sayfa önbelleğini ve bellek haritasını oluşturur; bu nedenle küçük bir sunucuda DATABASE_POOL_SIZE=8 ve DATABASE_SQLITE_PRAGMA_MMAP_SIZE=0 değerlerini ayarlayın. ENABLE_AUTOCOMPLETE_GENERATION=False, kullanıcı hala yazmaya devam ederken arayüzün modelden tamamlama istemesini durdurur.

LibreChat: çok kullanıcılı, arka planında bir yığın ile

git clone https://github.com/danny-avila/LibreChat.git
cd LibreChat
cp .env.example .env
docker compose up -d

Arayüz 3080 numaralı port üzerinden yanıt verir. LibreChat, basit bir giriş kutusundan ziyade bir kimlik sistemine ihtiyaç duyduğunuzda değerlendirilmesi gereken bir çözümdür: LDAP ve OAuth2 girişlerini belgeler ve kullanıcılar ile roller için bir yönetim paneli içerir. Bu yetenek, beraberinde bir yığın ile gelir.

ChartContainers a default install adds, not counting the model server
The data behind this chart
[
  {
    "label": "OrionChat",
    "containers": 0,
    "notes": "static files, served by a web server you already run"
  },
  {
    "label": "Hollama",
    "containers": 1,
    "notes": "one container serving a browser app"
  },
  {
    "label": "Open WebUI",
    "containers": 1,
    "notes": "application and SQLite in one image"
  },
  {
    "label": "LibreChat",
    "containers": 6,
    "notes": "api, admin panel, MongoDB, Meilisearch, pgvector, RAG API"
  }
]

Varsayılan compose dosyası 6 adet servis başlatır: api, admin panel, MongoDB, Meilisearch, pgvector, RAG API. Bunların hiçbiri modelin kendisi değildir. MongoDB ve pgvector ayrı ayrı bellek tüketir; 4 GB kapasiteli bir sunucuda bu, modelin ihtiyaç duyduğu bellekten çalınması anlamına gelir.

Yükseltme işlemleri bir git operasyonudur ve insanların en çok hata yaptığı kısım burasıdır.

docker compose down
git pull
docker compose pull
docker compose up -d

git pull, takip edilen docker-compose.yml dosyasını düzenlediyseniz bir çakışma ile durur ve yükseltme işlemi yarım kalır. Değişikliklerinizi projenin bunun için sağladığı docker-compose.override.yml dosyasına ekleyin ve gizli bilgileri .env içinde tutun. Her iki dosya da takip edilmediği için git pull bunlara dokunmaz.

LibreChat'i, librechat.yaml içindeki özel bir uç nokta ile kendi model sunucunuza yönlendirin.

endpoints:
  custom:
    - name: "Ollama"
      apiKey: "ollama"
      baseURL: "http://model-host:11434/v1/"
      models:
        default: ["llama3.2"]
        fetch: true
      titleConvo: true
      titleModel: "current_model"
      modelDisplayLabel: "Ollama"

model-host kısmını, Ollama çalıştıran sunucunun adresiyle değiştirin. Ollama değerini görmezden gelse bile apiKey alanının mevcut olması gerekir, bu nedenle bir yer tutucu kullanmak yeterlidir. Eğer LibreChat Docker içinde çalışıyor ve Ollama aynı makinede bulunuyorsa, container içindeki localhost ifadesi container'ın kendisini temsil eder; bu yüzden orada host.docker.internal kullanın.

Hollama ve OrionChat: tarayıcı işi üstlenir

Hollama, tarayıcı tabanlı bir uygulamayı küçük bir container üzerinden sunar. Sohbetler sunucuda değil, tarayıcınızın depolama alanında tutulur.

docker run -d --restart unless-stopped -p 127.0.0.1:4173:4173 --name hollama ghcr.io/fmaclen/hollama:latest

Bu komutun README sürümü, durdurulduğunda container'ı silen --rm bayrağını kullanır; bu nedenle arayüz yeniden başlatma sonrasında geri gelmez. Bir reverse proxy arkasında -e VITE_ALLOWED_HOSTS='chat.example.com' eklenmelidir, çünkü imaj yalnızca ana makine localhost değerine izin verir ve başka bir ana makine adı için gelen isteklere uygulama yerine engellenmiş ana makine hatası döndürür.

OrionChat daha ileri gider ve hiçbir sunucu bileşeni içermez. Depoyu klonlayın ve klasörü halihazırda çalıştırdığınız web sunucusu ile sunun veya index.html dosyasını diskten açın. API anahtarları tarayıcının localStorage alanında saklanır, sohbet geçmişi tarayıcıda kalır ve uygulama, sayı 512'yi geçtiğinde en eski sohbetleri siler.

Her iki projede de giriş yapma özelliği yoktur, çünkü her ikisinin de bunu doğrulayabilecek bir sunucusu yoktur. Bir dizüstü bilgisayarda bu sorun teşkil etmez. Bir VPS üzerinde ise sayfanın asla 0.0.0.0 üzerinde yayınlanmaması gerektiği ve gözden kaçması daha kolay olan bir durum anlamına gelir: tarayıcı sunucuyu değil, modeli çağırır.

Bu tek gerçek, bu ikisinin nerede kullanılabilir olduğunu belirler. Tarayıcınızın Ollama'ya doğrudan ulaşması gerekir, bu nedenle Ollama'nın loopback dışında da dinleme yapması gerekir ve Ollama'nın hiçbir kimlik doğrulama mekanizması yoktur. Bundan iki tarayıcı kuralı doğar. HTTPS üzerinden sunulan bir sayfa, düz bir HTTP uç noktasını çağıramaz ve konsol Mixed Content: The page at 'https://chat.example.com/' was loaded over HTTPS, but requested an insecure resource 'http://203.0.113.10:11434/api/tags'. This request has been blocked. çıktısını verir. Başka bir kaynağa yapılan herhangi bir çağrı, siz o kaynağa izin verene kadar has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource ile reddedilir.

Ollama'nın her iki ayarı da değiştirmek için belgelendirdiği yöntem bir systemd override dosyasıdır.

sudo systemctl edit ollama.service
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_ORIGINS=https://chat.example.com"
sudo systemctl daemon-reload
sudo systemctl restart ollama
sudo ss -lntp | grep 11434

ss artık daha önce 127.0.0.1:11434 yazdırdığı yerde 0.0.0.0:11434 yazdırmalıdır. Bu değişikliği yalnızca bir güvenlik duvarı veya kimlik doğrulayan bir proxy, porta kimin erişebileceğini zaten kontrol ediyorsa yapın; çünkü açık bir 11434 portu, açık bir model sunucusu demektir ve toplu tarayıcılar yeni bir genel portu hızla bulur. Aşağıdaki SSH tüneli tüm bu sorunu ortadan kaldırır: sayfa o zaman localhost kaynağında çalışır, Ollama buna varsayılan olarak izin verir ve port asla makinenin dışına çıkmaz.

Her biri uzak bir Ollama veya vLLM uç noktası kullanabilir mi

Open WebUI bunu yapabilir ve bağlantı sunucu tarafında kurulur. OLLAMA_BASE_URL=http://model-host:11434, onu Ollama'ya yönlendirir. vLLM veya OpenAI uyumlu başka bir sunucu için OPENAI_API_BASE_URL=http://model-host:8000/v1 değerini boş olmayan bir OPENAI_API_KEY ile ayarlayın ve gerekli olan /v1 sonekini koruyun. OPENAI_API_BASE_URLS, noktalı virgülle ayrılmış birden fazla arka ucu kabul eder.

LibreChat, yukarıda gösterilen özel uç noktanın baseURL ayarı aracılığıyla bunu yapabilir. Bu istek de sunucudan çıktığı için hiçbir tarayıcı kuralı geçerli olmaz.

Hollama ve OrionChat, ayarlar kısmına yazdığınız herhangi bir uç noktaya yönlendirilebilir ancak istek tarayıcınızdan çıkar. Yukarıdaki bölümdeki her şey onlar için geçerlidir, buradaki diğer hiçbir şey için geçerli değildir.

Arayüzü modelden ayırmak, uzak bir uç noktanın sağladığı en faydalı özelliktir. Arayüzü küçük bir kutuya, modeli ise belleğin bulunduğu yere koyun. Aynı zamanda Ollama mı yoksa vLLM mi istekleri karşılamalı konusuna karar vermenin zamanı da budur; çünkü birden fazla kişi aynı anda modelle konuştuğunda bu ikisi çok farklı davranır. Model sunucusu henüz mevcut değilse, bir VPS üzerinde Ollama çalıştırarak başlayın ve yalnızca CPU içeren bir kutuda, bir çalıştırıcı seçmeden önce Ollama ile llama.cpp karşılaştırmasını okuyun.

Giriş ekranı olmayan bir sohbet arayüzünü asla 0.0.0.0 üzerinde yayınlamayın

Open WebUI'ın güvenlik sıkılaştırma sayfası, projenin "veritabanları, container kayıt defterleri ve CI sunucuları gibi diğer self-hosted altyapılarla benzer şekilde, özel ve güvenilir ağlar için tasarlandığını" belirtir ve uygulamanın bir VPN arkasına veya kimlik doğrulama katmanı olan bir reverse proxy arkasına yerleştirilmesini önerir. Hiçbir giriş ekranı bulunmayan bir proje, en azından aynı düzeyde bir korumayı hak eder.

Güven duymadan önce neyin dinlemede olduğunu kontrol edin.

sudo ss -lntp | grep -E ':(3000|3080|4173|11434)'

127.0.0.1:3000 yazan bir satır, istediğiniz durumdur. 0.0.0.0:3000 yazan bir satır, sohbet arayüzünüzün herkese açık internete açık olduğu anlamına gelir. Kendi makinenizden curl -sI http://YOUR.VPS.IP:3000 komutunun HTTP/1.1 200 OK yanıtını vermesi, aynı durumu daha net bir şekilde ifade eder.

Open WebUI giriş ekranını WEBUI_AUTH=False ile kapatmak, yalnızca başkasının erişemediği bir makine için geçerli olan tek kullanıcılı bir ayardır. Bu ayar, halihazırda hesapları bulunan bir kurulumda You can't turn off authentication because there are existing users. mesajıyla reddedilir.

Birinci yöntem: loopback adresine bağlayın ve SSH üzerinden erişin. Tüm portları 127.0.0.1 üzerinde yayınlayın, ardından ihtiyacınız olanı yönlendirin: ssh -N -L 3000:127.0.0.1:3000 you@vps.example.com ve dizüstü bilgisayarınızda http://localhost:3000 adresini açın. Hiçbir şey dışarıya açık olmadığı için tarama yapılamaz. Hollama veya OrionChat için, model portunu aynı komutta -L 11434:127.0.0.1:11434 ile yönlendirin ve Ollama'yı loopback üzerinde bırakın. Bu yöntemin gücü SSH kurulumunuzla sınırlıdır, bu nedenle sadece anahtar tabanlı SSH ve sıkılaştırılmış sshd ile birlikte kullanın.

İkinci yöntem: uygulama isteği görmeden önce kimlik doğrulaması yapan bir reverse proxy. Uygulamayı loopback üzerinde tutun, 443 numaralı portu proxy'ye bırakın ve önüne bir single sign-on (SSO) çözümü koyun. Docker Compose etiketleri ile yönetilen Traefik ve kimlik sağlayıcı olarak Authentik, sunucudaki her uygulama için tek bir giriş ve tek bir sertifika sağlar. Open WebUI'ı TLS (transport layer security) arkasına aldığınızda, WEBUI_SESSION_COOKIE_SECURE=true ve WEBUI_SESSION_COOKIE_SAME_SITE=strict ayarlarını yapılandırın. Ayrıca JWT_EXPIRES_IN değerini varsayılan dört haftalık süreden daha kısa bir süreye indirin; çünkü Open WebUI belgeleri, Redis olmadan oturum kapatmanın token'ı geçersiz kılmadığını ve token'ın kendi süresi dolana kadar kullanılabilir kaldığını belirtir.

İkinci yöntem, yalnızca tarayıcı tabanlı projeleri kurtarmaz. Sayfanın önündeki bir proxy, model uç noktasını (endpoint) korumaz ve o sayfadan farklı bir ana makine adına (hostname) yapılan bir fetch isteği oturum çerezinizi taşımaz. Bu nedenle, Ollama'nın önündeki kimlik doğrulayıcı proxy, giriş formuna yönlendirme yapar ve sohbet başarısız olur. Model uç noktasını sayfa ile aynı ana makine adı altında yönlendirin ya da birinci yöntemi kullanın.

Hangisi seçilmeli

Sizden başka birinin kullanacağı bir sistem kuruyorsanız Open WebUI çalıştırın. Gerçek kullanıcı hesapları desteklenir, yeni kullanıcılar onay kuyruğuna düşer ve geliştiriciler tarafından sağlanan güvenlik sıkılaştırma kılavuzları uygulanabilir. LDAP veya yönetim paneline ihtiyaç duyuyorsanız LibreChat kullanın; ancak LibreChat'in altı servisi ile modelinizin RAM kapasitenize uygun olup olmadığını docker stats ile doğrulayın. Eğer küçük bir sunucuda tek kullanıcıysanız ve model zaten RAM'in büyük kısmını tüketiyorsa, Hollama veya OrionChat'i bir SSH tüneli üzerinden servis edin ve oturum durumunu tarayıcıda tutun. Bir VPS üzerinde bu uygulamalardan herhangi birini, önünde bir giriş ekranı olmadan doğrudan 0.0.0.0 üzerinden dış dünyaya açmak hatalı bir yapılandırmadır.

FAQ

Open WebUI doğrudan genel bir IP adresi üzerinden dış dünyaya açılmalı mı?

Kendi güvenlik dokümantasyonu, bu yazılımı tıpkı bir veritabanı veya CI sunucusu gibi özel ve güvenilir ağlar için tasarlanmış bir araç olarak tanımlar. Yazılım gerçek kullanıcı hesaplarına sahiptir; ilk oluşturulan hesap yönetici olurken, sonraki hesaplar onaylanana kadar pending durumunda kalır. Bu yönüyle giriş ekranı olmayan arayüzlerden çok daha güvenlidir. Yine de yazılımı TLS destekli bir reverse proxy arkasına almalı ve mümkünse tek oturum açma (SSO) yöntemini kullanmalısınız. Docker'ın kendi iptables kurallarının sizin bilginiz dışında portu internete açmasını engellemek için container portunu 127.0.0.1:3000:8080 olarak yayınlayın.

Bir VPS üzerinde en az RAM tüketen Open WebUI alternatifi hangisidir?

Tarayıcı tabanlı olan Hollama ve OrionChat, çünkü uygulama istemci tarafında çalışır. Sunucu yalnızca statik dosyaları gönderir; OrionChat ise herhangi bir uygulama container'ına ihtiyaç duymaz. Open WebUI ise bir Python süreci, bir veritabanı ve varsayılan olarak yerel bir embedding modeli bellekte tutar. Sadece embedding modeli için çalışan başına yaklaşık 500 MB RAM tüketimi belgelenmiştir. Bu değerler etkinleştirdiğiniz özelliklere göre değişebileceğinden, kendi sunucunuzdaki değerleri docker stats --no-stream ile doğrulayın.

Bu sohbet arayüzleri başka bir sunucudaki Ollama servisini kullanabilir mi?

Open WebUI ve LibreChat bunu yapabilir; bağlantı sunucu tarafından kurulduğu için tarayıcı kısıtlamaları geçerli değildir. Open WebUI için OLLAMA_BASE_URL, LibreChat için ise özel bir uç nokta (endpoint) içerisinde baseURL ayarını yapın. vLLM veya OpenAI uyumlu başka bir sunucu için OPENAI_API_BASE_URL değişkenini /v1 soneki ve boş olmayan bir API anahtarı ile kullanın. Hollama ve OrionChat de herhangi bir adrese yönlendirilebilir, ancak istek tarayıcınızdan geldiği için uç noktanın tarayıcınızdan erişilebilir olması gerekir.

Tarayıcı tabanlı sohbet arayüzüm neden Ollama'ya erişemiyor?

Neredeyse tüm vakalar iki nedenden kaynaklanır. Ollama varsayılan olarak 127.0.0.1:11434 adresine bağlanır; bu nedenle OLLAMA_HOST değiştirilmediği sürece başka bir makinedeki tarayıcı ona ulaşamaz. Ayrıca Ollama, çapraz kökenli (cross-origin) istekleri yalnızca localhost üzerinden kabul eder. Bu yüzden kendi alan adınızdan sunulan bir sayfa, o köken OLLAMA_ORIGINS listesine eklenmediği sürece No 'Access-Control-Allow-Origin' header is present on the requested resource hatasıyla reddedilir. Eğer sayfa HTTPS, uç nokta HTTP ise tarayıcı, isteği karma içerik (mixed content) olarak değerlendirip Ollama'ya ulaşmadan engeller. Her iki değişkeni de bir systemctl edit ollama.service geçersiz kılma dosyasında ayarlayın veya portu SSH üzerinden yönlendirin; sorun çözülecektir.