Bu rehberde gerçek Ubuntu 24.04.4 LTS + Docker + Ollama qwen3:4b kurulumumuzun API katmanını ayrı olarak ele alıyoruz. /api/tags ile runtime ve model listesini, /api/chat ile gerçek inference zincirini curl üzerinden doğruluyor; host için 127.0.0.1:11434 ve Docker servisleri için http://ollama:11434 erişim desenini kullanıyor; CPU/RAM ve localhost port güvenliğini gerçek test çıktılarıyla inceliyoruz.
Host → 127.0.0.1:11434
├── GET /api/tags → model listesi
└── POST /api/chat → qwen3:4b inference
Docker eka-ai
└── http://ollama:11434Bu rehber, kurulu Ollama + qwen3:4b yapısının HTTP API tarafına odaklanır. Gerçek test sunucusunda host uygulamaları Ollama’ya http://127.0.0.1:11434 üzerinden erişirken aynı eka-ai Docker ağındaki servisler http://ollama:11434 adresini kullanabiliyor.
Bu ayrım önemlidir: bir container içindeki localhost o containerın kendisidir. Open WebUI veya n8n gibi ayrı containerlar Ollama’ya Docker DNS adı olan ollama üzerinden erişir. Host portu ise yalnız loopback üzerinde tutulur.
Host API: http://127.0.0.1:11434
Docker API: http://ollama:11434Gerçek kurulumda model indirilmeden önce /api/tags isteği HTTP 200 döndürdü ve models dizisi boş geldi. Bu sonuç, model bulunmasa bile Ollama HTTP runtime katmanının sağlıklı olduğunu kanıtladı.
Sorun giderirken önce bu testi yapmak faydalıdır. Endpoint cevap vermiyorsa model problemine geçmeden container, port bind ve servis loglarını kontrol edin.
curl -sS -w "\nHTTP %{http_code}\n" http://127.0.0.1:11434/api/tagsdocker logs --tail 80 ollamaAPI’nin çalıştığını doğruladıktan sonra qwen3:4b modelini container içindeki Ollama CLI ile indirdik. Gerçek model listesinde yaklaşık 2.5 GB boyut görüldü.
API metadata çıktımız model için 4.0B parameter_size, Q4_K_M quantization ve completion, tools, thinking yeteneklerini raporladı. Bunlar kayıt altına alınan gerçek test sürümüne aittir.
docker exec ollama ollama pull qwen3:4bdocker exec ollama ollama listCLI model listesi insan tarafından hızlı kontrol için kullanışlıdır; /api/tags ise entegrasyonların tüketebileceği JSON model listesini verir. Gerçek testte qwen3:4b burada model adı, boyut ve model detaylarıyla göründü.
Open WebUI veya n8n model listesini göremiyorsa aynı endpointi hosttan ve gerekiyorsa ilgili container içinden çağırarak sorunun Ollama mı yoksa container ağı mı olduğunu ayırabilirsiniz.
curl -sS http://127.0.0.1:11434/api/tagsdocker exec ollama ollama listModelin yalnız listelenmesi inference zincirinin çalıştığını kanıtlamaz. Bu nedenle /api/chat endpointine gerçek kullanıcı mesajı gönderdik ve stream:false kullanarak tek JSON yanıt aldık.
Gerçek test cevabında assistant içeriği EKA-OLLAMA-TEST-BASARILI oldu ve istek done:true ile tamamlandı. CPU tabanlı bu test yaklaşık 18 saniye sürdü.
curl -sS http://127.0.0.1:11434/api/chat -H 'Content-Type: application/json' -d '{"model":"qwen3:4b","messages":[{"role":"user","content":"Sadece EKA-OLLAMA-TEST-BASARILI yaz."}],"stream":false}'Uçtan uca testte öncelikle model adının qwen3:4b olduğunu, message.role değerinin assistant geldiğini, message.content içinde beklenen yanıtı ve done:true durumunu kontrol ettik.
Qwen3 ailesinin test çıktısında thinking alanı da bulunuyordu. Uygulamanız yalnız son kullanıcı cevabını gösterecekse asıl içerik olarak message.content alanını ele almanız daha temiz bir arayüz sağlar.
Beklenen temel alanlar:
model
message.role
message.content
done
done_reason
total_durationGerçek chat isteğinden sonra ollama ps çıktısı qwen3:4b modelini CPU üzerinde yüklü gösterdi. Yakalanan anda context 4096 ve processor 100% CPU olarak görünüyordu.
docker stats çıktısında Ollama containerı yaklaşık 3.059 GiB bellek kullanıyordu. Bu değerler yalnız test anına aittir; prompt uzunluğu, context, model, concurrency ve Ollama sürümüne göre değişir.
docker exec ollama ollama psdocker stats --no-stream ollamaHost üzerinde 127.0.0.1 doğru adrestir; ancak başka bir Docker containerında localhost Ollama containerını göstermez. Her iki servis aynı user-defined ağdaysa Docker DNS sayesinde ollama hostname’i çözülebilir.
Gerçek final özetimiz host API için http://127.0.0.1:11434, Docker içi API için http://ollama:11434 adresini doğruladı. Bu yapı daha sonra Open WebUI ve n8n entegrasyonlarında kullanıldı.
docker network inspect eka-aidocker exec n8n node -e "fetch('http://ollama:11434/api/tags').then(r=>r.text()).then(console.log)"Ollama API’yi internete doğrudan yayınlamak yerine gerçek kurulumda Docker publish işlemini 127.0.0.1:11434:11434 şeklinde yaptık. ss çıktısı da portun yalnız loopback adresinde dinlediğini doğruladı.
Uzak sistemlerin API’ye erişmesi gerekiyorsa doğrudan 0.0.0.0:11434 açmak yerine TLS, kimlik doğrulama, reverse proxy, VPN veya private network gibi ek erişim kontrolleri planlayın.
ss -lntp | grep ':11434'docker ps --filter name='^/ollama$'curl bağlantı kuramıyorsa önce containerın çalıştığını ve 127.0.0.1:11434 port bindini kontrol edin. /api/tags HTTP 200 dönüyor fakat models boşsa runtime çalışıyor ancak henüz model kurulmamış olabilir.
Model listede var fakat chat başarısızsa docker logs ollama çıktısını inceleyin. Chat çalışıyor ama yavaşsa ollama ps ve docker stats ile CPU/RAM durumuna bakın; CPU-only bir VPS üzerinde model ilk yüklenirken ek gecikme normal olabilir.
docker ps --filter name='^/ollama$'curl -sS http://127.0.0.1:11434/api/tagsdocker logs --tail 150 ollamadocker exec ollama ollama ps
docker stats --no-stream ollamaModel listesini kontrol etme ve gerçek chat isteği gönderme, entegrasyon sorunlarında en hızlı iki doğrulamadır. Buna çalışan model, container logu ve port kontrolünü eklediğinizde problemin hangi katmanda olduğunu kısa sürede bulabilirsiniz.
Aşağıdaki komutlar bizim gerçek Ubuntu 24.04 test akışımızda kullanılan host ve Docker içi erişim desenini özetler.
curl -sS http://127.0.0.1:11434/api/tagscurl -sS http://127.0.0.1:11434/api/chat -H 'Content-Type: application/json' -d '{"model":"qwen3:4b","messages":[{"role":"user","content":"Merhaba"}],"stream":false}'docker exec ollama ollama psss -lntp | grep ':11434'ollama_data volume model dosyalarını containerdan bağımsız kalıcı tutar. Container image güncellemesi veya yeniden oluşturma öncesinde volume ve VPS snapshot stratejisi belirlemek üretimde önemlidir.
Reboot veya güncelleme sonrasında container durumu, /api/tags, gerçek /api/chat testi ve 11434 port bindini yeniden doğrulayın. Böylece yalnız process’in açık olmasını değil gerçek model inference zincirini de test etmiş olursunuz.
docker ps --filter name='^/ollama$'curl -sS http://127.0.0.1:11434/api/tagsdocker exec ollama ollama listss -lntp | grep ':11434'Bu gerçek kurulumda host API 127.0.0.1:11434 üzerinden kullanıldı.
Kurulu Ollama modellerini JSON olarak listelemek ve API runtime erişimini hızlıca doğrulamak için kullandık.
Gerçek ilk testimizde HTTP 200 + models:[] runtime’ın çalıştığını ancak henüz model indirilmediğini gösterdi.
model, messages ve stream:false içeren JSON gövdesini curl ile /api/chat endpointine POST ederek gerçek inference testi yaptık.
Gerçek testte assistant content alanı EKA-OLLAMA-TEST-BASARILI döndü.
Bu testte yanıtı tek JSON nesnesi halinde kolayca doğrulamak için stream:false kullandık.
Bu mimaride http://127.0.0.1:11434 kullanılır.
eka-ai ağı üzerinde http://ollama:11434 kullanıldı.
localhost ilgili containerın kendisini gösterir; ayrı Ollama containerına Docker DNS adıyla erişmek gerekir.
Gerçek ollama list çıktısında yaklaşık 2.5 GB olarak görünüyordu.
Yakalanan test anında Ollama containerı yaklaşık 3.059 GiB kullanıyordu.
Bu rehberde açmadık; yalnız 127.0.0.1 üzerinde tuttuk. Uzak erişim için ek güvenlik katmanları planlayın.
ollama ps ve docker stats ile modelin CPU/RAM kullanımını kontrol edin. CPU-only inference model ve context’e göre yavaş olabilir.
Container durumu, /api/tags, gerçek /api/chat isteği, model listesi ve 11434 loopback bindini tekrar kontrol edin.
Ollama, Qwen3, Open WebUI ve n8n gibi self-hosted AI servislerini kendi altyapınızda çalıştırmak için EKA Sunucu Linux VPS paketlerini inceleyebilirsiniz.
Güncellendi: 10.08.2026