SSD Nodes Learn
تعلیمی Matt Connorتحریر: Matt Connor · اپ ڈیٹ شدہ 2026-07-25

VPS پر Ollama انسٹال کرنے کا طریقہ

7B ماڈل کو 8 GB RAM چاہیے اور CPU پر 4 سے 10 tokens per second ملتے ہیں۔ VPS پر Ollama چلائیں، 127.0.0.1:11434/v1 پر کال کریں، اور port 11434 بند رکھیں۔

آپ کیا بنا رہے ہیں

ایک اوپن ویٹ لینگویج ماڈل جو آپ کے اپنے سرور پر چلے گا۔ یہ ایک HTTP API کے ذریعے جوابات دے گا اور، اگر آپ چاہیں تو آپ کے براؤزر میں ایک چیٹ پیج بھی ہوگا۔ Ollama وہ حصہ ہے جو ماڈل ڈاؤن لوڈ کرتا ہے، اسے میموری میں لوڈ کرتا ہے، اور http://127.0.0.1:11434 پر درخواستیں سرو کرتا ہے۔ انسٹالیشن صرف ایک کمانڈ پر مشتمل ہے۔ اس میں جتنا مشکل کام ہے وہ باقی جگہوں پر ہے: ایسا ماڈل منتخب کرنا جو آپ کا VPS واقعی RAM میں رکھ سکے، اور بھول کر ایک غیر مصدقہ انفرنس سرور کو پورے انٹرنیٹ پر عوامی نہ کر دینا۔

پہلے دو صاف تنبیہات۔ صرف CPU والا VPS چھوٹے ماڈلز آہستہ چلاتا ہے، اور API پر کوئی بلٹ ان توثیق موجود ہی نہیں ہے۔ دونوں کا تفصیل سے ذکر نیچے کیا گیا ہے، کیونکہ دونوں ہی وہ جگہیں ہیں جہاں لوگ نقصان اٹھاتے ہیں۔

سائز کی حقیقت کا جائزہ، سادھے اعداد میں

ایک ماڈل کا میموری فوٹ پرنٹ تقریباً اس کی فائل کا سائز، لگ بھگ ایک گیگابائٹ کا رن ٹائم اوور ہیڈ، اور کنٹیکسٹ ونڈو کے لیے کچھ اضافی میموری ہوتا ہے۔ Ollama کے ڈیفالٹ ماڈلز 4-bit کوانٹائزڈ (Q4 کے نام سے لیبل شدہ) ہوتے ہیں، جس کی قیمت ہر ارب پیرامیٹرز پر تقریباً آدھا گیگابائٹ RAM ہے۔ اس لیے حساب سادہ ہے، اور یہ سب کچھ طے کرتا ہے۔

llama3.2:3b جیسا کوئی 3B ماڈل ~2 GB کا ڈاؤن لوڈ ہوتا ہے اور چلنے کے لیے تقریباً 4 GB فری RAM چاہیے۔ mistral:7b یا llama3.1:8b جیسا کوئی 7B یا 8B ماڈل ڈسک پر ~5 GB ہوتا ہے اور اسے تقریباً 8 GB RAM چاہیے، آرام سے چلانے کے لیے 16 GB۔ کوئی 13B یا 14B ماڈل تقریباً 16 GB چاہتا ہے۔ 30B سے 70B کی حد میں کوئی بھی ماڈل بڑے RAM والے سرور کا متقاضی ہے، یا حقیقتاً ایک GPU کا — CPU VPS پر یہ یا تو فٹ نہیں بیٹھے گا یا اتنا سست جواب دے گا کہ بے کار ہوگا۔

اب رفتار، کیونکہ یہ وہ حصہ ہے جسے لوگ کم اندازہ کرتے ہیں۔ CPU انفرینس میموری بینڈوڈتھ سے محدود ہوتا ہے، کلاک اسپیڈ سے نہیں، اور ایک شیئرڈ vCPU VPS کی بینڈوڈتھ محدود ہوتی ہے۔ متوقع رکھیں سنگل ڈیجٹ سے لو ڈبل ڈیجٹ تک ٹوکنز فی سیکنڈ: ایک 7-8B Q4 ماڈل 4 سے 10 ٹوکنز فی سیکنڈ دے سکتا ہے، ایک 3B ماڈل 10 سے 25۔ ایک GPU تقریباً دس گنا تیز ہوتا ہے۔ یہ جان بوجھ کر تخمینی اعداد ہیں — دیانتدارانہ اقدام اپنے سرور کی پیمائش کرنا ہے، جس کا طریقہ نیچے رن کے مرحلے میں دکھایا گیا ہے۔ اپنے eval rate پر بھروسہ کریں، کسی بھی مضمون میں دیے گئے کسی عدد پر نہیں، اس مضمون سمیت۔

عملی نتیجہ: CPU پر چھوٹے کوانٹائزڈ ماڈلز ڈرافٹنگ، سمری اور درجہ بندی کے لیے واقعی مفید ہیں اگر آپ اس رفتار کو قبول کر سکیں۔ کسی بھی بڑے یا تیز کام کے لیے، ایک GPU انسٹنس کے لیے بجٹ مختص کریں۔

کسی مخصوص ماڈل کا کسی مخصوص سرور سے موازنہ کرنے کے لیے، اس کا میموری فوٹ پرنٹ یہاں تخمینہ لگائیں:

ToolLLM VRAM and model-size calculator

Ollama انسٹال کریں

دو صاف طریقے ہیں۔ ایک خالی VPS پر سرکاری اسکرپٹ سب سے آسان ہے:

curl -fsSL https://ollama.com/install.sh | sh

یہ ایک سسٹم یوزر ollama بناتا ہے، بائنری کو /usr/local/bin/ollama میں انسٹال کرتا ہے، اور ایک systemd سروس ollama.service رجسٹر کرتا ہے جو بوٹ پر شروع ہوتی ہے اور 127.0.0.1:11434 سے باندھتی ہے۔ تصدیق کریں کہ یہ چل رہی ہے:

systemctl status ollama
ollama --version

اگر آپ پہلے سے Docker چلا رہے ہیں، تو اس کے بجائے کنٹینر استعمال کریں:

docker run -d --name ollama \
  -p 127.0.0.1:11434:11434 \
  -v ollama:/root/.ollama \
  --restart always \
  ollama/ollama

پورٹ میپنگ پر 127.0.0.1: پریفکس نوٹ کریں۔ یہ پورٹ کو صرف localhost سے باندھتا ہے۔ اس کے بجائے -p 11434:11434 لکھنا اسے ہر انٹرفیس پر شائع کرتا ہے، جو وہ غلطی ہے جس کی طرف سیکیورٹی سیکشن تنبیہ کرتا ہے۔ ایک انسٹال طریقہ منتخب کریں؛ اسکرپٹ اور کنٹینر ایک ساتھ نہ چلائیں، ورنہ دو پروسیزز پورٹ پر تصادم کریں گے۔

اپنا پہلا ماڈل ڈاؤن لوڈ اور چلائیں

ollama pull llama3.2:3b
ollama run llama3.2:3b

pull ماڈل کی تہوں کو ڈسک پر ڈاؤن لوڈ کرتا ہے (اس ماڈل کے لیے تقریباً 2 GB)۔ run انہیں میموری میں لوڈ کرتا ہے اور آپ کو >>> پرامپٹ پر لاتا ہے۔ ایک سوال ٹائپ کریں۔ پہلا ٹوکن چند سیکنڈ لے سکتا ہے کیونکہ وزن ڈسک سے RAM میں لوڈ ہوتے ہیں، پھر جواب بہتے ہوئے آتا ہے۔ چیٹ چھوڑنے کے لیے /bye ٹائپ کریں؛ Ollama بیک گراؤنڈ میں چلتا رہتا ہے۔

دیکھیں کہ کیا لوڈ ہوا ہے اور یہ کیسے فٹ بیٹھتا ہے:

ollama ps

PROCESSOR کالم حقیقت بتاتا ہے۔ 100% CPU کا مطلب ہے کہ کوئی GPU شامل نہیں ہے، اور سست روی اسی وجہ سے آتی ہے۔ حقیقی رفتار کو verbose flag کے ساتھ ناپیں:

ollama run --verbose llama3.2:3b "Write two sentences about Linux."

آخر میں چھپا ہوا eval rate لائن اس ہارڈویئر پر آپ کی فی سیکنڈ ٹوکنز کی تعداد ہے۔ منصوبہ بندی اسی عدد کے گرد کریں۔

ماڈلز کہاں محفوظ ہوتے ہیں، اور کتنا ڈسک خریدنا ہے

اسکرپٹ کے ذریعے انسٹال ہو کر سروس کے طور پر چلنے پر، ماڈلز ollama صارف کے ہوم میں محفوظ ہوتے ہیں:

sudo du -sh /usr/share/ollama/.ollama/models

اپنے صارف کے طور پر انٹرایکٹو طریقے سے چلانے پر، یہ ~/.ollama/models میں رہتے ہیں۔ کنٹینر میں یہ ollama نامی والیوم میں محفوظ ہوتے ہیں۔ یہ بات اہم ہے کیونکہ کوانٹائزڈ وزن تیزی سے بڑھتے ہیں: ایک 3B ماڈل تقریباً 2 GB ہوتا ہے، ایک 7-8B ماڈل تقریباً 5 GB ہوتا ہے، اور ایک 14B ماڈل تقریباً 9 GB ہوتا ہے۔ چار ماڈلز موازنے کے لیے ڈاؤن لوڈ کریں اور آپ نے بغیر محسوس کیے 20 GB خرچ کر دیے۔ اپنے رکھنے والے ماڈلز کے مطابق ڈسک کا سائز منتخب کریں، اور باقی کو ollama rm <model> سے حذف کر دیں۔

اسے ایک ایسے سروس کے طور پر چلائیں جس پر آپ کا کنٹرول ہو

انسٹال اسکرپٹ نے پہلے ہی ollama.service کو رجسٹر کر دیا ہے۔ لہٰذا یہ بغیر مزید کام کے بوت پر دوبارہ شروع ہو جاتا ہے۔ تبدیل کرنے کے قابل سیٹنگ یہ ہے کہ ایک ماڈل کتنی دیر تک رہائش پذیر رہتا ہے، اور کچھ سیٹ اپس میں، بائنڈ ایڈریس — دونوں کو systemd drop-in میں رکھیں تاکہ Ollama اپ گریڈ انہیں اوور رائٹ نہ کرے:

sudo systemctl edit ollama.service

ایڈیٹر جو [Service] ہیڈر آپ کو دکھاتا ہے اس کے نیچے یہ شامل کریں:

[Service]
Environment="OLLAMA_KEEP_ALIVE=30m"

OLLAMA_KEEP_ALIVE وہ دورانیہ ہے جتنی دیر کوئی ماڈل آخری درخواست کے بعد میموری میں رہتا ہے (ڈیفالٹ 5 منٹ)。 اسے ایک ایسے سسٹم پر بڑھائیں جسے آپ پورا دن استعمال کرتے ہیں تاکہ ہر بار ویٹڈ ری لوڈ ہونے سے بچ جائیں؛ اسے ایک محدود سسٹم پر 0 پر سیٹ کریں تاکہ RAM فوراً خالی ہو جائے جیسے ہی کوئی درخواست مکمل ہو۔ systemctl edit آپ کے لیے یونٹ فائلوں کو دوبارہ لوڈ کرتا ہے، لہٰذا تبدیلی لاگو کرنے کے لیے دوبارہ شروع کریں:

sudo systemctl restart ollama

سب سے اہم سیکیورٹی نکتہ

بنیادی طور پر Ollama 127.0.0.1:11434 بائنڈ کرتا ہے، اس لیے صرف VPS پر موجود پروسیسز ہی اس تک رسائی حاصل کر سکتے ہیں۔ یہ ڈیفالٹ درست ہے۔ اسے برقرار رکھیں۔

API میں کوئی تصدیق نہیں ہے۔ بالکل نہیں۔ کوئی API کلید نہیں، کوئی لاگ ان نہیں، کوئی شرح کی حد نہیں، کوئی اجازت فہرست نہیں۔ جو کوئی پورٹ 11434 تک پہنچ سکتا ہے وہ آپ کے ڈاؤن لوڈ کردہ کوئی بھی ماڈل چلا سکتا ہے، نئے ماڈلز ڈاؤن لوڈ کر سکتا ہے، انہیں حذف کر سکتا ہے، اور آپ کے CPU یا GPU کو لا محدود وقت تک پوری صلاحیت پر استعمال کر سکتا ہے۔ Shodan جیسے اسکینرز ہزاروں کھلے Ollama انسٹنسز کو انڈیکس کرتے ہیں، اور کوئی بھی بے نقاب انسٹنس چند گھنٹوں میں تلاش کر کے غلط استعمال میں لیا جاتا ہے۔

تو یہ وہ واحد غلطی ہے جو کبھی نہیں کرنی: OLLAMA_HOST=0.0.0.0 سیٹ نہ کریں اور اپنے فائر وال میں 11434 کو نہ کھولیں۔ یہ ایک غیر مصدق انفرنس سرور کو پورے انٹرنیٹ پر شائع کر دیتا ہے۔ کوئی بھی کنفیگریشن خام 11434-on-0.0.0.0 کو محفوظ نہیں بنا سکتی، کیونکہ Ollama میں کنفیگر کرنے کے لیے کچھ نہیں ہے — تصدیق کا نظام موجود ہی نہیں ہے۔

باکس کے علاوہ کسی اور جگہ سے ماڈل تک پہنچنے کے تین محفوظ طریقے ہیں:

  • اسے مقامی رکھیں۔ اگر واحد کالر اسی VPS پر کوئی اور پروگرام ہے — ایک cron اسکرپٹ، ایک بوٹ، ایک MCP سرور جو آپ کے ٹولز کو ماڈل سے جوڑتا ہے — تو بائنڈنگ 127.0.0.1 پر رہنے دیں اور اس پروگرام کو http://127.0.0.1:11434 کال کرنے دیں۔ کچھ بے نقاب نہیں ہوتا اور کچھ اور درکار نہیں۔
  • نجی سرنگ کے ذریعے اس تک پہنچیں۔ VPS کو ایک WireGuard VPN پر رکھیں جو آپ خود میزبانی کرتے ہیں، OLLAMA_HOST کو سرنگ پتے پر سیٹ کریں (مثال کے طور پر 10.8.0.1، نہ کہ 0.0.0.0)، اور صرف VPN پیرز ہی منسلک ہو سکیں گے۔ عوامی انٹرنیٹ اب بھی 11434 پر کچھ نہیں دیکھتا۔
  • سامنے ایک مصدق ریورس پراکسی لگائیں۔ nginx، Traefik، یا Caddy پر TLS ختم کریں اور پاس ورڈ یا ٹوکن کی ضرورت عائد کریں، پھر 127.0.0.1:11434 پر پراکسی کریں۔ Ollama اپنا localhost بائنڈ رکھتا ہے؛ پراکسی واحد چیز ہے جو عوامی پورٹ پر سنتی ہے۔ یہ بالکل اسی طرح ہے جیسے کسی بھی مقامی سروس کے سامنے nginx پر Let's Encrypt سرٹیفکیٹ لگانا۔

ریورس پراکسی والا آپشن بالکل وہی ہے جو چیٹ UI اگلے مرحلے میں آپ کو دیتا ہے، جس میں ایک حقیقی لاگ ان منسلک ہوتا ہے۔

Open WebUI کے ساتھ چیٹ UI شامل کریں، TLS کے پیچھے

Open WebUI ایک سیلف ہوسٹڈ چیٹ انٹرفیس ہے۔ اسے Docker میں چلائیں اور اسے مقامی Ollama کی طرف اشارہ کریں:

docker run -d \
  --name open-webui \
  --network=host \
  -e OLLAMA_BASE_URL=http://127.0.0.1:11434 \
  -v open-webui:/app/backend/data \
  --restart always \
  ghcr.io/open-webui/open-webui:main

Linux VPS پر --network=host flag اہم تفصیل ہے۔ یہ container کو host کے network namespace میں رکھتا ہے، اس لیے container کے اندر 127.0.0.1 دراصل host کا اپنا loopback ہے اور container Ollama تک 127.0.0.1:11434 پر پہنچ جاتا ہے، بغیر اس کے کہ Ollama کسی اور interface پر listen کرے۔ برج نیٹ ورک والی ترکیب جو آپ دوسری جگہ دیکھیں گے — --add-host=host.docker.internal:host-gateway کے ساتھ OLLAMA_BASE_URL=http://host.docker.internal:11434 — یہاں کام نہیں کرتی: وہ نام Docker bridge gateway کو resolve کرتا ہے، اور host پر 127.0.0.1 سے bound کوئی سروس bridge کے پار reachable نہیں ہوتی، اس لیے Open WebUI بس وہیں بیٹھ کر یہ اطلاع دیتا رہتا ہے کہ وہ Ollama سے connect نہیں ہو سکتا۔

Host networking کا نقصان یہ ہے کہ Open WebUI اب host کے پورٹ 8080 پر ہر interface پر listen کرتا ہے؛ کوئی بھی -p mapping discard ہو جاتی ہے، اور Docker اس کے بارے میں warning print کرتا ہے۔ اس لیے 8080 کو host اور provider firewall دونوں پر بند کریں اور TLS reverse proxy کو واحد عوامی دروازہ بننے دیں۔ پہلے visit پر Open WebUI آپ سے ایک admin account بنانے کو کہتا ہے — وہ account آپ کی authentication layer ہے، اس لیے مضبوط password منتخب کریں۔

اپنے لیپ ٹاپ سے HTTPS پر چیٹ کھولنے کے لیے، 127.0.0.1:8080 کے سامنے ایک TLS reverse proxy لگائیں۔ اگر آپ پہلے ہی اس باکس پر کئی Docker apps route کر رہے ہیں، تو بہت سارے apps میں خودکار TLS کے ساتھ Traefik سب سے بہترین فٹ ہے: ایک label block certificate issue کرتا ہے اور chat.example.com کو Open WebUI تک route کرتا ہے۔ سیکیورٹی سیکشن کا rule اب بھی لاگو ہوتا ہے — proxy عوامی پورٹ اور login کا مالک ہوتا ہے، جبکہ Ollama localhost پر رہتا ہے اور Open WebUI کا اپنا 8080 firewalled رہتا ہے۔

اپنے کوڈ سے OpenAI-موافق اینڈپوائنٹ استعمال کریں

Ollama /v1 پر OpenAI چیٹ API کا ایک حصہ بولتا ہے، اس لیے زیادہ تر OpenAI کلائنٹ لائبریریاں دو چیزیں تبدیل کرنے کے بعد کام کرتی ہیں: بیس URL اور ایک ضائع کلید۔

from openai import OpenAI

client = OpenAI(base_url="http://127.0.0.1:11434/v1", api_key="ollama")

resp = client.chat.completions.create(
    model="llama3.2:3b",
    messages=[{"role": "user", "content": "Name three Linux distributions."}],
)
print(resp.choices[0].message.content)

api_key کلائنٹ لائبریری کے لیے ضروری ہے لیکن Ollama اسے نظر انداز کرتا ہے، اس لیے کوئی بھی اسٹرنگ کام کرتا ہے۔ model ایسا نام ہونا چاہیے جو آپ پہلے ہی پل کر چکے ہیں؛ نامعلوم نام model "x" not found, try pulling it first لوٹاتا ہے۔ ایک سادہ curl کال بھی یہی تصور ہے:

curl http://127.0.0.1:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model":"llama3.2:3b","messages":[{"role":"user","content":"Hello"}]}'

یہی وہ طریقہ ہے جس سے آپ ماڈل کو ایجنٹ اور ایڈیٹر ٹولنگ میں شامل کرتے ہیں۔ اگر آپ پہلے ہی اس باکس پر ڈویلپ کر رہے ہیں، تو ایک مقامی ماڈل اسکرپٹس اور پلگ انز کو tmux کے اندر VPS پر چلنے والا Claude Code کے ساتھ ساتھ سپورٹ کر سکتا ہے، جس سے سستا، نجی ڈرافٹنگ کام ادا شدہ API سے دور رہتا ہے جبکہ بھاری استدلال میزبانی شدہ ماڈل کے پاس رہتا ہے۔

ناکامی کے طریقے، آپ کو بالکل وہی اسٹرنگ نظر آئیں گے

عمل جنریشن کے دوران "Killed" ہو جاتا ہے۔ آپ ایک بڑا ماڈل شروع کرتے ہیں اور ٹرمینل پر Killed پرنٹ ہوتا ہے، یا سرور لاگ میں llama runner process has terminated: signal: killed نظر آتا ہے۔ Linux OOM killer نے اسے روک دیا کیونکہ ماڈل کو باکس کی موجودہ RAM سے زیادہ درکار تھی۔ وجہ کی تصدیق sudo dmesg | grep -i oom سے کریں، جہاں آپ کو Out of memory: Killed process ... (ollama) جیسی ایک لائن نظر آئے گی۔ حل ایک چھوٹے یا زیادہ کوانٹائزڈ ماڈل کا ہے — 13B کے بجائے llama3.2:3b — یا swap کا اضافہ ہے، تاکہ وہ لوڈ جو physical RAM سے تھوڑا سا بڑھ جائے، مکمل طور پر مرنے کے بجائے آہستہ سے کام کرتا رہے۔ Swap فوری کریش کو ایک سست جواب میں بدل دیتا ہے؛ یہ 4 GB پر 70B ماڈل کو عملی نہیں بناتا۔

"Error: model requires more system memory"۔ Ollama ماڈل کو شروع کرنے سے انکار کرتا ہے اور Error: model requires more system memory (X GiB) than is available (Y GiB) پرنٹ کرتا ہے۔ یہ اوپر والی کریش کا مہذب ورژن ہے: Ollama نے حساب لگایا اور OOM killer کے ہاتھوں اسے روکنے کے بجائے خود روک دیا۔ یہ آپ کو دونوں نمبر بھی بتاتا ہے۔ ایسا ماڈل منتخب کریں جس کی ضرورت آپ کی خالی RAM سے کم ہو (free -h سے چیک کریں)، context کی لمبائی کم کریں، یا بڑے VPS پر منتقل ہوں۔ کوئی بھی flag ماڈل کو فٹ نہیں کرتا — میموری حقیقی ہے۔

پہلا token بہت وقت لیتا ہے، پھر سب ٹھیک ہو جاتا ہے۔ ایک کولڈ ماڈل پانچ سے تیس سیکنڈ تک کچھ نہیں پرنٹ کرتا، پھر عام طور پر اسٹریم ہونا شروع ہو جاتا ہے۔ یہ توقف پہلی بار weights کو ڈسک سے RAM میں لوڈ ہونے کی وجہ سے ہے، اور سلو اسٹوریج اسے مزید بڑھا دیتا ہے۔ ایک بار لوڈ ہونے کے بعد، ماڈل OLLAMA_KEEP_ALIVE کی مدت تک رہائش پذیر رہتا ہے، اس لیے دوسرا prompt فوراً جواب دیتا ہے۔ اگر یہ وقفے پریشان کرتے ہیں تو اس ویلیو کو بڑھا دیں، اور دیکھنے کے لیے ollama ps استعمال کریں کہ آیا کوئی ماڈل فی الحال لوڈ ہے یا نہیں۔

سب کچھ محض سلو ہے۔ دس tokens فی سیکنڈ یا اس سے کم، بغیر کسی ایرر کے۔ یہ CPU inference بالکل وہی کر رہا ہے جو CPU inference کرتا ہے۔ ollama ps میں 100% CPU نظر آتا ہے، جس کا مطلب ہے کوئی GPU نہیں ہے۔ یہ کوئی بگ نہیں ہے اور کوئی سیٹنگ اسے ٹھیک نہیں کرتی، کیونکہ یہ حد میموری بینڈوڈتھ کی ہے، کسی غلط کنفیگریشن کی نہیں۔ ایک چھوٹا ماڈل استعمال کریں، اس رفتار کو قبول کریں، یا GPU انسٹانس پر منتقل ہوں — اور کچھ بھی ٹوٹا ہوا ہے یہ فیصلہ کرنے سے پہلے اپنی اصل ریٹ کو --verbose سے ناپیں۔

کسی دوسری مشین سے کنکشن مسترد ہو جاتا ہے۔ آپ کے لیپ ٹاپ سے آپ کو curl: (7) Failed to connect to <ip> port 11434: Connection refused ملتا ہے۔ یہ ڈیزائن کے مطابق کام کر رہا ہے: Ollama صرف localhost کو بائنڈ کرتا ہے۔ اسے 0.0.0.0 بائنڈ کر کے "ٹھیک" نہ کریں، جو کہ اوپر والی نمائش کی غلطی بالکل ہے۔ ماڈل تک VPN کے ذریعے یا authenticating proxy کے ذریعے پہنچیں۔

آپ نے 11434 کو انٹرنیٹ پر ظاہر کر دیا۔ اگر آپ نے OLLAMA_HOST=0.0.0.0 سیٹ کیا، فائر وال کھولا، اور اب ایسے model pulls دیکھتے ہیں جو آپ نے شروع نہیں کیے یا CPU نامعلوم کلائنٹس کی طرف سے 100% پر پن ہوا ہے، تو آپ کو ڈھونڈ لیا گیا اور استعمال کیا گیا ہے۔ یہ سرخی والی غلطی ہے، کوئی معمولی کیس نہیں۔ 127.0.0.1 یا VPN ایڈریس پر دوبارہ بائنڈ کریں، فائر وال پر 11434 کو بند کریں، اور اس کے آگے authentication لگائیں۔ فرض کریں کہ جب تک یہ ایڈریس کھلا تھا، وہاں تک پہنچنے والی ہر چیز اجنبیوں کی طرف سے کویری کی گئی ہے۔

بیک اپ اور اپ گریڈ

کھونے کے لیے بہت کم حالت (state) ہے۔ ماڈلز دوبارہ ڈاؤن لوڈ کیے جا سکتے ہیں، اس لیے بیک اپ کے قابل صرف Open WebUI کا ڈیٹا والیوم — اکاؤنٹس، چیٹ ہسٹری، سیٹنگز — اور کوئی بھی systemd drop-in جو آپ نے لکھا ہے، ہیں۔ والیوم کو ایک عارضی کنٹینر سے بیک اپ کریں:

docker run --rm -v open-webui:/data -v "$PWD":/backup alpine \
  tar czf /backup/open-webui.tgz -C /data .

Ollama کو انسٹال اسکرپٹ دوبارہ چلا کر اپ گریڈ کریں؛ Open WebUI کو docker pull ghcr.io/open-webui/open-webui:main کے ساتھ اپ گریڈ کریں اور پھر کنٹینر کو دوبارہ بنائیں۔ کچھ بھی طویل مدت کے لیے پن (pin) نہ کریں: ماڈل کوالٹی اور رن ٹائم دونوں تیزی سے تبدیل ہوتے ہیں، اس لیے ریلیز نوٹس پڑھیں اور پچھلے سہ ماہی کے اعداد و شمار پر بھروسہ کرنے کے بجائے اپنے سسٹم پر دوبارہ بنچ مارک کریں۔

FAQ

کیا میں واقعی صرف CPU والے VPS پر LLM چلا سکتا ہوں؟

ہاں، مخصوص حدود کے اندر۔ 3B سے 8B تک کے چھوٹے quantized ماڈلز CPU پر چلتے ہیں اور مسودہ تیار کرنے، خلاصہ بنانے اور درجہ بندی کے لیے واقعی مفید ہیں — بس آہستہ، ایک shared vCPU پر فی سیکنڈ ایک ہندسی سے نچلے دو ہندسی تک کے tokens کی شرح سے۔ 13B یا اس سے بڑے کوئی بھی ماڈل یا تو تکلیف دہ حد تک سست ہے یا RAM میں بالکل فٹ نہیں بیٹھے گا۔ حقیقی رفتار یا بڑے ماڈلز کے لیے آپ کو GPU instance کی ضرورت ہے۔

ہر ماڈل کو کتنی RAM درکار ہوتی ہے؟

ڈیفالٹ 4-bit quantized ماڈلز کے لیے ایک تخمینہ: اوزان کے لیے فی ارب پیرامیٹرز تقریباً 0.5 GB RAM، اس کے علاوہ تقریباً 1 GB اوور ہیڈ اور context کے لیے تھوڑی مزید۔ لہذا 3B ماڈل کو تقریباً 4 GB خالی چاہیے، 7-8B ماڈل کو تقریباً 8 GB، اور 14B ماڈل کو تقریباً 16 GB۔ free -h سے اپنی دستیاب جگہ چیک کریں اور آپریٹنگ سسٹم اور باکس پر موجود دیگر چیزوں کے لیے جگہ چھوڑیں۔

کیا Ollama API تصدیق شدہ ہے؟

نہیں۔ Ollama میں کوئی بلٹ ان authentication، API key، یا rate limit نہیں ہے — جو بھی port 11434 تک پہنچ سکتا ہے وہ اس پر مکمل کنٹرول رکھتا ہے۔ اسی لیے یہ ڈیفالٹ طور پر 127.0.0.1 سے بائنڈ ہوتا ہے اور اسی لیے آپ کو کبھی بھی 11434 کو 0.0.0.0 پر انٹرنیٹ کے لیے ظاہر نہیں کرنا چاہیے۔ اس تک مقامی طور پر، ایک پرائیویٹ VPN کے ذریعے، یا ایک login شامل کرنے والے reverse proxy کے ذریعے پہنچیں۔

میں web chat انٹرفیس کیسے شامل کروں؟

Docker میں --network=host کے ساتھ Open WebUI چلائیں تاکہ یہ ہوسٹ کے loopback کو شیئر کرے اور native Ollama تک http://127.0.0.1:11434 پر پہنچے، پھر اس کے port 8080 کے سامنے ایک TLS reverse proxy لگائیں تاکہ آپ اپنے لیپ ٹاپ سے رسائی حاصل کر سکیں۔ فائر وال پر 8080 بند رکھیں تاکہ proxy ہی واحد عوامی راستہ ہو۔ Open WebUI کا اپنا ایڈمن اکاؤنٹ login فراہم کرتا ہے، اور آپ اس کا پاس ورڈ پہلی بار چلانے پر مقرر کرتے ہیں۔

میں اسے اپنی ایپلیکیشن سے کیسے کال کروں؟

http://127.0.0.1:11434/v1 پر OpenAI-کمپیٹیبل endpoint استعمال کریں۔ کسی بھی OpenAI SDK کو اس base URL کی طرف اشارہ کریں، API key کے طور پر کوئی بھی string پاس کریں کیونکہ اسے نظر انداز کیا جاتا ہے، اور model کو اس نام پر سیٹ کریں جو آپ نے pull کیا ہے۔ موجودہ OpenAI کوڈ عام طور پر base URL اور key کے علاوہ تبدیلی کے بغیر چلتا ہے۔