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

VPS için en iyi Open WebUI alternatifleri nelerdir?

VPS üzerinde Open WebUI, LibreChat, Hollama ve OrionChat performansını karşılaştırın. RAM kullanımı, kullanıcı yönetimi 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önetim paneli ile birlikte gelir. Arayüz, RAM'in son gigabaytı için model ile rekabet ettiğinde 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 tüm bilgiler, Ağustos 2026 itibarıyla her projenin kendi dokümantasyonundan alınmıştır. Dört temel eksen, yalnızca sunucu internet üzerinden erişilebilir olduğunda önem kazanan 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 tuttuğu 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ına sahip değildir.
  • 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 arkasında MongoDB ve 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 bileşen değildir. Modelin kendisi en büyük bileşendir. 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, Ollama kütüphanesi sayfalarında Ağustos 2026 tarihinde 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'ın altında bir 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. Bu, dizüstü bilgisayar incelemelerinin asla değinmediği bir durumdur ve birkaç yüz megabaytlık bir sohbet arayüzünün, modelin çalışıp çalışmayacağını belirlediği noktadır. Eğer bu etiketlerin çok üzerinde bir sunucu boyutlandırıyorsanız, sadece CPU kullanılan bir VPS üzerinde 27B model için hesaplama yöntemi, arayüzün belirleyici bir faktör olmaktan ne kadar hızlı çıktığını göstermektedir.

Herhangi bir incelemedeki sayıya güvenmek yerine ölçüm yapın; buna bu yazı da dahildir. 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ımda tahsis edilir.

Open WebUI: birden fazla kullanıcı için varsayılan seçenek

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

Projenin 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 engelleme 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ü ile 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 projelerden daha fazla bellek tüketir; performans sayfası, bu maliyeti oluşturan bileşenleri listeler. Varsayılan gömme (embedding) motoru, container içinde 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 geri 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 yazı yazarken arayüzün modelden tamamlama istemesini durdurur.

LibreChat: çok kullanıcılı, arka plan yığınıyla birlikte

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 doğrulama sistemine ihtiyaç duyduğunuzda değerlendirilmesi gereken bir çözümdür: LDAP ve OAuth2 giriş yöntemlerini belgeler ve kullanıcılar ile roller için bir yönetim paneli sunar. Bu yetenek, beraberinde bir yazılım yığınıyla 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 kendi bellek alanlarına ihtiyaç duyar; 4 GB RAM kapasiteli bir sunucuda bu, modelin kullanması gereken bellekten feragat etmek anlamına gelir.

Yükseltme işlemleri bir git operasyonudur ve kullanıcıların en sık hata yaptığı nokta burasıdır.

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

git pull, takip edilen docker-compose.yml dosyasında değişiklik yaptıysanız bir çakışma ile durur ve yükseltme işlemi yarım kalır. Değişikliklerinizi proje tarafından bunun için sağlanan docker-compose.override.yml dosyasına ekleyin ve gizli bilgileri .env içerisinde tutun. Her iki dosya da takip edilmediği için git pull bu dosyalara müdahale etmez.

LibreChat'i, librechat.yaml içerisindeki özel bir uç nokta (endpoint) 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 değerini, Ollama çalıştıran sunucunun adresiyle değiştirin. Ollama bu değeri dikkate almasa da apiKey alanı mevcut olmalıdır, bu nedenle bir yer tutucu (placeholder) kullanmak yeterlidir. Eğer LibreChat Docker içerisinde ve Ollama aynı makinede çalışıyorsa, container içindeki localhost ifadesi container'ın kendisini temsil eder; bu nedenle orada host.docker.internal kullanın.

Hollama ve OrionChat: tarayıcı tabanlı çalışma prensibi

Hollama, tarayıcı tabanlı bir uygulamayı küçük bir container üzerinden sunar. Sohbetler sunucuda değil, tarayıcınızın yerel 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 yeniden başlatma sonrasında arayüz geri gelmez. Bir reverse proxy arkasında çalıştırırken -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 isteği uygulama yerine engellenmiş ana makine hatası ile yanıtlar.

OrionChat daha ileri giderek hiçbir sunucu bileşeni barındırmaz. Depoyu klonlayın ve klasörü halihazırda kullandığınız web sunucusu ile sunun ya da index.html dosyasını doğrudan 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, sohbet sayısı 512'yi geçtiğinde en eski sohbetleri siler.

Her iki projede de giriş yapma özelliği yoktur, çünkü her ikisinin de kimlik doğrulama yapabilecek bir sunucusu bulunmaz. Bir dizüstü bilgisayarda bu durum sorun yaratmaz. Bir VPS üzerinde ise sayfanın asla 0.0.0.0 üzerinden yayınlanmaması gerektiği ve gözden kaçırılması daha kolay olan şu gerçek anlamına gelir: modeli sunucu değil, tarayıcı çağırır.

Bu tek gerçek, bu iki uygulamanın nerede kullanılabilir olduğunu belirler. Tarayıcınızın Ollama'ya doğrudan ulaşması gerekir, bu nedenle Ollama'nın sadece loopback üzerinde değil, daha geniş bir aralıkta dinleme yapması gerekir ve Ollama'nın hiçbir kimlik doğrulama mekanizması yoktur. Buradan iki tarayıcı kuralı doğar. HTTPS üzerinden sunulan bir sayfa, düz 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ı değiştirmek için belgelendirdiği yöntem, bir systemd geçersiz kılma (override) işlemidir.

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 komutu artık daha önce 127.0.0.1:11434 çıktısını verdiği yerde 0.0.0.0:11434 çıktısını vermelidir. Bu değişikliği yalnızca bir güvenlik duvarı veya kimlik doğrulama yapan bir proxy, porta kimin erişebileceğini kontrol ediyorsa yapın; çünkü açık bir 11434 portu, açık bir model sunucusu demektir ve toplu tarayıcılar yeni açılan bir genel porta hızla ulaşır. Aşağıdaki SSH tüneli bu sorunun tamamını ortadan kaldırır: sayfa bu durumda localhost kaynağı üzerinde çalışır, Ollama buna varsayılan olarak izin verir ve port asla makine 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_KEY değeri boş olmayan bir OPENAI_API_BASE_URL=http://model-host:8000/v1 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. Aynı temel URL ve aynı yer tutucu anahtar, sohbet penceresinin dışında da çalışır; kodlama aracısını halihazırda barındırdığınız modele yönlendirmek için gereken tek şey budur.

Hollama ve OrionChat, ayarlar kısmına yazdığınız herhangi bir uç noktaya yönlendirme yapabilir 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 size sağladığı en yararlı şeydir. Arayüzü küçük bir makineye, modeli ise belleğin olduğu yere koyun. Aynı zamanda Ollama'nın mı yoksa vLLM'in mi isteklere hizmet vermesi gerektiğine karar vermenin zamanı da budur; çünkü birden fazla kişi aynı anda modelle konuştuğunda bu ikisi çok farklı davranır. Eğer model sunucusu henüz mevcut değilse, bir VPS üzerinde Ollama çalıştırarak başlayın ve yalnızca CPU içeren bir makinede, bir çalıştırıcı seçmeden önce Ollama ile llama.cpp arasındaki karşılaştırmayı 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 onu bir VPN arkasına veya kimlik doğrulama içeren bir reverse proxy arkasına yerleştirmenizi önerir. Hiçbir giriş ekranı olmayan bir proje, en azından aynı muameleyi hak eder.

Herhangi bir şeye güvenmeden ö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 de aynı durumu daha net bir şekilde ifade eder.

Open WebUI giriş ekranını WEBUI_AUTH=False ile kapatmak, başka kimsenin erişemeyeceği bir makine için tek kullanıcılı bir ayardır. Ayrıca, halihazırda hesapları olan bir kurulumda bu ayarı uygulamayı reddeder ve You can't turn off authentication because there are existing users. mesajını verir.

Birinci yöntem: loopback adresine bağlayın ve SSH üzerinden erişin. Her portu 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 yayınlanmadığı için hiçbir şey taranamayacaktır. Hollama veya OrionChat için, model portunu aynı komutla -L 11434:127.0.0.1:11434 kullanarak yönlendirin ve Ollama'yı loopback üzerinde bırakın. Bu yöntem yalnızca SSH kurulumunuz kadar güçlüdür, bu yüzden onu yalnızca anahtar tabanlı SSH ve sıkılaştırılmış sshd ile eşleştirin.

İkinci yöntem: uygulama isteği görmeden önce kimlik doğrulaması yapan bir reverse proxy. Uygulamayı loopback üzerinde tutun, 443 numaralı portun kontrolünü proxy'ye verin ve önüne tek oturum açma (SSO) mekanizması 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ın. Ayrıca JWT_EXPIRES_IN değerini dört haftalık varsayılan süresinden kısaltın; çünkü Open WebUI belgeleri, Redis olmadan oturum kapatmanın token'ı geçersiz kılmadığını, 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ı korumaz ve o sayfadan farklı bir ana makine adına 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 ile yanıt verir 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.

Hangisini seçmeli

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ştiricileri takip edebileceğiniz güvenlik sıkılaştırma kılavuzları yayınlar. LDAP veya yönetim paneline ihtiyaç duyuyorsanız LibreChat kullanın; ancak bağımlı hale gelmeden önce docker stats ile altı servisinin ve modelinizin RAM kapasitenize uygun olduğunu doğrulayın. Eğer modelin RAM'in büyük kısmını tükettiği küçük bir sunucuda tek kişiyseniz, Hollama veya OrionChat'i bir SSH tüneli üzerinden sunun ve durum bilgisini tarayıcıda tutun. Bir VPS üzerinde yapılabilecek en yanlış tercih, herhangi birini önünde bir giriş ekranı olmadan 0.0.0.0 üzerinden dış dünyaya açmaktır.

FAQ

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

Kendi güvenlik dokümantasyonunda, veritabanı veya CI sunucusu gibi özel ve güvenilir ağlar için tasarlanmış bir yazılım olarak tanımlanmaktadır. Gerçek kullanıcı hesapları mevcuttur; ilk oluşturulan hesap yönetici olurken, sonrakiler onaylanana kadar pending durumunda kalır. Bu nedenle, giriş ekranı olmayan bir arayüze kıyasla çok daha güvenlidir. Yine de TLS destekli bir reverse proxy arkasında tutulmalı ve mümkünse tek oturum açma (SSO) yöntemi kullanılmalıdır. Docker'ın kendi iptables kurallarının arka planda 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, uygulama istemci tarafında çalıştığı için daha az kaynak tüketir. Sunucu yalnızca statik dosyaları gönderir; OrionChat ise herhangi bir uygulama container'ına ihtiyaç duymaz. Open WebUI ise bir Python süreci, veritabanı ve varsayılan olarak yerel bir embedding modeli çalıştırır; yalnızca embedding modeli için çalışan başına yaklaşık 500 MB bellek tüketimi belgelenmiştir. Özellikleri etkinleştirdikçe bu değerler değişeceğ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 destekler; 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 değişkenini, LibreChat için ise özel bir uç noktada baseURL değişkenini ayarlayın. vLLM veya OpenAI uyumlu başka bir sunucu için, /v1 soneki ile birlikte OPENAI_API_BASE_URL kullanın ve boş olmayan bir API anahtarı tanımlayı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ız tarafından erişilebilir olması gerekir.

Tarayıcı tabanlı sohbet arayüzüm neden Ollama'ya ulaşamıyor?

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, bu 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 ise HTTP ise, tarayıcı bu çağrıyı karışık içerik (mixed content) olarak değerlendirir ve 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.