VPS üzerinde rootless Podman ile Ollama çalıştırma
VPS üzerinde rootless Podman ile Ollama kurulumu için gereken adımları öğrenin. Lingering ayarı, Quadlet kullanımı ve SELinux etiketleme ile güvenli bir yapılandırma oluşturun.
Ollama'yı VPS üzerinde rootless Podman ile çalıştırmak
Ollama'yı bir sunucuda rootless Podman ile çalıştırmak için, masaüstü kurulum rehberlerinin genellikle atladığı beş koşulun sağlanması gerekir. Konteynerin sahibi yetkisiz (unprivileged) özel bir kullanıcı olmalıdır. Bu kullanıcı için "lingering" özelliği etkinleştirilmelidir; böylece siz oturumu kapattıktan sonra da konteyner çalışmaya devam eder. Bir Quadlet dosyası konteyneri systemd'ye devreder, bu sayede sunucu yeniden başlatıldığında servis otomatik olarak ayağa kalkar. SELinux'un zorunlu olduğu dağıtımlarda, model dizini uygun SELinux etiketini taşımalıdır. API yalnızca loopback üzerinde dinleme yapmalı ve erişim bir SSH (secure shell) tüneli üzerinden sağlanmalıdır.
Ollama, büyük dil modelleri (LLM) için bir sunucudur. Model ağırlıklarını diskte saklar, belleğe yükler ve 11434 numaralı port üzerinden gelen HTTP isteklerini yanıtlar. Herhangi bir giriş sistemi, API anahtarı veya kullanıcı hesabı yoktur; bu nedenle ağ erişimi tek güvenlik kontrolüdür. Podman, konteynerleri daemon olmadan ve root yetkisi gerektirmeden çalıştırır; bu sayede konteynerden çıkabilecek herhangi bir süreç, sıradan ve yetkisiz bir kullanıcı olarak başlar. Çalışma zamanı karşılaştırmasını öncelikle incelemek isterseniz, Podman ve Docker'ın VPS üzerinde nasıl farklılaştığına göz atın. Eğer konteynerlerden tamamen kaçınmak isterseniz, Ollama'yı doğrudan VPS üzerine kurmak daha kısa bir yoldur.
SSD Nodes, imajları arasında Fedora sunar ve Fedora varsayılan olarak hem Podman hem de SELinux (security-enhanced Linux) ile gelir. Aşağıdaki her komut, Podman 5 veya daha yeni bir sürümünü barındıran tüm dağıtımlarda çalışır.
Sunucu üzerinde dizüstü bilgisayar sürümünün neden değişiklik gerektirdiği
Fedora Magazine, 5 Ağustos 2026 tarihinde bu yığın hakkında net bir rehber yayımladı: Yazan Monshed tarafından hazırlanan Fedora Linux üzerinde Podman ile Yerel Ollama Çalıştırma. Bu rehber, araçlarla geçirilecek ilk saat için iyi bir başlangıçtır. Ancak rehber bir dizüstü bilgisayarı hedeflemektedir ve içerdiği dört tercih, genel IP adresine sahip bir makinede farklı sonuçlar doğurur.
- Konteyneri düz bir
podman run -dkomutuyla başlatır. Elle başlatılan bir konteyner, yeniden başlatma sonrasında kendiliğinden ayağa kalkmaz; çünkü başlatılması için herhangi bir talimat verilmemiştir. - Değişken bir etiket olan
ollama/ollamakullanır. Dizüstü bilgisayarda davranışın değiştiğini anında fark edersiniz. Sunucuda ise bunun ilk belirtisi, gece yarısı çalışmayı durduran bir betik olacaktır. - Tüm arayüzleri bağlayan
-p 11434:11434ile yayın yapar. Ev tipi bir yönlendiricinin arkasında bu, internetten erişilemez durumdadır. Bir VPS üzerinde ise bu, üzerinde parola bulunmayan herkese açık bir çıkarım (inference) API'si anlamına gelir. - Kendi kullanıcı oturumunuzla çalışır. Bir sunucuda, konteynerin sahibi olan hesap başka hiçbir şeye sahip olmamalıdır; böylece bir güvenlik ihlali durumunda saldırgan boş bir ev dizininde kalır.
Bunların hiçbiri, rehberin yazıldığı makine için yanlış değildir. Her bir madde, makine her yerden erişilebilir olduğunda ve başında kimse oturmadığında yeniden gözden geçirmeniz gereken bir karardır.
Ayrıcalıksız kullanıcıyı oluşturun ve subuid değerlerini kontrol edin
Rootless Podman, container içindeki kullanıcı kimliklerini (UID), ana makinedeki kullanılmayan bir kimlik bloğuyla eşler. Bu blok /etc/subuid ve /etc/subgid dosyalarında tanımlanır. Bu tanımlama olmadan rootless container'lar başlatılamaz.
sudo dnf install -y podman # or: sudo apt install -y podman
sudo useradd --create-home --shell /bin/bash --comment "Ollama container owner" ollama
sudo passwd --lock ollama
grep ollama /etc/subuid /etc/subgidgrep komutu, her dosyadan birer tane olmak üzere, her biri 65536 kimlikten oluşan bir aralığı belirten iki satır çıktı vermelidir:
/etc/subuid:ollama:100000:65536
/etc/subgid:ollama:100000:65536Başlangıç numaranız farklı olabilir, bu normaldir. Eğer grep hiçbir çıktı vermiyorsa, useradd bir aralık atamamış demektir ve bu kullanıcı ile çalıştırılan ilk podman komutu şu şekilde başarısız olur:
Error: cannot find UID/GID for user ollama: no subuid ranges found for user "ollama" in /etc/subuidBaşka hiçbir kullanıcının sahip olmadığı bir aralık atayın ve ardından Podman'e eski eşlemenin geçersiz olduğunu bildirin:
sudo usermod --add-subuids 100000-165535 --add-subgids 100000-165535 ollama
sudo -iu ollama podman system migrateParolayı kilitlemek, kimsenin ollama kullanıcısı olarak doğrudan giriş yapamamasını sağlar. Hesaba, yönetici kullanıcınızdan sudo -iu ollama komutu ile erişirsiniz.
Kullanıcı çıkış yaptığında servisin çalışmaya devam etmesi için lingering özelliğini etkinleştirme
Bir kullanıcının systemd örneği normalde giriş yapıldığında başlar ve çıkış yapıldığında durur; bu süreçte /run/user/<uid> de silinir. Söz konusu kullanıcıya ait tüm rootless container'lar aynı anda sonlanır. Lingering özelliği, herhangi bir oturum bağlı olmasa bile kullanıcı örneğinin çalışmaya devam etmesini sağlar.
sudo loginctl enable-linger ollama
loginctl show-user ollama --property=LingerBu komut Linger=yes çıktısını vermelidir. Lingering özelliğini, unit dosyasını oluşturmadan önce etkinleştirin; çünkü unit dosyasının ihtiyaç duyduğu /run/user/<uid> dizini, yalnızca lingering açık olduğunda mevcuttur.
Kimsenin beklemediği bir adım daha bulunmaktadır. sudo -iu ollama size bir kabuk (shell) sağlar ancak bir oturum veri yolu (session bus) sağlamaz; bu nedenle systemctl --user komutu anında başarısız olur:
Failed to connect to bus: $DBUS_SESSION_BUS_ADDRESS and $XDG_RUNTIME_DIR not definedsystemd, kullanıcı veri yolunu $XDG_RUNTIME_DIR/bus dizininde arar ve sudo -i bu değişkeni ayarlamaz. Bu servisi yönettiğiniz her yönetici kabuğunda değişkeni manuel olarak ayarlayın:
sudo -iu ollama
export XDG_RUNTIME_DIR=/run/user/$(id -u)
systemctl --user statusModel blob dosyalarının konumu ve planlanması gereken disk alanı
Ollama, ağırlık dosyalarını container içerisinde /root/.ollama/models dizinine yazar. Kullanıcının ana dizininden bir dizini bu yola bağladığınızda (bind mount), dosyalar ölçüm yapabileceğiniz bir konuma yerleşir: /home/ollama/ollama-data/models. Blob dosyaları içerik adresli dosyalar olarak models/blobs dizinine gider; models/manifests ise bunları adlandıran küçük dizini tutar. Fedora Magazine yazısında olduğu gibi adlandırılmış bir volume (named volume) kullanırsanız, aynı ağaç yapısı /home/ollama/.local/share/containers/storage/volumes/<volume>/_data altında yaşar. Her iki durumda da ollama pull ve ollama run ağırlıkları aynı ağaca yazar; iki komutu birbirinden ayıran tek şey, indirme işlemi bittikten sonra bir sohbet oturumunun açılıp açılmamasıdır.
Herhangi bir indirme yapmadan önce disk boyutunu planlayın. Yayınlanan indirme boyutları size alt sınırı verir.
The data behind this chart
[
{
"label": "gemma3:4b",
"download_gb": 3.3
},
{
"label": "mistral:7b",
"download_gb": 4.4
},
{
"label": "qwen3:8b",
"download_gb": 5.2
},
{
"label": "gemma3:12b",
"download_gb": 8.1
},
{
"label": "qwen3:14b",
"download_gb": 9.3
},
{
"label": "gemma3:27b",
"download_gb": 17
},
{
"label": "qwen3:30b",
"download_gb": 19
}
]Tüm 7 satır, ollama.com/library üzerinde yayınlanan rakamlardır; disk üzerinde ölçülmüş boyutlar değildir. Buradaki en küçük etiket olan gemma3:4b, 3.3 GB indirme yapar. En büyük olan qwen3:30b ise 19 GB indirme yapar. Container imajının kendisi, Podman'in kendi depolama alanında bunun üzerinde yer alır; bu nedenle her iki rakamı da podman system df ve df -h /home ile birlikte kontrol edin. Bir model, yüklendiği sırada RAM üzerinde yaklaşık olarak kendi dosya boyutu kadar alana ve buna ek olarak context window için boşluğa ihtiyaç duyar; dolayısıyla 16 GB RAM'e sahip bir VPS üzerinde 19 GB'lık bir model çalışmayacaktır.
İmaj etiketini sabitleyin ve tam kayıt defteri adını kullanın
sudo -iu ollama
export XDG_RUNTIME_DIR=/run/user/$(id -u)
mkdir -p ~/ollama-data ~/.config/containers/systemd
podman pull docker.io/ollama/ollama:0.32.9Ağustos 2026 itibarıyla 0.32.9 sürümünü kullanın, latest etiketini tercih etmeyin. Sabitlenmiş bir etiket, 04:00'te yapılan bir yeniden başlatmanın test ettiğiniz ikili dosya ile aynı sonucu vermesini sağlar; böylece davranış değişikliği yalnızca sizin yaptığınız bir değişiklikten kaynaklanır. Docker Hub aynı sürümler için -rc ve -rocm etiketlerini de yayınlar; bir AMD GPU kullanmıyorsanız düz olanı seçin.
Kayıt defteri ana bilgisayar adını da yazın. Fedora üzerinde systemd birimindeki kısa bir isim, etkileşimli bir terminale sahip olmadığı için parola veya onay isteyemez ve birim şu hata ile başarısız olur:
Error: short-name "ollama/ollama" did not resolve to an alias and no unqualified-search registries are definedİmajı manuel olarak önceden çekmek zorunlu değildir ancak faydalıdır; çünkü çok gigabaytlık indirme işlemini birimin başlatma zaman aşımı süresinin dışına çıkarır.
Yeniden başlatma sonrasında varlığını koruyan Quadlet birimi
Quadlet, Podman'in systemd oluşturucusudur. Bir .container dosyası yazarsınız, systemd bunu açılışta bir servise dönüştürür ve podman generate systemd kullanımına gerek kalmaz. Bunu, ollama kullanıcısının sahibi olduğu /home/ollama/.config/containers/systemd/ollama.container olarak kaydedin.
[Unit]
Description=Ollama API (rootless)
After=network-online.target
Wants=network-online.target
[Container]
Image=docker.io/ollama/ollama:0.32.9
ContainerName=ollama
PublishPort=127.0.0.1:11434:11434
Volume=/home/ollama/ollama-data:/root/.ollama:Z
Environment=OLLAMA_KEEP_ALIVE=30m
Environment=OLLAMA_MAX_LOADED_MODELS=1
[Service]
Restart=always
TimeoutStartSec=900
[Install]
WantedBy=default.targetDosya adı servis adını belirler, bu nedenle ollama.container, ollama.service haline gelir.
systemctl --user daemon-reload
systemctl --user start ollama.service
systemctl --user status ollama.servicestatus, active (running) sonucunu göstermelidir. systemctl --user enable ollama.service komutunu çalıştırmayın. Birim diskte bir dosya olarak mevcut olmadığından systemd bunu reddeder:
Failed to enable unit: Unit file /run/user/1001/systemd/generator/ollama.service is transient or generated.[Install] bölümü bu işi zaten yapmaktadır. Quadlet, açılışta başlatma bağlantısını daemon-reload sırasında kendisi oluşturur; bu nedenle bu komut isteğe bağlı değildir. TimeoutStartSec=900, imajın hala çekilmesi gereken ilk başlatma işlemini kapsar; çünkü varsayılan 90 saniyelik süre iki gigabaytlık bir indirme için yeterli değildir ve systemd başlatma işlemini başarısız olarak sonlandıracaktır. OLLAMA_KEEP_ALIVE=30m, bir modeli beş dakika sonra bellekten boşaltmak yerine istekler arasında bellekte tutar; bunun getirdiği avantaj ve dezavantajlar Ollama modelini bellekte tutma konusunda açıklanmıştır. Buradaki systemd terimlerinden herhangi biri yeni geliyorsa, systemd servisleri ve zamanlayıcılarının bir VPS üzerinde nasıl çalıştığı konusu birimlerin kendisini ele almaktadır.
Neden model dizini SELinux altında permission denied hatası veriyor
Fedora, RHEL, Rocky ve AlmaLinux üzerinde SELinux varsayılan olarak zorunlu (enforcing) moddadır. Bir container süreci container_t etki alanında çalışır ve kullanıcının ev dizinindeki bir dizin user_home_t olarak etiketlenmiştir. Politika, birinin diğerine erişmesine izin vermediğinden, Ollama kendi model ağacını oluşturamaz ve container sonlanır. Bu sistemlerde getenforce komutu Enforcing çıktısını verir ve erişim engeli şu şekilde kaydedilir:
sudo ausearch -m avc -ts recentEtki alanını ve hedef etiketi belirten bir satır göreceksiniz:
avc: denied { write } for pid=1842 comm="ollama" name="models" dev="vda1" ino=131077 scontext=system_u:system_r:container_t:s0:c214,c827 tcontext=unconfined_u:object_r:user_home_t:s0 tclass=dir permlisted=0Volume= satırının sonundaki :Z ifadesi çözüm yoludur. Bu, ana makine dizinini container_file_t olarak yeniden etiketler ve yalnızca bu container'ın taşıdığı özel bir MCS (çoklu kategori güvenliği) kategorisi ile damgalar. Küçük harfli :z ise bunun yerine paylaşılan bir etiket kullanır; iki container aynı dizini okuyacaksa tercih etmeniz gereken yöntem budur.
:Z hakkında bir uyarı: bu işlem yıkıcıdır ve sessizce çalışır. Yeniden etiketleme işlemi özyinelemelidir (recursive). Eğer bunu /home/ollama dizinine yönlendirirseniz, o ev dizinindeki her dosya yeniden etiketlenir ve bu durum kullanıcının SSH anahtarı erişimini bozar. :Z komutuna her zaman başka hiçbir şey içermeyen özel bir alt dizin verin. Adlandırılmış birimlerin (named volumes) buna ihtiyacı yoktur, çünkü Podman bunları oluştururken doğru şekilde etiketler. Daha geniş bir bakış açısına ihtiyaç duyarsanız, Sunucular için SELinux temelleri belgesi bağlamları ve boolean değerlerini açıklar. Ubuntu ve Debian üzerinde bunun yerine AppArmor kullanılır; :Z orada hiçbir işlem yapmaz ve unit dosyası içinde bırakılması bir sorun teşkil etmez.
11434 numaralı portu kapatın ve API'ye SSH üzerinden erişin
PublishPort=127.0.0.1:11434:11434, ana makine tarafını loopback arayüzüne bağlar. Bunu doğrulayın:
ss -ltnp | grep 11434
curl http://127.0.0.1:11434ss çıktısı 127.0.0.1:11434 değerini göstermelidir. 0.0.0.0:11434 veya *:11434 ifadesi, portun internete açık olduğu anlamına gelir ve curl, Ollama is running yanıtını vermelidir.
Hangi tarafı bağladığınız konusunda hassas olun. PublishPort içindeki adres, ana makine adresidir. Konteyner içinde Ollama, imaj varsayılanı olarak tüm arayüzleri dinlemeye devam etmelidir. Environment=OLLAMA_HOST=127.0.0.1 ayarını yapmak, Ollama'yı konteynerin kendi loopback arayüzüne bağlar; Podman ise yayınlanan trafiği konteynerin ağ adresine yönlendirir, bu nedenle her istek ana makineden bile olsa reddedilir.
Açık bir 11434 portu size iki şekilde zarar verir. Ollama'da kimlik doğrulama yoktur; bu nedenle porta erişen herkes /api/tags aracılığıyla modellerinizi listeleyebilir, /api/generate üzerinden CPU'nuz ve bant genişliği kotanızla çıkarım (inference) çalıştırabilir, diskinize yeni modeller indirebilir ve mevcut olanları silebilir. İkinci olarak, uzak bir porta gönderilen düz HTTP trafiği, istemleri ve yanıtları açık metin olarak iletir; bu nedenle yol üzerindeki her makine bunları okuyabilir. Port sunucudan dışarı çıkmadığı sürece her iki sorun da ortadan kalkar.
İş istasyonunuzdan portu SSH üzerinden yönlendirin:
ssh -N -L 11434:127.0.0.1:11434 you@vps.example.comArtık dizüstü bilgisayarınızdaki http://127.0.0.1:11434, SSH oturumunun şifrelemesi altında sunucunun Ollama servisidir. Dizüstü bilgisayarınızda zaten Ollama çalışıyorsa, yerel bağlama işlemi bind [127.0.0.1]:11434: Address already in use hatasıyla başarısız olur; bu durumda -L 11435:127.0.0.1:11434 kullanın ve istemcinizi 11435 portuna yönlendirin.
Bir tarayıcı istemcisi gerektiğinde, bunun yerine önüne şifre korumalı bir reverse proxy yerleştirin. Bir Caddy site bloğu dört satırdır ve caddy hash-password, ihtiyaç duyulan bcrypt özetini üretir:
ollama.example.com {
basic_auth {
you $2a$14$replace_with_the_generated_hash
}
reverse_proxy 127.0.0.1:11434
}Caddy, TLS (transport layer security) üzerinden sertifikayı otomatik olarak alır, böylece trafik şifrelenmiş olur. İstemcinizi önce test edin: Ollama ile iletişim kuran birçok araçta Authorization başlığı için bir alan bulunmaz ve bu araçlar temel kimlik doğrulama (basic auth) karşısında 401 Unauthorized hatası verir. SSH tünelinde böyle bir sorun yoktur; bu nedenle burada varsayılan öneri budur.
Bir modeli çekin ve tüm yolu kontrol edin
podman exec -it ollama ollama pull gemma3:4b
curl -s http://127.0.0.1:11434/api/tags
curl -s http://127.0.0.1:11434/api/generate -d '{"model":"gemma3:4b","prompt":"Reply with the single word: ready","stream":false}'
du -sh ~/ollama-data/models/api/tags, gemma3:4b listesini içeren bir JSON çıktısı döndürür. /api/generate, ağırlıklar diskten yüklenirken geçen bir bekleme süresinin ardından response alanına sahip bir JSON nesnesi döndürür. du, yayınlanan indirme boyutuna yakın bir sayı bildirmelidir. Ardından, bu kılavuzun tamamının konusu olan kısmı kanıtlayın:
sudo reboot
# reconnect, then:
sudo -iu ollama
export XDG_RUNTIME_DIR=/run/user/$(id -u)
systemctl --user is-active ollama.serviceactive, sürecin arka planda beklediği anlamına gelir; [Install] bölümü ve daemon-reload görevlerini başarıyla yerine getirmiştir. inactive, bu üç bileşenden birinin eksik olduğu anlamına gelir.
Hata modları ve karşılaşacağınız dizgeler
Yeniden başlatma sonrasında container kayboluyor. Öncelikle loginctl show-user ollama --property=Linger kontrol edilmelidir; Linger=yes olmadan kullanıcının systemd örneği açılışta başlamaz. Eğer lingering etkinse, .container dosyasında [Install] bölümü eksiktir veya dosyayı düzenledikten sonra systemctl --user daemon-reload komutunu çalıştırmamışsınızdır.
Error: statfs /home/ollama/ollama-data: no such file or directory. Bind mount kaynağı, container başlamadan önce mevcut olmalıdır. Podman sizin yerinize ana makine dizinlerini oluşturmaz. ollama kullanıcısı olarak mkdir -p ~/ollama-data komutunu çalıştırın.
Başlatma 90 saniyede başarısız oluyor. journalctl --user -u ollama.service, imaj çekme işlemi hala devam ettiği için Start operation timed out. Terminating. hatasını gösterir. İmajı manuel olarak çekin veya TimeoutStartSec=900 değerini koruyun.
Container başlıyor ve hemen kapanıyor. podman logs ollama ve sudo ausearch -m avc -ts recent birlikte, sorunun SELinux etiketinden kaynaklanıp kaynaklanmadığını size söyler. container_t ve user_home_t içeren bir AVC hatası, :Z eksikliği anlamına gelir.
Ana makineden gelen istekler reddediliyor. active servisi ile curl: (7) Failed to connect to 127.0.0.1 port 11434: Connection refused hatası, genellikle container içinde OLLAMA_HOST değerinin loopback adresine ayarlandığı anlamına gelir. Bu satırı kaldırın.
Üretim çok yavaş veya container sonlandırılıyor. GPU olmadığında çıkarım (inference) CPU üzerinde çalışır ve büyük bir model doğası gereği yavaştır. İstek sırasında signal: killed hatasıyla kapanan bir container, çekirdeğin bellek yetersizliği nedeniyle süreci sonlandırdığını (OOM killer) gösterir; bu durumda yukarıdaki tablodan daha küçük bir etiket seçin.
Sabitlenmiş bir imajı güncelleme
Sabitleme işlemi, güncellemelerin size otomatik olarak gelen değil, sizin kontrolünüzde gerçekleşen bir süreç olduğu anlamına gelir. Image= dosyasını ollama.container içinde düzenleyin, ardından yeniden yükleyip servisi başlatın:
systemctl --user daemon-reload
systemctl --user restart ollama.service
podman exec ollama ollama --versionModeller bind mount içinde tutulduğu için imaj değişikliğinden etkilenmezler. [Container] bölümündeki AutoUpdate=registry, değişken etiket (moving tag) kullananlar içindir; sabit bir sürüm etiketiyle birlikte kullanıldığında, etiketin içeriği değişmeyeceği için herhangi bir işlev görmez. /home/ollama/ollama-data/models/manifests dizinini ve .container dosyasını yedekleyin; blob dosyalarını yedeklemenize gerek yoktur: bu dosyalar büyük boyutludur ve yeni bir sunucuda ollama pull tarafından tekrar indirilirler.
FAQ
Rootless Podman container'ım neden oturumu kapattığımda duruyor?
Kullanıcının systemd örneği ve buna bağlı /run/user/<uid> dizini, o kullanıcıya ait son oturum kapandığında sonlandırılır; bu durum tüm rootless container'ların da kapanmasına neden olur. sudo loginctl enable-linger ollama komutunu çalıştırın ve loginctl show-user ollama --property=Linger çıktısının Linger=yes olduğunu doğrulayın. Quadlet birimini oluşturmadan önce lingering özelliğini etkinleştirin; çünkü birimin ihtiyaç duyduğu çalışma zamanı dizini yalnızca lingering açık olduğunda var olur.
Ollama model dizininde SELinux etiketlerine ihtiyacım var mı?
Fedora, RHEL, Rocky ve AlmaLinux üzerinde, bir ana makine dizinini bind mount ediyorsanız evet. Container, container_t etki alanında çalışır ve ev dizinindeki bir klasör user_home_t olarak etiketlenmiştir; bu nedenle yazma işlemi reddedilir ve Ollama kapanır. Volume= satırına :Z ekleyin ve özel bir alt dizin kullanın; çünkü yeniden etiketleme işlemi özyinelemelidir ve :Z değerini doğrudan ev dizinine yönlendirmek, o kullanıcının SSH anahtarı erişimini bozar. Adlandırılmış birimler (named volumes) Podman tarafından doğru şekilde etiketlenir ve ek bir işlem gerektirmez.
Bir Ollama modeli ne kadar disk alanına ihtiyaç duyar?
ollama.com/library adresinde yayınlanan indirme boyutunu baz alın; bu boyut gemma3:4b için 3.3 GB ile qwen3:30b için 19 GB arasında değişir. Üzerine Podman imaj boyutunu ekleyin ve boşluk bırakın; çünkü ikinci bir model disk üzerinde ilkinin yerini almaz. İndirme öncesinde df -h /home, sonrasında ise du -sh ~/ollama-data/models komutuyla kontrol sağlayın. RAM planlamasını da aynı şekilde yapın: bir model, yüklendiğinde dosya boyutu kadar belleğe ve ek olarak bağlam penceresi (context window) için alana ihtiyaç duyar.
Bir VPS üzerinde 11434 numaralı portu dış dünyaya açmak güvenli mi?
Hayır. Ollama herhangi bir kimlik doğrulama mekanizması olmadan gelir; bu nedenle porta erişebilen herkes modellerinizi listeleyebilir, silebilir, diskinize yenilerini indirebilir ve CPU'nuz ile bant genişliğinizi kullanarak çıkarım (inference) yapabilir. İnternet üzerinden düz HTTP kullanımı, tüm istemlerin ve yanıtların açık metin olarak iletilmesine neden olur. Ana makine tarafındaki bağlantıyı PublishPort=127.0.0.1:11434:11434 ile 127.0.0.1 adresine sabitleyin, ss -ltnp | grep 11434 ile doğrulayın ve servise bir SSH tüneli veya parola korumalı bir reverse proxy üzerinden erişin.