Iva ٹیلیگرام AI اسسٹنٹ کو خود کیسے ہوسٹ کریں
اپنے چھوٹے VPS پر Iva کو بغیر کسی اوپن پورٹ یا ڈومین کے چلائیں۔ یہ گائیڈ v0.3.13 کے لیے systemd سروسز اور Obsidian والٹ کے ساتھ محفوظ سیٹ اپ کا طریقہ کار بتاتی ہے۔
آپ کیا بنا رہے ہیں
Iva ایک self-hosted ٹیلیگرام AI اسسٹنٹ ہے، اور یہ ان چند ایپس میں سے ایک ہے جنہیں آپ بغیر کسی inbound port کو کھولے اور بغیر کسی domain کے deploy کر سکتے ہیں۔ اس میں کسی certificate کی بھی ضرورت نہیں ہوتی، کیونکہ سرور پر کوئی بھی چیز public کے لیے listening حالت میں نہیں ہوتی۔ یہ سروس Telegram سے باہر کی طرف رابطہ (dial out) کرتی ہے، connection کو کھلا رکھتی ہے، اور آپ کے پیغامات کو reply سے پڑھتی ہے۔ باقی سب کچھ اسی ایک outbound connection سے ممکن ہوتا ہے۔
Iva کا لائسنس MIT ہے اور یہ Node میں لکھی گئی ہے۔ اس کی یادداشت plain markdown فائلوں کا ایک فولڈر ہے جسے Obsidian براہ راست کھول سکتا ہے، لہذا جو نوٹس یہ آپ کے بارے میں رکھتی ہے وہ ایپ کے بغیر بھی پڑھے جا سکتے ہیں۔ یہ گائیڈ release v0.3.13 پر مبنی ہے، جو 6 اگست 2026 کو شائع ہوئی۔
زیادہ تر self-hosted سافٹ ویئر کی شروعات ایک DNS (domain name system) ریکارڈ اور Certbot کے ذریعے جاری کردہ Let's Encrypt certificate سے ہوتی ہے۔ Iva اس مرحلے کو مکمل طور پر نظر انداز کر دیتی ہے، اسی لیے ایک چھوٹا VPS جو firewall کے پیچھے ہو اور صرف SSH کی اجازت دیتا ہو، ایک مکمل deployment کے لیے کافی ہے۔
Iva کو اوپن پورٹس کی ضرورت کیوں نہیں ہے
iva-telegram-poll.service ایک لانگ پولنگ برج ہے۔ یہ Telegram کی getUpdates API کو کال کرتا ہے اور جواب کا انتظار کرتا ہے، لہذا ہر کنکشن آپ کے سرور سے شروع ہوتا ہے۔ Telegram کبھی بھی واپس کنیکٹ نہیں کرتا، جس کا مطلب ہے کہ کنفیگر کرنے کے لیے کوئی ریورس پراکسی نہیں ہے اور نہ ہی سرٹیفکیٹ کی تجدید (renewal) کے بارے میں فکر کرنے کی ضرورت ہے۔
ایجنٹ خود صرف 127.0.0.1 پورٹ 8723 پر لسن (listen) کرتا ہے۔ پروجیکٹ کی دستاویزات اس بارے میں واضح ہیں: پورٹ 8723 کو ایکسپوز نہ کریں، اور آپ جو بھی ریورس پراکسی اس کے سامنے لگائیں، اسے بیئرر ٹوکن (bearer token) کی ضرورت کو برقرار رکھنا چاہیے۔ انسٹالیشن کے بعد بائنڈ ایڈریس چیک کریں۔
sudo ss -tlnp | grep 8723ایڈریس کو 127.0.0.1:8723 پڑھا جانا چاہیے۔ وائلڈ کارڈ ایڈریس جیسے کہ 0.0.0.0:8723 کا مطلب ہے کہ ایجنٹ کے HTTP روٹس انٹرنیٹ سے قابل رسائی ہیں، اور آپ کو بوٹ کو کوئی بھی نجی معلومات بھیجنے سے پہلے اسے ٹھیک کرنا چاہیے۔
لہذا فائر وال بند رہتی ہے۔ اسے فعال کرنے سے پہلے SSH کی اجازت دیں، کیونکہ ufw enable بغیر SSH رول کے اس سیشن کو بند کر دیتا ہے جس میں آپ ٹائپ کر رہے ہیں۔
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw statusایک لائن والا انسٹالر دراصل کیا کرتا ہے
پروجیکٹ کا فرنٹ پیج آپ کو ایک کمانڈ دیتا ہے جو GitHub سے ایک اسکرپٹ کو پائپ کے ذریعے bash میں بھیجتی ہے۔ اسکرپٹ کو پہلے پڑھیں، کیونکہ یہ صرف ایک پروگرام انسٹال کرنے سے کہیں زیادہ کام کرتی ہے۔
curl -fsSL https://raw.githubusercontent.com/smixs/iva/main/install.sh -o iva-install.sh
less iva-install.sh- یہ پتہ لگائے گئے پیکیج مینیجر کے ساتھ سسٹم پیکیجز انسٹال کرتی ہے:
git،gh،python3،ffmpeg،pandocاورpoppler-utils۔ - یہ
/swapfileپر 2 GB کی swapfile بناتی ہے جب باکس میں 1.5 GB سے کم RAM ہو اور کوئی swap نہ ہو، کیونکہ اس کے بغیر بلڈ (build) عمل ختم (kill) ہو جاتا ہے۔ - یہ nvm انسٹال کرتی ہے، پھر Node 24، جو کہ کم از کم ورژن ہے جس پر Iva چلتی ہے۔
- یہ
uv، یعنی Python پیکیج مینیجر کو~/.local/binمیں انسٹال کرتی ہے۔ - یہ ریپوزٹری کو
~/ivaپر کلون کرتی ہے اورnpm ciچلاتی ہے۔ - یہ دو گلوبل npm پیکیجز انسٹال کرتی ہے،
agent-browser(جو پھر Chromium ڈاؤن لوڈ کرتا ہے) اور@googleworkspace/cli۔ - یہ سیٹ اپ وزرڈ چلاتی ہے، پروجیکٹ کو بلڈ کرتی ہے، اور والٹ (vault) بناتی ہے۔
- یہ
ivaکمانڈ کو~/.local/binمیں لکھتی ہے اور systemd یوزر یونٹس انسٹال کرتی ہے۔
ایک لائن کے لیے یہ بہت زیادہ سافٹ ویئر ہے۔ یہ README کی اس ہدایت کی بھی وضاحت کرتا ہے کہ انسٹالیشن عام صارف کے طور پر کریں نہ کہ root کے طور پر: ایجنٹ کا شیل ٹول بعد میں ان ہی مراعات (privileges) کے ساتھ چلتا ہے جو انسٹالر کے پاس تھیں۔ اسکرپٹ sudo کو صرف پیکیج انسٹالیشن اور swapfile کے لیے کال کرتی ہے، ایک ایسے ہیلپر کے ذریعے جو آپ کے پہلے سے root ہونے پر کمانڈز کو براہ راست چلاتا ہے۔
تنصیب سے پہلے ایک مخصوص صارف بنائیں
Iva کے لیے ایک الگ اکاؤنٹ بنائیں۔ ایجنٹ Node کے child_process کے ذریعے میزبان (host) پر shell کمانڈز چلاتا ہے، جس میں کوئی container یا sandbox نہیں ہوتا، لہذا جس اکاؤنٹ کے تحت یہ چلتا ہے وہی سیکیورٹی کی حد (security boundary) ہے۔
sudo adduser --disabled-password --gecos "" iva
sudo usermod -aG sudo iva
sudo install -d -m 700 -o iva -g iva /home/iva/.ssh
sudo cp ~/.ssh/authorized_keys /home/iva/.ssh/authorized_keys
sudo chown iva:iva /home/iva/.ssh/authorized_keys
sudo chmod 600 /home/iva/.ssh/authorized_keys
sudo loginctl enable-linger ivaenable-linger اہم ہے کیونکہ Iva بطور systemd user units چلتا ہے۔ Linger کے بغیر، systemd اس صارف کی سروسز کو اس وقت بند کر دیتا ہے جب ان کا آخری سیشن ختم ہوتا ہے، لہذا SSH بند کرتے ہی اسسٹنٹ بھی بند ہو جائے گا۔ یہی اصول ہر اس service and timer پر لاگو ہوتا ہے جسے آپ خود systemd کے تحت لکھتے ہیں۔
اکاؤنٹ کو صرف اس وقت sudo کی ضرورت ہوتی ہے جب انسٹالر پیکیجز شامل کر رہا ہو۔ تنصیب مکمل ہونے پر یہ استحقاق واپس لے لیں۔
sudo deluser iva sudoاس صارف کے طور پر براہ راست SSH کے ذریعے لاگ ان کریں۔ وہ shell جسے آپ sudo -iu iva کے ساتھ کھولتے ہیں، اس میں نہ تو DBUS_SESSION_BUS_ADDRESS سیٹ ہوتا ہے اور نہ ہی XDG_RUNTIME_DIR، لہذا ہر systemctl --user کمانڈ Failed to connect to bus کے ساتھ ناکام ہو جاتی ہے۔ یہ حد مقرر کرنا بالکل ویسا ہی عمل ہے جیسا کہ کم سے کم استحقاق والے صارفین کے تحت سروسز چلانا۔
bash میں پائپ کرنے کے بجائے pinned release انسٹال کریں
انسٹالر میں ایک مفید خصوصیت موجود ہے۔ کسی بھی چیز کو clone کرنے سے پہلے، یہ چیک کرتا ہے کہ آیا جس ڈائریکٹری میں اسکرپٹ موجود ہے، اس میں پہلے سے کوئی package.json موجود ہے جس میں "eve" شامل ہے۔ اگر ایسا ہو، تو یہ اسی checkout کو build کرتا ہے اور clone کرنے کے عمل کو چھوڑ دیتا ہے۔ اس طرح آپ خود ورژن کا انتخاب کر سکتے ہیں۔
git clone --branch v0.3.13 https://github.com/smixs/iva.git ~/iva
cd ~/iva
git log -1 --oneline
bash install.shاب آپ جانتے ہیں کہ کون سا کوڈ چل رہا ہے۔ جب اسکرپٹ کسی بھی وقت main کو clone کرتا ہے، تو آپ کو یہ معلوم نہیں ہوتا کہ اس وقت اس کی حالت کیا ہے۔ Iva نے 4 اور 6 اگست 2026 کے درمیان پانچ releases جاری کیں، لہذا آج صبح کا main اور آج دوپہر کا main ایک ہی پروگرام نہیں ہیں۔
ٹیگ checkout کرنے سے git ایک detached HEAD حالت میں آ جاتا ہے۔ یہ ٹھیک کام کرتا ہے، لیکن اس کی حد کو سمجھیں: iva update checkout کو آگے بڑھا کر update برانچ پر لے جاتا ہے، لہذا یہ pin ایک معلوم نقطہ آغاز ہے، نہ کہ مستقل منجمد حالت۔ iva version پیکیج کا ورژن اور git commit پرنٹ کرتا ہے، تاکہ آپ ہمیشہ دیکھ سکیں کہ آپ کہاں ہیں۔
کسی بعد والی release پر جانے کے لیے، ٹیگز کی فہرست دیکھیں، IVA_TAG کو اپنے منتخب کردہ ٹیگ پر سیٹ کریں، اور پھر checkout کے اندر سے دوبارہ انسٹالر چلائیں۔
cd ~/iva
git fetch --tags
git tag --list 'v*' | sort -V | tail -5
IVA_TAG=v0.3.13
git checkout "$IVA_TAG"
bash install.sh --skip-setup
iva restart--skip-setup وزرڈ کو اس .env پر دوبارہ چلنے سے روکتا ہے جو پہلے سے کام کر رہا ہے۔
پانچ جادوئی مراحل، اور ان کے لیے درکار کلیدیں (keys)
- ماڈل فراہم کنندہ اور ماڈل۔
MODEL_PROVIDER،opencode،ollama،openrouterیاcodexکو قبول کرتا ہے۔ وزرڈ (wizard) کلید کی لائیو تصدیق کرتا ہے اور ان ماڈلز کی فہرست دکھاتا ہے جو آپ کے پلان میں دستیاب ہیں۔ - آواز اور تلاش۔ ایک Deepgram کلید وائس نوٹس کو ٹرانسکرائب کرتی ہے۔ ویب سرچ کلید (Tavily، Exa، Parallel یا Brave) اختیاری ہے۔
- @BotFather سے حاصل کردہ Telegram بوٹ ٹوکن، جس کی تصدیق
getMeاینڈ پوائنٹ کے ذریعے کی جاتی ہے۔ - رسائی کنٹرول۔ آپ اپنے بوٹ کو ایک پیغام بھیجتے ہیں، اور وزرڈ
getUpdatesسے آپ کی عددی یوزر آئی ڈی (numeric user ID) پڑھ لیتا ہے۔ - سسٹم کی ترتیبات۔ IANA ٹائم زون، والٹ ڈائریکٹری، اور لوکل پورٹ، جو بائی ڈیفالٹ 8723 ہے۔
ان میں سے دو ایسی انحصاریاں (dependencies) ہیں جنہیں "ایک کمانڈ" کا فریم ورک چھپا دیتا ہے۔ Iva کے ساتھ کوئی ماڈل نہیں آتا، لہذا کسی بھی جواب سے پہلے اسے ایک پیڈ ماڈل پلان یا API کلید کی ضرورت ہوتی ہے۔ یہ خود آڈیو کو ٹرانسکرائب بھی نہیں کرتا، اس لیے وائس نوٹس کے لیے ایک الگ سروس درکار ہوتی ہے۔ Deepgram کا nova-3 ماڈل، DEEPGRAM_LANGUAGE=multi کے ساتھ زبان کی شناخت کرتا ہے، اور نئے Deepgram اکاؤنٹس کو ابتدائی کریڈٹس ملتے ہیں جو مہینوں کے ذاتی استعمال کے لیے کافی ہیں۔ ٹیکسٹ صرف ماڈل کلید کے ساتھ کام کرتا ہے۔ صرف آواز کے لیے Deepgram پر انحصار ہوتا ہے۔
وزرڈ کی لکھی ہوئی فائل کو چیک کریں۔
grep -E '^(MODEL_PROVIDER|TELEGRAM_ALLOWED_USER_IDS|ASSISTANT_VAULT_DIR|IVA_PORT)=' ~/iva/.env
ls -l ~/iva/.envls کو -rw-------، موڈ 0600 پرنٹ کرنا چاہیے، کیونکہ اس فائل میں وہ تمام کلیدیں موجود ہیں جو آپ نے ابھی پیسٹ کی ہیں۔ TELEGRAM_ALLOWED_USER_IDS میں آپ کی عددی آئی ڈی ہونی چاہیے۔ الاؤ لسٹ (allowlist) ڈیفالٹ طور پر بند رہتی ہے، لہذا خالی ویلیو کا مطلب ہے کہ Iva کسی کو جواب نہیں دے گا۔
ماڈل کو پروسیس شروع ہونے پر صرف ایک بار پڑھا جاتا ہے۔ MODEL_PROVIDER میں ترمیم کرنے یا .env میں ماڈل کا نام تبدیل کرنے سے تب تک کچھ نہیں بدلے گا جب تک آپ iva restart رن نہیں کرتے۔ openrouter پر ماڈل کا نام ایک وینڈر سلگ (vendor slug) ہوتا ہے جیسے کہ anthropic/claude-sonnet-4.5، نہ کہ صرف ایک سادہ نام۔ codex پر کوئی API کلید نہیں ہوتی: iva login موجودہ ChatGPT سبسکرپشن میں سائن ان کرتا ہے۔
Iva کو چلانے کی ماہانہ لاگت کیا ہے
The data behind this chart
[
{
"plan": "Small VPS, always on",
"usd_per_month": 5
},
{
"plan": "OpenCode Go model plan",
"usd_per_month": 5
},
{
"plan": "Ollama Cloud model plan",
"usd_per_month": 20
},
{
"plan": "Deepgram voice, starter credits",
"usd_per_month": 0
},
{
"plan": "Tavily web search, free tier",
"usd_per_month": 0
},
{
"plan": "Cheapest complete setup",
"usd_per_month": 10
}
]یہ اگست 2026 تک شائع شدہ لسٹ قیمتیں ہیں، پیمائش نہیں۔ ایک چھوٹا VPS جس کی قیمت 5 امریکی ڈالر ہے، اس کے ساتھ OpenCode Go پلان کی قیمت 5 ڈالر ہے، یہ سب سے سستا مکمل سیٹ اپ ہے جو تقریباً 10 ڈالر ماہانہ بنتا ہے۔ Ollama Cloud دوسرا فلیٹ ریٹ آپشن ہے جس کی قیمت 20 ڈالر ہے، اور اس کے frontier ماڈلز پلان کے علاوہ اضافی استعمال کے طور پر بل کیے جاتے ہیں۔ جب تک Deepgram کے ابتدائی کریڈٹس ختم نہیں ہوتے، Voice کی لاگت 0 ہوتی ہے۔
OpenRouter یہاں شامل نہیں ہے کیونکہ یہ "pay as you go" ہے، لہذا آپ کا بل آپ کے استعمال کے مطابق ہوتا ہے۔ یہ وہ آپشن ہے جس پر نظر رکھنے کی ضرورت ہے: ایک اسسٹنٹ جو ہر ٹرن میں 131072 ٹوکن کی context window لے کر چلتا ہے، وہ فلیٹ پلان سے زیادہ خرچ کر سکتا ہے۔ context window ویری ایبل کو ماڈل کے اصل سائز پر سیٹ کریں، کیونکہ بڑھا چڑھا کر بتائی گئی ویلیو صرف ٹوکنز ضائع کرتی ہے۔
دو سروسز اور دو ٹائمرز
iva.serviceایجنٹ کو خود چلاتا ہے۔iva-telegram-poll.serviceلانگ پولنگ برج کو چلاتا ہے جو Telegram سے رابطہ کرتا ہے۔iva-memory-doctor.timerصبح 05:00 بجے متحرک ہوتا ہے اور والٹ (vault) پر رات کی دیکھ بھال (maintenance) کا عمل مکمل کرتا ہے۔iva-update-check.timerصبح 10:00 بجے متحرک ہوتا ہے اور چیک کرتا ہے کہ آیا کوئی نیا release دستیاب ہے۔iva-telegram-userbot.serviceصرف تب موجود ہوتا ہے اگر آپ نے اختیاری Telethon پراکسی سیٹ اپ کی ہو۔
iva status
systemctl --user status iva.service iva-telegram-poll.service
systemctl --user list-timers
iva logs polliva status دونوں سروسز اور دونوں واچ ڈاگ ٹائمرز کی رپورٹ دیتا ہے۔ systemctl --user list-timers ہر ٹائمر کے لیے اگلا رن ٹائم پرنٹ کرتا ہے، جس سے آپ تصدیق کر سکتے ہیں کہ میموری ڈاکٹر آج رات واقعی چلے گا۔ دونوں سروسز کو active (running) حالت میں ہونا چاہیے۔ اگر کوئی سروس لوپ میں ری سٹارٹ ہو رہی ہو، تو journalctl --user -u iva.service -n 100 اس کی وجہ بتاتا ہے۔
ڈیبگنگ کے دوران یہ تقسیم اہم ہے۔ برج زندہ اور پولنگ کر سکتا ہے جبکہ ایجنٹ بند ہو، ایسی صورت میں Telegram آپ کا پیغام تو قبول کر لے گا لیکن کوئی جواب نہیں آئے گا۔ iva logs poll برج کے لاگز دکھاتا ہے، iva logs ایجنٹ کے لاگز دکھاتا ہے، لہذا یہ دونوں لاگز آپ کو بتاتے ہیں کہ کون سا حصہ خراب ہے۔
Obsidian vault کہاں واقع ہے، اور اس کا بیک اپ کیسے لیا جائے
ASSISTANT_VAULT_DIR بائی ڈیفالٹ انسٹالیشن ڈائریکٹری کے اندر vault پر ہوتا ہے، لہذا میموری ~/iva/vault پر موجود ہوتی ہے۔ یہ کوڈ سے الگ اپنا ایک git repository ہے، جو آپ کو Iva کو اپ ڈیٹ کرتے وقت اپنے نوٹس کو چھیڑے بغیر کام کرنے کی سہولت دیتا ہے۔
vault/CORE.mdپائیدار حقائق اور مستقل ترجیحات کو محفوظ رکھتا ہے، جس کی حد 1200 کریکٹرز ہے، اور یہ ہر سسٹم پرامپٹ میں شامل ہوتا ہے۔vault/daily/YYYY-MM-DD.mdدن کا ٹرانسکرپٹ ہے، جسے صرف append کیا جاتا ہے۔vault/cards/رابطوں، پروجیکٹس، فیصلوں، آئیڈیاز اور نوٹس کے لیے ٹائپ شدہ کارڈز رکھتا ہے۔vault/summaries/daily/،weekly/،monthly/اورyearly/رول اپس (rollups) کو رکھتے ہیں۔vault/attachments/فائلوں کو تاریخ کے لحاظ سے رکھتا ہے، اورvault/.graph/لنک گراف کو رکھتا ہے۔vault/schema.jsonکارڈ کی اقسام اور ڈی کے (decay) کے اصولوں کی وضاحت کرتا ہے۔
رول اپس عمل کے اندر ایک شیڈول پر چلتے ہیں۔ 04:00 بجے ہونے والا روزانہ کا عمل گزشتہ روز کے ٹرانسکرپٹ کو کارڈز اور خلاصے میں بدل دیتا ہے اور CORE.md کو دوبارہ لکھتا ہے، پھر ہفتہ وار، ماہانہ اور سالانہ عمل باری باری انہیں کمپریس کرتے ہیں۔ 05:00 بجے میموری ڈاکٹر بغیر کسی ماڈل کے ایک ڈیٹرمینسٹک پاس چلاتا ہے: یہ اسکیمہ کو نافذ کرتا ہے، لنک گراف کو دوبارہ بناتا ہے، انڈیکس کو دوبارہ جنریٹ کرتا ہے، پھر کمٹ اور پش کرتا ہے۔
وہ پش آپ کا بیک اپ ہے، اور یہ وہ مرحلہ ہے جسے لوگ نظر انداز کر دیتے ہیں۔ اگر والٹ (vault) کا کوئی git remote نہیں ہے، تو ڈاکٹر gh کے ذریعے ایک نجی GitHub repository بنانے کی کوشش کرتا ہے، جس کے لیے تصدیق شدہ GitHub CLI کی ضرورت ہوتی ہے۔
gh auth login
systemctl --user start iva-memory-doctor.service
cd ~/iva/vault && git log --oneline -3آج کی تاریخ والی کمٹ کا مطلب ہے کہ عمل چل چکا ہے اور والٹ کمٹ ہو چکا ہے۔ لاگ میں gh not available انتباہات کا مطلب اس کے برعکس ہے: والٹ کو برقرار تو رکھا گیا ہے لیکن یہ سرور سے باہر نہیں جاتا، لہذا ایک ڈیڈ VPS آپ کی میموری کو اپنے ساتھ لے جائے گا۔
ایک کاپی اپنے پاس بھی رکھیں جس پر آپ کا کنٹرول ہو۔
tar czf ~/iva-vault-backup.tgz -C ~/iva vaultاس فائل کو scp کے ساتھ باکس سے باہر کاپی کریں، پھر اسے سرور سے ڈیلیٹ کر دیں۔ Obsidian میں میموری پڑھنے کے لیے، Obsidian کو والٹ ریپوزٹری کے کلون کی طرف پوائنٹ کریں۔ Wikilinks اور backlinks ویسے ہی کام کرتے ہیں، اور گراف ویو بھی۔ کارڈز اور CORE.md کو ہاتھ سے ایڈٹ کرنا محفوظ ہے۔ MOC.md اور .graph/ کو نہ چھیڑیں، کیونکہ نائٹلی پاس دونوں کو دوبارہ جنریٹ کرتا ہے۔
اپنے والٹ کو اپنی زندگی کا لاگ سمجھیں
یہ ڈائریکٹری اس بات کا ایک تاریخی ریکارڈ ہے کہ آپ نے کیا کہا، آپ کن لوگوں سے ملے اور آپ نے کیا فیصلے کیے، اور یہ سب ایک ایسے مشین پر ہے جسے آپ کرائے پر لیتے ہیں۔ اس سے دو نتائج اخذ ہوتے ہیں۔
Self-hosting صرف اسٹوریج کو منتقل کرتی ہے، پروسیسنگ کو نہیں۔ ہر ٹرن آپ کے ماڈل پرووائیڈر کے پاس جاتا ہے، اور ہر وائس نوٹ Deepgram کو بھیجا جاتا ہے۔ والٹ آپ کا ہے، لیکن درخواستیں ان کمپنیوں سے نجی نہیں رہتیں جو انہیں سروس فراہم کر رہی ہیں۔ میموری لیئر کو خود چلانا، جیسا کہ اپنے VPS پر Mem0 میموری سرور کے ساتھ ہوتا ہے، اسی نوعیت کا ہے: اسٹور مقامی ہوتا ہے لیکن ماڈل کال اب بھی سرور سے باہر جاتی ہے۔ اگر کوئی موضوع کسی تیسرے فریق کے لیے بہت حساس ہو، تو اسے چیٹ سے دور رکھیں۔
اس اکاؤنٹ کی رسائی پورے والٹ تک ہوتی ہے۔ Iva کے ٹولز Node کے fs اور child_process کے ذریعے براہ راست ہوسٹ پر چلتے ہیں، بغیر کسی Docker یا سینڈ باکس کے، لہذا اگر کوئی ٹرن ہیک ہو جائے تو اسے وہی رسائی حاصل ہوتی ہے جو سروس یوزر کے پاس ہے۔ یہی وجہ ہے کہ انسٹالیشن کے بعد اکاؤنٹ میں کوئی sudo نہیں رکھا جاتا، اور یہی وجہ ہے کہ allowlist اس سے کہیں زیادہ توجہ کی مستحق ہے جتنا بظاہر لگتا ہے: یہ وہ گیٹ ہے جو فیصلہ کرتا ہے کہ کس کے پیغامات آپ کے سرور پر کمانڈ بنیں گے۔ اگر آپ بغیر کچھ کھولے اسسٹنٹ کو اپنی جیب میں رکھنا چاہتے ہیں، تو یہ وہی پیٹرن ہے جو اپنے فون سے self-hosted Hermes ایجنٹ تک پہنچنے کے لیے استعمال ہوتا ہے، جہاں چیٹ کلائنٹ وہ کام کرتا ہے جو بصورت دیگر ایک پبلک اینڈ پوائنٹ کرتا۔
کیا چیز خراب ہوتی ہے، اور آپ کو کیا پیغام نظر آئے گا
Build killed, exit 137. کرنل کے out of memory killer نے build کو ختم کر دیا ہے۔ انسٹالر صرف تب swap شامل کرتا ہے جب RAM 1.5 GB سے کم ہو اور کوئی swap موجود نہ ہو، لہذا اسے خود شامل کریں اور انسٹالر دوبارہ چلائیں۔
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
free -hFailed to connect to bus. ہر systemctl --user کمانڈ یہ پیغام تب پرنٹ کرتی ہے جب شیل کے پاس کوئی user session bus نہ ہو، جو کہ وہ چیز ہے جو sudo -iu iva آپ کو فراہم کرتا ہے۔ اس صارف کے طور پر ایک نارمل SSH سیشن کھولیں، یا کمانڈ چلانے سے پہلے XDG_RUNTIME_DIR=/run/user/$(id -u iva) کو export کریں۔
بوٹ آپ کو نظر انداز کر رہا ہے۔ TELEGRAM_ALLOWED_USER_IDS خالی ہے، اور allowlist بائی ڈیفالٹ بند (fail closed) رہتی ہے۔ بوٹ کو ایک پیغام بھیجیں: وہ آپ کو آپ کی عددی ID کے ساتھ جواب دے گا اور کچھ نہیں۔ اس ID کو .env میں ڈالیں اور iva restart چلائیں۔
iva config کے فوراً بعد بوٹ خاموش ہو جاتا ہے۔ وزرڈ IVA_PORT کو ASSISTANT_HOST کو اپ ڈیٹ کیے بغیر منتقل کر سکتا ہے، جس کی وجہ سے برج ایسی پورٹ سے جڑ جاتا ہے جہاں کوئی جواب نہیں دیتا۔ دونوں لائنوں کا موازنہ کریں، پھر ری اسٹارٹ کریں۔
grep -E '^(IVA_PORT|ASSISTANT_HOST)=' ~/iva/.env
iva restartوائس نوٹ کا کوئی جواب نہیں ملتا۔ Telegram کا Bot API 20 MB سے بڑی فائلیں ڈاؤن لوڈ کرنے سے انکار کرتا ہے، اس لیے برج کو لمبی آڈیو موصول نہیں ہوتی اور Deepgram کو بھیجنے کے لیے کچھ نہیں ہوتا۔ فائل بھیجنے سے پہلے اسے تقسیم (split) کریں۔
ffmpeg -i long.ogg -f segment -segment_time 600 -c copy part-%02d.oggایک ٹرن (turn) پھنس جاتا ہے اور کبھی جواب نہیں دیتا۔ پھنسا ہوا ورک فلو اسٹیٹ ری اسٹارٹ کے بعد بھی برقرار رہتا ہے اور خود کو دوبارہ قطار میں لگا لیتا ہے، اس لیے صرف ری اسٹارٹ کرنے سے یہ صاف نہیں ہوتا۔ iva reset اس اسٹیٹ کو قرنطینہ (quarantine) کر دیتا ہے اور دونوں سروسز کو ری اسٹارٹ کرتا ہے۔ چیٹ میں /new ایک نئی گفتگو شروع کرتا ہے۔
Ubuntu 24.04 پر Chromium ناکام ہو جاتا ہے۔ Ubuntu 24.04 AppArmor کے ذریعے unprivileged user namespaces کو بلاک کرتا ہے، اس لیے Chromium کا اپنا سینڈ باکس شروع نہیں ہو سکتا اور agent-browser ناکام ہو جاتا ہے۔ انسٹالر "--no-sandbox" کو ~/.agent-browser/config.json میں لکھ کر اس کا حل نکالتا ہے۔ یاد رکھیں کہ یہ وہاں موجود ہے۔ یہ براؤزر کی آئسولیشن کو کم کرتا ہے، جو ایک اور وجہ ہے کہ اس اکاؤنٹ کے پاس Iva کے علاوہ کچھ نہیں ہونا چاہیے۔
FAQ
کیا Iva کو self-host کرنے کے لیے مجھے ڈومین یا کھلے پورٹ کی ضرورت ہے؟
نہیں۔ Iva طویل پولنگ (long polling) کے ذریعے Telegram سے بات کرتا ہے: iva-telegram-poll.service، getUpdates کو کال کرتا ہے اور انتظار کرتا ہے، لہذا ہر کنکشن آپ کے سرور سے باہر کی طرف (outbound) ہوتا ہے۔ باہر سے کسی چیز کا آپ کے سرور تک پہنچنا ضروری نہیں ہے، اس لیے آپ کو کسی DNS ریکارڈ یا سرٹیفکیٹ کی ضرورت نہیں ہے۔ ایجنٹ کا اپنا HTTP پورٹ، 8723، 127.0.0.1 پر bind ہوتا ہے، اور پروجیکٹ کی دستاویزات آپ کو اسے expose نہ کرنے کا مشورہ دیتی ہیں۔ ایک فائر وال جو صرف SSH کی اجازت دیتی ہو اور باقی سب کچھ بند رکھتی ہو، درست کنفیگریشن ہے۔
ہر ماہ Iva چلانے پر کتنا خرچ آتا ہے؟
اگست 2026 کی شائع شدہ لسٹ قیمتوں کے مطابق، ایک چھوٹا VPS 5 ڈالر کا، اور اس کے ساتھ سب سے سستا فلیٹ ریٹ ماڈل پلان 5 ڈالر کا، کل ملا کر تقریباً 10 امریکی ڈالر ماہانہ بنتا ہے۔ Ollama Cloud کی قیمت 20 ڈالر ہے، اور یہ فرنٹیر ماڈلز کے لیے الگ سے بل بھیجتا ہے۔ Deepgram کے ابتدائی کریڈٹس شروع میں وائس کے اخراجات پورے کر دیتے ہیں، اور ویب سرچ ٹیرز میں مفت الاؤنسز موجود ہیں۔ OpenRouter "استعمال کے مطابق ادائیگی" (pay as you go) پر مبنی ہے، اس لیے اس کا کوئی مقررہ ماہانہ خرچ نہیں ہے۔
Iva میرا ڈیٹا کہاں رکھتا ہے، اور میں اس کا بیک اپ کیسے لوں؟
ڈیفالٹ کے طور پر یہ ~/iva/vault میں ہوتا ہے، جسے ASSISTANT_VAULT_DIR کے ذریعے سیٹ کیا جاتا ہے۔ یہ سادہ مارک ڈاؤن فائلوں کا ایک الگ نجی گٹ ریپوزٹری ہے: CORE.md، daily/YYYY-MM-DD.md، cards/ اور summaries/۔ 05:00 بجے کا میموری ڈاکٹر اسے کمٹ اور پش کرتا ہے، جو صرف تب کام کرتا ہے جب ریپوزٹری کا کوئی ریموٹ موجود ہو، لہذا gh auth login چلائیں یا سیٹ اپ کے دوران اپنا ریموٹ شامل کریں۔ tar czf ~/iva-vault-backup.tgz -C ~/iva vault کے ساتھ ایک آف لائن کاپی بھی رکھیں اور اس فائل کو سرور سے باہر منتقل کریں۔
اگر میں Iva کو self-host کروں تو کیا میرا ڈیٹا نجی رہتا ہے؟
اسٹوریج آپ کی اپنی ہے۔ پروسیسنگ نہیں ہے۔ والٹ آپ کی ڈسک پر تب تک رہتا ہے جب تک آپ اسے پش نہ کریں، اور .env موڈ 0600 پر سروس یوزر کی ملکیت میں رہتا ہے۔ ماڈل کالز اور وائس ٹرانسکرپشن کلاؤڈ APIs ہیں، لہذا وہ پیغامات آپ کے ماڈل فراہم کنندہ اور Deepgram سے گزرتے ہیں۔ Iva کا لائسنس MIT ہے، لہذا آپ خود پڑھ سکتے ہیں کہ یہ کیا بھیجتا ہے اور اسے تبدیل بھی کر سکتے ہیں۔ Telegram کی allowlist "fail closed" ہے، جس کا مطلب ہے کہ ایک خالی TELEGRAM_ALLOWED_USER_IDS ہر کسی کو بلاک کر دیتا ہے، بشمول آپ کے۔
Iva کن ماڈل فراہم کنندگان کو سپورٹ کرتا ہے؟
MODEL_PROVIDER، opencode (OpenCode Go)، ollama (Ollama Cloud)، openrouter اور codex کو قبول کرتا ہے۔ OpenRouter وینڈر سلگ جیسے anthropic/claude-sonnet-4.5 کو لیتا ہے اور ماڈلز کا وسیع ترین انتخاب پیش کرتا ہے۔ codex، iva login کے ساتھ موجودہ ChatGPT سبسکرپشن میں سائن ان ہوتا ہے اور کسی API کی (key) کا استعمال نہیں کرتا۔ فراہم کنندہ سیٹ کریں، ماڈل کی اصل جسامت کے مطابق کانٹیکسٹ ونڈو سیٹ کریں، اور پھر iva restart چلائیں، کیونکہ ماڈل پروسیس شروع ہونے پر صرف ایک بار پڑھا جاتا ہے۔