كيف تستضيف مساعد Iva للذكاء الاصطناعي على Telegram
ثبّت Iva v0.3.13 على VPS صغير دون منافذ واردة أو نطاق: استخدم systemd كمستخدم، واحفظ ذاكرته في مجلد Markdown يفتحه Obsidian وتنسخه احتياطياً.
ما الذي ستبنيه
Iva هو مساعد Telegram للذكاء الاصطناعي تستضيفه بنفسك. وهو من بين القليل من المساعدين الذين يمكنك نشرهم دون فتح أي منفذ وارد ودون توجيه أي نطاق إليه. ولا تحتاج إلى شهادة أيضاً، لأن لا شيء على الخادم يستمع للاتصالات العامة. تتصل الخدمة بـTelegram اتصالاً صادراً، وتحافظ على الاتصال مفتوحاً، وتقرأ رسائلك من الرد. وكل ما عدا ذلك ينتج عن هذا الاتصال الصادر.
Iva مرخّص بموجب MIT ومكتوب بلغة Node. تتكون ذاكرته من مجلد يضم ملفات Markdown عادية، ويمكن لـObsidian فتحها مباشرة. لذلك تبقى الملاحظات التي يحتفظ بها عنك قابلة للقراءة دون التطبيق. يثبّت هذا الدليل الإصدار v0.3.13، المنشور في 6 August 2026.
تبدأ معظم البرامج التي تستضيفها بنفسك بسجل DNS (نظام أسماء النطاقات) وشهادة Let's Encrypt صادرة باستخدام Certbot. يتجاوز Iva هذه الطبقة بالكامل. لذلك يكفي للنشر VPS صغير خلف جدار ناري لا يسمح إلا باتصالات SSH.
لماذا لا تحتاج Iva إلى منافذ مفتوحة
iva-telegram-poll.service هو جسر للاستطلاع الطويل. يستدعي واجهة getUpdates البرمجية وينتظر الاستجابة، لذلك يبدأ كل اتصال من خادمك. لا يتصل Telegram بخادمك، ما يعني عدم الحاجة إلى إعداد reverse proxy أو تذكّر تجديد الشهادة.
تستمع الوكيل نفسه أيضاً، ولكن على المنفذ 127.0.0.1 8723 فقط. توضح وثائق المشروع ذلك صراحةً: لا تعرّض المنفذ 8723 للإنترنت، ويجب أن يحافظ أي reverse proxy تضعه أمام الوكيل على اشتراط bearer token. تحقّق من عنوان الربط بعد التثبيت.
sudo ss -tlnp | grep 8723يجب أن يكون العنوان 127.0.0.1:8723. أما عنوان wildcard مثل 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 من الذاكرة ولا توجد مساحة swap، لأن عملية البناء تتوقف بدونه. - يثبت nvm، ثم Node 24، وهو الحد الأدنى للإصدار الذي يعمل عليه Iva.
- يثبت
uv، وهو مدير حزم Python، في~/.local/bin. - يستنسخ المستودع إلى
~/ivaوينفذnpm ci. - يثبت حزمتين عامتين من npm، هما
agent-browser، التي تنزّل Chromium بعد ذلك، و@googleworkspace/cli. - يشغّل معالج الإعداد، ويبني المشروع، وينشئ الخزنة.
- يكتب أمراً
ivaفي~/.local/bin، ويثبت وحدات systemd الخاصة بالمستخدم.
هذا عدد كبير من البرامج بالنسبة إلى سطر واحد. ويفسر ذلك أيضاً تعليمات README التي تطلب التثبيت كمستخدم عادي وليس كـroot: إذ تعمل أداة shell الخاصة بالوكيل لاحقاً بالامتيازات التي استخدمها المثبت. يستدعي البرنامج النصي sudo فقط لتثبيت الحزم وإنشاء swapfile، من خلال مساعد ينفذ الأوامر مباشرة عندما تكون مستخدماً لـroot بالفعل.
أنشئ مستخدماً مخصصاً قبل التثبيت
امنح Iva حساباً خاصاً به. ينفّذ الوكيل أوامر shell على المضيف عبر child_process الخاص بـNode، من دون حاوية أو sandbox، لذلك يمثّل الحساب الذي يعمل الوكيل تحته حدّ الأمان.
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 ivaيهم enable-linger لأن Iva يعمل كوحدات user في systemd. من دون linger، يوقف systemd خدمات ذلك المستخدم فور انتهاء جلسته الأخيرة، لذلك سيتوقف المساعد عند إغلاق SSH. وتنطبق القاعدة نفسها على أي خدمة ومؤقت تنشئهما بنفسك ضمن 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
يمتلك برنامج التثبيت خاصية مفيدة. قبل أن يستنسخ أي شيء، يتحقق مما إذا كان المجلد الذي يوجد فيه البرنامج النصي يحتوي مسبقاً على package.json يتضمن "eve". إذا كان موجوداً، فإنه يبني نسخة checkout تلك ويتجاوز عملية الاستنساخ. لذلك يمكنك اختيار الإصدار بنفسك.
git clone --branch v0.3.13 https://github.com/smixs/iva.git ~/iva
cd ~/iva
git log -1 --oneline
bash install.shأنت تعرف الآن أي شفرة تعمل. لا يمكنك معرفة ذلك عندما يستنسخ البرنامج النصي main بالحالة التي يكون عليها في تلك الساعة. أصدرت Iva خمسة إصدارات بين 4 و6 August 2026، لذلك فإن main هذا الصباح وmain بعد ظهر اليوم ليسا البرنامج نفسه.
يترك checkout الخاص بالوسم git في حالة HEAD منفصل. سيعمل ذلك بشكل سليم، لكن افهم الحدّ: ينقل iva update نسخة checkout إلى الأمام على فرع التحديث، لذلك يكون التثبيت المحدد نقطة بداية معروفة، وليس تجميداً دائماً. يطبع iva version إصدار الحزمة وgit commit، بحيث يمكنك دائماً معرفة موضعك.
للانتقال عمداً إلى إصدار أحدث، اعرض الوسوم، واضبط 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 يعمل مسبقاً.
خطوات المعالج الخمس والمفاتيح التي يطلبها
- موفّر النموذج والنموذج. يقبل
MODEL_PROVIDERالقيمopencodeأوollamaأوopenrouterأوcodex. يتحقق المعالج من صلاحية المفتاح مباشرةً، ويسرد النماذج التي تتيحها خطتك. - الصوت والبحث. يُستخدم مفتاح Deepgram لتحويل الملاحظات الصوتية إلى نص. ومفتاح البحث على الويب (Tavily أو Exa أو Parallel أو Brave) اختياري.
- رمز Telegram bot المأخوذ من @BotFather، ويتحقق منه مقابل نقطة النهاية
getMe. - التحكم في الوصول. أرسل رسالة إلى bot، ويقرأ المعالج معرّف المستخدم الرقمي من
getUpdates. - إعدادات النظام. المنطقة الزمنية وفق IANA، ودليل vault، والمنفذ المحلي، وقيمته الافتراضية 8723.
اثنان من هذه المتطلبات هما تبعيتان يخفيهما وصف «أمر واحد». لا يتضمن Iva أي نموذج، لذلك يحتاج إلى خطة نموذج مدفوعة أو مفتاح API قبل أن يجيب عن أي شيء. كما أنه لا يحوّل الصوت إلى نص بنفسه، لذلك تحتاج الملاحظات الصوتية إلى خدمة منفصلة. يكتشف نموذج nova-3 من Deepgram اللغة باستخدام DEEPGRAM_LANGUAGE=multi، وتحصل حسابات Deepgram الجديدة على أرصدة تجريبية تكفي لأشهر من الاستخدام الشخصي. يعمل النص باستخدام مفتاح النموذج وحده. يعتمد الصوت فقط على Deepgram.
تحقق مما كتبه المعالج.
grep -E '^(MODEL_PROVIDER|TELEGRAM_ALLOWED_USER_IDS|ASSISTANT_VAULT_DIR|IVA_PORT)=' ~/iva/.env
ls -l ~/iva/.envيجب أن يطبع ls القيمة -rw-------، مع الوضع 0600، لأن هذا الملف يحتوي على كل مفتاح ألصقته للتو. ويجب أن يحتوي TELEGRAM_ALLOWED_USER_IDS على معرّفك الرقمي. تعمل قائمة السماح بأسلوب الرفض عند الفشل، لذلك تعني القيمة الفارغة أن Iva لن يجيب أي شخص.
يُقرأ النموذج مرة واحدة عند بدء العملية. لا يغيّر تعديل MODEL_PROVIDER أو اسم نموذج في .env أي شيء حتى تشغّل iva restart. في openrouter يكون اسم النموذج معرّفاً خاصاً بالمورّد مثل 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
}
]هذه أسعار القائمة المنشورة اعتباراً من August 2026، وليست قياسات فعلية. أرخص إعداد كامل هو VPS صغير بسعر 5 دولاراً أمريكياً، مع خطة OpenCode Go بسعر 5 دولاراً، أي نحو 10 دولاراً شهرياً. أما Ollama Cloud فهو الخيار الآخر بسعر ثابت قدره 20 دولاراً، وتُحاسَب نماذجه المتقدمة على الاستخدام الإضافي فوق تكلفة الخطة. تبلغ تكلفة الصوت 0 ما دامت أرصدة Deepgram الابتدائية متاحة.
لا يظهر OpenRouter هنا لأنه يعمل وفق الدفع حسب الاستخدام، ولذلك تتبع الفاتورة استخدامك. هذا هو الخيار الذي يجب مراقبته: يمكن لمساعد يستخدم نافذة سياق من 131072 token في كل دور أن يتجاوز تكلفة الخطة الثابتة بسرعة. اضبط متغير نافذة السياق على الحجم الفعلي للنموذج، لأن ضبط قيمة أكبر من اللازم يهدر token فقط.
الخدمتان والمؤقتان
iva.serviceيشغّل الوكيل نفسه.iva-telegram-poll.serviceيشغّل جسر الاستطلاع الطويل الذي يتصل بـTelegram.iva-memory-doctor.timerيعمل عند الساعة 05:00 وينفّذ مهمة الصيانة الليلية على الخزنة.iva-update-check.timerيعمل عند الساعة 10:00 ويتحقق من توفر إصدار أحدث.iva-telegram-userbot.serviceيوجد فقط إذا أعددت وكيل Telethon الاختياري.
iva status
systemctl --user status iva.service iva-telegram-poll.service
systemctl --user list-timers
iva logs pollيعرض iva status حالتي الخدمتين ومؤقتي المراقبة. يطبع systemctl --user list-timers وقت التشغيل التالي لكل مؤقت، وبذلك تتأكد من أن memory doctor سيعمل الليلة فعلاً. يجب أن تكون الخدمتان في حالة active (running). إذا أعادت إحداهما التشغيل في حلقة، يعرض journalctl --user -u iva.service -n 100 السبب.
يهم هذا الفصل عند تصحيح الأخطاء. قد يكون الجسر قيد التشغيل وينفّذ الاستطلاع بينما يكون الوكيل متوقفاً. عندها يقبل Telegram رسالتك، لكن لا يجيب عنها أي شيء. يتابع iva logs poll الجسر، ويتابع iva logs الوكيل، ولذلك توضّح السجلّاتان أي الجزأين معطّل.
مكان وجود مخزن Obsidian وكيفية الاحتفاظ بنسخة احتياطية منه
يكون ASSISTANT_VAULT_DIR افتراضياً في vault داخل دليل التثبيت، لذلك توجد الذاكرة في ~/iva/vault. وهو مستودع git مستقل عن الشيفرة، وهذا ما يتيح لك تحديث Iva من دون المساس بملاحظاتك.
- يحتوي
vault/CORE.mdعلى الحقائق الدائمة والتفضيلات الثابتة، بحد أقصى 1200 حرف، ويُدرج في كل مطالبة نظام. - يحتوي
vault/daily/YYYY-MM-DD.mdعلى سجل اليوم، ويُعامل على أنه للملحق فقط. - يحتوي
vault/cards/على بطاقات مصنّفة لجهات الاتصال والمشاريع والقرارات والأفكار والملاحظات. - يحتوي كل من
vault/summaries/daily/وweekly/وmonthly/وyearly/على الملخصات التراكمية. - يحتوي
vault/attachments/على الملفات مرتبة حسب التاريخ، ويحتويvault/.graph/على رسم بياني للروابط. - يعرّف
vault/schema.jsonأنواع البطاقات وقواعد التلاشي.
تُشغَّل عمليات التلخيص وفق جدول زمني داخل العملية. تحوّل المهمة اليومية عند الساعة 04:00 سجل الأمس إلى بطاقات وملخص، وتعيد كتابة CORE.md، ثم تضغط المهام الأسبوعية والشهرية والسنوية هذه البيانات تباعاً. عند الساعة 05:00، تنفّذ أداة فحص الذاكرة مهمة حتمية لا تستخدم أي نموذج: تفرض المخطط، وتعيد إنشاء رسم الروابط، وتولّد الفهرس من جديد، ثم تنفّذ commit وpush.
تُعد عملية push هذه نسختك الاحتياطية، وهي الخطوة التي يغفل عنها الناس. إذا لم يكن لمخزن البيانات remote في git، تحاول أداة الفحص إنشاء مستودع GitHub خاص عبر gh، ويتطلب ذلك GitHub CLI موثّقاً.
gh auth login
systemctl --user start iva-memory-doctor.service
cd ~/iva/vault && git log --oneline -3يعني وجود commit مؤرخ بتاريخ اليوم أن المهمة نُفّذت وأن المخزن أُجري له commit. أما تحذيرات gh not available في السجل فتعني العكس: تتم صيانة المخزن، لكنه لا يغادر الخادم أبداً، ولذلك يؤدي تعطل VPS إلى فقدان ذاكرتك معه.
احتفظ أيضاً بنسخة تحت سيطرتك.
tar czf ~/iva-vault-backup.tgz -C ~/iva vaultانسخ ذلك الملف خارج الخادم باستخدام scp، ثم احذفه من الخادم. لقراءة الذاكرة في Obsidian، وجّه Obsidian إلى clone من مستودع المخزن. تعمل Wikilinks والروابط الخلفية كما هي، وكذلك طريقة عرض الرسم البياني. يمكنك تعديل البطاقات وCORE.md يدوياً بأمان. اترك MOC.md و.graph/ دون تعديل، لأن المهمة الليلية تعيد إنشاء كليهما.
عامِل مخزن الملاحظات كسجل لحياتك
هذا الدليل هو سجل مؤرَّخ لما قلته، ومن قابلت، وما قررته، على جهاز تستأجره. وينتج عن ذلك أمران.
الاستضافة الذاتية تنقل مكان التخزين، لا مكان المعالجة. يذهب كل طلب إلى مزوّد النموذج، وتذهب كل ملاحظة صوتية إلى Deepgram. مخزن الملاحظات ملكك. لكن الشركات التي تقدّم هذه الخدمات لا تتعامل مع الطلبات على أنها خاصة. وتشغيل طبقة الذاكرة بنفسك، مثل خادم ذاكرة Mem0 على VPS خاص بك، يتبع النمط نفسه: يكون المخزن محلياً، بينما يغادر استدعاء النموذج جهازك. إذا كان موضوع ما حساساً بدرجة لا تسمح بإرساله إلى طرف ثالث، فأبقِه خارج المحادثة.
يمتد وصول ذلك الحساب إلى مخزن الملاحظات بالكامل. تعمل أدوات Iva مباشرة على المضيف عبر fs وchild_process الخاصين بـNode، من دون Docker أو sandbox، لذلك يملك الطلب الذي جرى اختطافه أي صلاحيات يملكها مستخدم الخدمة. لهذا السبب لا يحتوي الحساب على sudo بعد التثبيت، ولهذا تستحق قائمة السماح اهتماماً أكبر مما قد يبدو: فهي البوابة التي تحدد أي رسائل تتحول إلى أوامر على خادمك. إذا أردت استخدام المساعد من هاتفك من دون فتح أي منفذ، فهذا هو النمط نفسه المستخدم من أجل الوصول إلى وكيل Hermes مستضاف ذاتياً من هاتفك، إذ يتولى عميل المحادثة المهمة التي كان سيتولاها endpoint عام.
ما الذي يتعطل، والرسالة التي ستراها
توقّف البناء، ورمز الخروج 137. أوقف قاتل نفاد الذاكرة في النواة عملية البناء. يضيف المثبّت مساحة 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 هذه الرسالة عندما لا تكون لدى shell حافلة جلسة مستخدم، وهي الحافلة التي يوفّرها sudo -iu iva. افتح جلسة SSH عادية باستخدام ذلك المستخدم، أو صدّر XDG_RUNTIME_DIR=/run/user/$(id -u iva) قبل تنفيذ الأمر.
يتجاهلك الروبوت. قيمة TELEGRAM_ALLOWED_USER_IDS فارغة، وتعمل قائمة السماح بوضع الرفض الافتراضي. أرسل رسالة إلى الروبوت؛ سيرد بمعرّفك الرقمي فقط. أضف ذلك المعرّف إلى .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. قسّم الملف قبل إرساله.
ffmpeg -i long.ogg -f segment -segment_time 600 -c copy part-%02d.oggتتوقف الجولة ولا يأتي أي رد. تبقى حالة سير العمل العالقة بعد إعادة التشغيل، وتعيد إدراج نفسها في قائمة الانتظار، لذلك لا تؤدي إعادة التشغيل وحدها إلى مسحها. يعزل iva reset هذه الحالة ويعيد تشغيل الخدمتين. يبدأ /new محادثة جديدة في الدردشة.
يفشل Chromium على Ubuntu 24.04. يحظر Ubuntu 24.04 مساحات أسماء المستخدمين غير المميّزة عبر AppArmor، لذلك لا يمكن أن تبدأ آلية العزل الخاصة بـChromium ويفشل agent-browser. يتجاوز المثبّت ذلك بكتابة "--no-sandbox" في ~/.agent-browser/config.json. اعلم أن هذا الإعداد موجود. فهو يقلل عزل المتصفح، وهذا سبب إضافي لضرورة ألا يملك الحساب أي شيء سوى Iva.
FAQ
هل أحتاج إلى نطاق أو منفذ مفتوح لاستضافة Iva ذاتياً؟
لا. يتصل Iva بـTelegram عبر الاستطلاع الطويل: يستدعي iva-telegram-poll.service الأمر getUpdates وينتظر، لذلك تكون كل الاتصالات صادرة من خادمك. لا يلزم أن يصل أي شيء إلى الخادم من الخارج، لذا لا تحتاج إلى سجل DNS أو شهادة. يستمع منفذ HTTP الخاص بالوكيل، 8723، على 127.0.0.1، وتنص وثائق المشروع على عدم تعريضه للإنترنت. الإعداد الصحيح هو جدار ناري يسمح بـSSH ولا يسمح بأي شيء آخر.
كم تبلغ تكلفة تشغيل Iva شهرياً؟
وفق أسعار القائمة المنشورة في August 2026، تبلغ تكلفة VPS صغير 5 دولاراً، وتبلغ تكلفة أرخص خطة نموذج بسعر ثابت 5 دولاراً، أي ما يقارب 10 دولاراً أمريكياً شهرياً. تبلغ تكلفة Ollama Cloud 20 دولاراً بدلاً من ذلك، وتُضاف إليها تكلفة نماذج frontier. تغطي أرصدة Deepgram المبدئية استخدام الصوت في البداية، وتوفّر مستويات البحث على الويب حصصاً مجانية. يعمل OpenRouter بنظام الدفع حسب الاستخدام، لذلك لا توجد له تكلفة شهرية ثابتة.
أين يحتفظ Iva ببياناتي، وكيف أنشئ نسخة احتياطية منها؟
يحتفظ بها افتراضياً في ~/iva/vault، ويحدده ASSISTANT_VAULT_DIR. وهو مستودع git خاص ومستقل يحتوي على ملفات markdown نصية: CORE.md وdaily/YYYY-MM-DD.md وcards/ وsummaries/. ينفّذ memory doctor عند الساعة 05:00 عملية commit ثم يدفع التغييرات إلى المستودع، لكن ذلك لا يفيد إلا إذا كان للمستودع remote، لذا نفّذ gh auth login أو أضف remote خاصاً بك أثناء الإعداد. احتفظ أيضاً بنسخة غير متصلة بالإنترنت باستخدام tar czf ~/iva-vault-backup.tgz -C ~/iva vault، ثم انقل ذلك الملف خارج الخادم.
هل تبقى بياناتي خاصة إذا استضفت Iva ذاتياً؟
التخزين ملكك، لكن المعالجة ليست كذلك. تبقى الخزنة على قرصك إلى أن تدفعها إلى مستودع remote، ويكون .env مضبوطاً على الوضع 0600 ومملوكاً لمستخدم الخدمة. تُجرى استدعاءات النماذج ونسخ الصوت إلى نص عبر واجهات API سحابية، لذلك تمر هذه الرسائل عبر مزود النموذج وDeepgram. ترخيص Iva هو MIT، لذا يمكنك قراءة ما يرسله بالضبط وتغييره. تعمل قائمة Telegram المسموح بها وفق مبدأ المنع عند الفشل، ما يعني أن TELEGRAM_ALLOWED_USER_IDS الفارغ يمنع الجميع، بمن فيهم أنت.
ما مزودو النماذج الذين يدعمهم Iva؟
يقبل MODEL_PROVIDER opencode (OpenCode Go)، وollama (Ollama Cloud)، وopenrouter وcodex. يتطلب OpenRouter معرّفاً للمورّد مثل anthropic/claude-sonnet-4.5، ويوفّر أوسع اختيار من النماذج. يسجّل codex الدخول إلى اشتراك ChatGPT موجود باستخدام iva login، ولا يستخدم مفتاح API. عيّن المزود، ثم عيّن نافذة السياق المطابقة للحجم الفعلي للنموذج، وبعد ذلك نفّذ iva restart، لأن النموذج يُقرأ مرة واحدة عند بدء العملية.