SSD Nodes Learn Hosting plans →
मार्गदर्शक Matt Connorद्वारे Matt Connor

Iva: स्वतःचा Telegram AI assistant कसा तयार करावा?

Iva वापरून स्वतःचा Telegram AI assistant कसा चालवावा ते शिका. कोणत्याही ओपन पोर्ट्स किंवा डोमेनशिवाय, फक्त एका लहान VPS वर हा सुरक्षित सेटअप कसा करायचा याची संपूर्ण माहिती.

तुम्ही काय तयार करत आहात

Iva हा self-hosted Telegram AI assistant आहे. कोणताही inbound port उघडण्याची किंवा एखादा domain त्याच्याकडे निर्देशित करण्याची आवश्यकता नसलेल्या मोजक्या सहाय्यकांपैकी तो एक आहे. तसेच certificate चीही आवश्यकता नाही, कारण सर्व्हरवर सार्वजनिक विनंत्यांसाठी काहीही listen करत नाही. ही सेवा Telegram शी बाहेरून connection सुरू करते, तो connection खुला ठेवते आणि reply मधून तुमचे messages वाचते. उर्वरित सर्व गोष्टी या एकाच outbound connection वर अवलंबून असतात.

Iva ला MIT license आहे आणि तो Node मध्ये लिहिलेला आहे. त्याची memory साध्या markdown files असलेल्या एका folder मध्ये साठवली जाते. Obsidian या files थेट उघडते. त्यामुळे अॅपशिवायही तुमच्याबद्दल साठवलेल्या notes वाचता येतात. या मार्गदर्शकात 6 August 2026 रोजी प्रकाशित झालेला release v0.3.13 निश्चित केला आहे. त्यानंतर repository चे नाव smixs/iva वरून smixs/iva-agent असे बदलले आहे आणि खालील commands मध्ये नवीन नाव वापरले आहे.

बहुतेक self-hosted software ची सुरुवात DNS (domain name system) record आणि Certbot ने जारी केलेल्या Let's Encrypt certificate पासून होते. Iva हा स्तर पूर्णपणे वगळतो. त्यामुळे केवळ SSH ला परवानगी देणाऱ्या firewall मागील छोट्या VPS वरची deployment पूर्णपणे पुरेशी आहे.

Iva ला ओपन पोर्ट्सची गरज का नसते

iva-telegram-poll.service हा एक long polling ब्रिज आहे. तो Telegram च्या getUpdates API ला कॉल करतो आणि उत्तराची वाट पाहतो, त्यामुळे प्रत्येक कनेक्शन तुमच्या सर्व्हरवरून सुरू होते. Telegram कधीही परत कनेक्ट होत नाही, याचा अर्थ असा की कॉन्फिगर करण्यासाठी कोणताही reverse proxy नाही आणि विसरण्यासाठी कोणतेही certificate renewal नाही.

एजंट स्वतः 127.0.0.1 पोर्ट 8723 वर लिसन (listen) करतो. प्रकल्पाचे डॉक्युमेंटेशन याबद्दल स्पष्ट आहे: पोर्ट 8723 उघडू नका आणि तुम्ही त्याच्या समोर जो कोणताही reverse proxy लावाल, त्याने bearer token ची अट कायम ठेवली पाहिजे. इन्स्टॉलेशननंतर bind ॲड्रेस तपासा.

sudo ss -tlnp | grep 8723

ॲड्रेस 127.0.0.1:8723 असावा. 0.0.0.0:8723 सारखा वाइल्डकार्ड ॲड्रेस असल्यास, एजंटचे HTTP रूट्स इंटरनेटवरून उपलब्ध होऊ शकतात. तुम्ही बॉटला कोणतीही खाजगी माहिती पाठवण्यापूर्वी हे दुरुस्त केले पाहिजे.

त्यामुळे फायरवॉल बंद ठेवा. ufw enable इनेबल करण्यापूर्वी SSH ला परवानगी द्या, कारण SSH नियमाशिवाय ते तुम्ही टाइप करत असलेले सेशन बंद करेल.

sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status

वन-लाइन installer प्रत्यक्षात काय करतो

प्रकल्पाच्या मुख्य पृष्ठावर GitHub वरील script bash मध्ये pipe करणारी एक command दिली आहे. आधी ती script वाचा, कारण ती केवळ एक program install करण्यापेक्षा बरेच अधिक काम करते.

curl -fsSL https://raw.githubusercontent.com/smixs/iva-agent/main/install.sh -o iva-install.sh
less iva-install.sh
  • आढळलेल्या package manager च्या मदतीने ती system packages install करते: git, gh, python3, ffmpeg, pandoc आणि poppler-utils.
  • मशीनवर 1.5 GB पेक्षा कमी RAM आणि swap नसल्यास ती /swapfile येथे 2 GB ची swapfile तयार करते, कारण ती नसल्यास build process बंद केली जाते.
  • ती nvm install करते आणि त्यानंतर Node 24 install करते. Iva चालण्यासाठी ही किमान version आहे.
  • ती Python package manager uv ला ~/.local/bin मध्ये install करते.
  • ती repository ~/iva येथे clone करून npm ci चालवते.
  • ती agent-browser हे global npm package म्हणून install करते. त्यानंतर ते Chromium download करते. तसेच Google Workspace CLI, gws, sudo शिवाय ~/.local अंतर्गत ठेवते.
  • ती setup wizard चालवते, project build करते आणि vault तयार करते.
  • ती iva command ~/.local/bin मध्ये लिहिते आणि systemd user units install करते.

एका command साठी हे बरेच software आहे. README मध्ये सामान्य user म्हणून install करण्याची आणि root म्हणून install न करण्याची सूचना का दिली आहे, हेही यावरून स्पष्ट होते: agent चे shell tool नंतर installer कडे असलेल्या privileges सह चालते. Package installs आणि swapfile साठीच script sudo वापरते. Chromium step साठी कदाचित आणखी एकदा ते वापरले जाते. हे सर्व एका helper द्वारे केले जाते; तुम्ही आधीच root असाल, तर तो commands थेट चालवतो.

इन्स्टॉलेशनपूर्वी एक समर्पित युजर तयार करा

Iva साठी स्वतंत्र खाते तयार करा. हे एजंट Node च्या child_process द्वारे होस्टवर शेल कमांड्स चालवते. यात कोणतेही कंटेनर किंवा सँडबॉक्स नसल्यामुळे, ज्या खात्याद्वारे हे एजंट चालते, तीच तुमची सुरक्षा सीमा (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 iva

enable-linger महत्त्वाचे आहे कारण Iva हे systemd user युनिट्स म्हणून चालते. 'linger' सक्षम नसल्यास, युजरचे शेवटचे सेशन संपताच systemd त्या युजरच्या सर्व सेवा थांबवते. त्यामुळे तुम्ही SSH बंद केल्यास असिस्टंट बंद पडेल. हाच नियम तुम्ही स्वतः लिहिलेल्या systemd सेवा आणि टायमरसाठी लागू होतो.

केवळ इन्स्टॉलर पॅकेजेस जोडत असतानाच या खात्याला sudo ची आवश्यकता असते. इन्स्टॉलेशन पूर्ण झाल्यावर हे अधिकार काढून टाका.

sudo deluser iva sudo

SSH द्वारे थेट त्या युजर म्हणून लॉग इन करा. sudo -iu iva वापरून तुम्ही ज्या शेलमध्ये प्रवेश करता, त्यात DBUS_SESSION_BUS_ADDRESS किंवा XDG_RUNTIME_DIR सेट केलेले नसतात. त्यामुळे प्रत्येक systemctl --user कमांड Failed to connect to bus एररसह अपयशी ठरते. ही सुरक्षा सीमा निश्चित करणे म्हणजे कमीतकमी अधिकारांच्या युजरद्वारे सेवा चालवण्यासारखेच आहे.

bash मध्ये pipe करण्याऐवजी निश्चित केलेली release install करा

Installer मध्ये एक उपयुक्त वैशिष्ट्य आहे. तो कोणतेही clone करण्यापूर्वी तपासतो की script ज्या directory मध्ये आहे, तेथे package.json असलेले आणि "eve" समाविष्ट असलेले checkout आधीपासून आहे का. असे checkout असल्यास, तो ते checkout build करतो आणि clone वगळतो. त्यामुळे version तुम्ही स्वतः निवडू शकता.

git clone --branch v0.3.13 https://github.com/smixs/iva-agent.git ~/iva
cd ~/iva
git log -1 --oneline
bash install.sh

आता कोणता code चालू आहे हे तुम्हाला माहीत आहे. मात्र, त्या वेळेस main ज्या स्थितीत असेल, त्या स्थितीत script ने ते clone केल्यास हे माहीत नसते. Iva ने 4 आणि 6 August 2026 दरम्यान पाच releases प्रकाशित केल्या. त्यामुळे आज सकाळचा main आणि आज दुपारचा main एकच program नाहीत.

Tag checkout मुळे git detached HEAD स्थितीत जाते. हे व्यवस्थित चालते. मात्र त्याची मर्यादा समजून घ्या: iva update checkout ला update branch वर पुढे नेतो. त्यामुळे pin हा निश्चित प्रारंभबिंदू असतो; तो कायमस्वरूपी freeze नसतो. iva version package version आणि git commit दाखवतो. त्यामुळे सध्या कोणत्या स्थितीत आहात हे नेहमी पाहता येते.

जाणूनबुजून नंतरच्या release वर जाण्यासाठी tags ची यादी दाखवा. खालील v0.3.13 च्या जागी तुम्ही निवडलेला tag checkout करा. त्यानंतर checkout मधून पुन्हा installer चालवा. Installer मध्ये release tag साठी स्वतंत्र setting नाही. त्याचे documented environment variables REPO_URL, BRANCH आणि INSTALL_DIR आहेत. त्यामुळे git checkout हाच pin लागू करण्याचा एकमेव मार्ग आहे.

cd ~/iva
git fetch --tags
git tag --list 'v*' | sort -V | tail -5
git checkout v0.3.13
bash install.sh --skip-setup
iva restart

आधीपासून कार्यरत असलेल्या .env वर wizard पुन्हा चालू होऊ नये यासाठी --skip-setup वापरा. त्यानंतर iva version चालवून तुम्ही कोणत्या commit वर पोहोचलात ते पडताळा.

पाच विझार्ड पायऱ्या आणि त्यासाठी लागणाऱ्या की (keys)

  1. मॉडेल प्रोव्हायडर आणि मॉडेल. MODEL_PROVIDER हे opencode, ollama, openrouter किंवा codex स्वीकारते. विझार्ड रिअल-टाइममध्ये की (key) तपासतो आणि तुमच्या प्लॅनमध्ये उपलब्ध असलेली मॉडेल्सची यादी दाखवतो.
  2. व्हॉइस आणि सर्च. व्हॉइस नोट्सचे ट्रान्स्क्रिप्शन करण्यासाठी Deepgram की (key) लागते. वेब सर्च की (Tavily, Exa, Parallel किंवा Brave) ऐच्छिक आहे.
  3. @BotFather कडून मिळालेला Telegram bot token, जो getMe एंडपॉईंटवर तपासला जातो.
  4. ॲक्सेस कंट्रोल. तुम्ही तुमच्या बॉटला एक मेसेज पाठवता आणि विझार्ड getUpdates मधून तुमचा अंकी (numeric) युजर आयडी वाचतो.
  5. सिस्टम सेटिंग्ज. IANA टाइमझोन, व्हॉल्ट डिरेक्टरी आणि लोकल पोर्ट, जे डीफॉल्टनुसार 8723 असते.

यापैकी दोन गोष्टी अशा आहेत ज्या "एक कमांड" (one command) या वर्णनामुळे लपल्या जातात. Iva स्वतः कोणतेही मॉडेल सोबत आणत नाही, त्यामुळे कोणताही प्रतिसाद मिळण्यापूर्वी त्यासाठी पेड मॉडेल प्लॅन किंवा API की (key) आवश्यक असते. तसेच, ते स्वतः ऑडिओ ट्रान्स्क्राइब करत नाही, म्हणून व्हॉइस नोट्ससाठी स्वतंत्र सेवेची गरज असते. Deepgram चे nova-3 मॉडेल आणि DEEPGRAM_LANGUAGE=multi भाषा ओळखण्याचे काम करतात. नवीन Deepgram अकाउंट्सना सुरुवातीला काही क्रेडिट्स मिळतात, जे वैयक्तिक वापरासाठी अनेक महिने पुरतात. फक्त टेक्स्टसाठी मॉडेल की (key) पुरेशी आहे. केवळ व्हॉइससाठी Deepgram वर अवलंबून राहावे लागते.

विझार्डने काय लिहिले आहे ते तपासा.

grep -E '^(MODEL_PROVIDER|TELEGRAM_ALLOWED_USER_IDS|ASSISTANT_VAULT_DIR|IVA_PORT)=' ~/iva/.env
ls -l ~/iva/.env

ls ने -rw------- प्रिंट केले पाहिजे, ज्याचा मोड 0600 असावा, कारण त्या फाईलमध्ये तुम्ही पेस्ट केलेल्या सर्व की (keys) साठवलेल्या असतात. TELEGRAM_ALLOWED_USER_IDS मध्ये तुमचा अंकी (numeric) आयडी असणे आवश्यक आहे. अलाउलिस्ट (allowlist) 'fail closed' तत्त्वावर काम करते, त्यामुळे रिकामी व्हॅल्यू असल्यास Iva कोणालाही उत्तर देणार नाही.

प्रोसेस सुरू होताना मॉडेल एकदाच वाचले जाते. MODEL_PROVIDER किंवा .env मधील मॉडेलचे नाव बदलल्यास, जोपर्यंत तुम्ही iva restart चालवत नाही, तोपर्यंत कोणताही बदल होणार नाही. openrouter वर मॉडेलचे नाव हे anthropic/claude-sonnet-4.5 सारखे व्हेंडर स्लग (vendor slug) असते, केवळ नाव नसते. codex वर कोणतीही API की (key) नसते: iva login हे आधीच असलेल्या ChatGPT सबस्क्रिप्शनद्वारे साइन-इन करते.

Iva चालवण्यासाठी दरमहा किती खर्च येतो

तक्ताMonthly cost of a self-hosted Iva, published list prices, October 2026
या तक्त्यामागील डेटा
[
  {
    "plan": "Small VPS, always on",
    "usd_per_month": 5
  },
  {
    "plan": "OpenCode Go model plan",
    "usd_per_month": 10
  },
  {
    "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": 15
  }
]

ऑक्टोबर 2026 पर्यंतच्या प्रकाशित सूची-किंमती खाली दिल्या आहेत; या प्रत्यक्ष मोजमापांवर आधारित नाहीत. 5 US dollars किमतीचा छोटा VPS आणि 10 dollars किमतीचा OpenCode Go plan हा सर्वात स्वस्त पूर्ण setup आहे. त्याचा मासिक खर्च सुमारे 15 dollars येतो. OpenCode च्या Go page वर पहिल्या महिन्याची सूट नसलेली हीच मासिक किंमत दिली आहे. Iva च्या README मध्येही या संपूर्ण stack ची किंमत सुमारे 14 ते 15 dollars असल्याचे नमूद केले आहे. Ollama Cloud हा दुसरा fixed-rate पर्याय आहे. त्याच्या Pro plan ची किंमत 20 dollars आहे. Plan मध्ये समाविष्ट credits पेक्षा जास्त वापरासाठी अतिरिक्त शुल्क आकारले जाते. Deepgram चे starter credits उपलब्ध असेपर्यंत voice ची किंमत 0 आहे.

OpenRouter साठी येथे स्वतंत्र रकाना नाही, कारण त्याचे billing pay-as-you-go पद्धतीने होते. त्यामुळे तुमचे बिल तुमच्या वापरानुसार बदलते. या पर्यायावर विशेष लक्ष द्या. प्रत्येक turn मध्ये 131072 token ची context window वापरणारा assistant fixed plan पेक्षा लवकर अधिक खर्चिक ठरू शकतो. Context window variable ची किंमत model च्या प्रत्यक्ष आकारानुसार सेट करा. फुगवलेली किंमत केवळ अतिरिक्त tokens खर्च करते.

दोन सेवा आणि दोन टायमर्स

  • iva.service एजंट स्वतः चालवते.
  • iva-telegram-poll.service लाँग पोलिंग ब्रिज चालवते जो Telegram शी संवाद साधतो.
  • iva-memory-doctor.timer 05:00 वाजता सुरू होतो आणि व्हॉल्टवर रात्रीची देखभाल प्रक्रिया (maintenance pass) राबवतो.
  • 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 poll

iva 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 रिपॉझिटरी आहे, जे कोडपासून वेगळे असते. यामुळेच तुम्ही तुमच्या नोट्सना धक्का न लावता 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 कार्डचे प्रकार आणि डीके (decay) नियम निश्चित करते.

रोलअप्स प्रक्रियेच्या आत एका वेळापत्रकानुसार चालतात. पहाटे 04:00 वाजता होणारी दैनंदिन प्रक्रिया कालची ट्रान्सक्रिप्ट कार्ड्स आणि सारांशामध्ये रूपांतरित करते आणि CORE.md पुन्हा लिहिते. त्यानंतर साप्ताहिक, मासिक आणि वार्षिक प्रक्रिया त्या माहितीला संकुचित करतात. पहाटे 05:00 वाजता 'मेमरी डॉक्टर' कोणतीही मॉडेल प्रक्रिया न वापरता एक निश्चित (deterministic) प्रक्रिया राबवतो: तो स्कीमा लागू करतो, लिंक ग्राफ पुन्हा तयार करतो, इंडेक्स पुन्हा जनरेट करतो आणि त्यानंतर कमिट आणि पुश करतो.

तो पुश म्हणजे तुमचा बॅकअप असतो आणि हीच ती पायरी आहे जी अनेकदा दुर्लक्षित केली जाते. जर व्हॉल्टला कोणतेही git रिमोट नसेल, तर डॉक्टर gh द्वारे खाजगी GitHub रिपॉझिटरी तयार करण्याचा प्रयत्न करतो, ज्यासाठी ऑथेंटिकेटेड 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) आणि बॅकलिंक्स जसे आहेत तसे काम करतात, तसेच ग्राफ व्ह्यू देखील काम करतो. हाताने कार्डे आणि CORE.md एडिट करणे सुरक्षित आहे. MOC.md आणि .graph/ ला हात लावू नका, कारण रात्रीची प्रक्रिया या दोन्ही गोष्टी पुन्हा जनरेट करते.

वॉल्टला तुमच्या आयुष्याची नोंदवही समजा

ती डिरेक्टरी तुम्ही काय बोललात, कोणाला भेटलात आणि काय निर्णय घेतले, याची तारखेनुसार केलेली नोंद आहे, जी तुम्ही भाड्याने घेतलेल्या मशीनवर असते. यातून दोन गोष्टी निष्पन्न होतात.

सेल्फ-होस्टिंगमुळे स्टोरेजची जागा बदलते, प्रक्रियेची (processing) नाही. प्रत्येक विनंती तुमच्या मॉडेल प्रोव्हायडरकडे जाते आणि प्रत्येक व्हॉइस नोट Deepgram कडे जाते. वॉल्ट तुमचा आहे, पण त्या सेवा देणाऱ्या कंपन्यांपासून विनंत्या खाजगी राहत नाहीत. मेमरी लेयर स्वतः चालवणे, जसे की तुमच्या स्वतःच्या VPS वर Mem0 मेमरी सर्व्हर, याचे स्वरूप सारखेच आहे: डेटा स्टोअर स्थानिक असतो, पण मॉडेल कॉल मात्र बाहेर जातो. जर एखादा विषय तिसऱ्या पक्षासाठी खूप संवेदनशील असेल, तर तो चॅटमध्ये टाकू नका.

त्या अकाउंटची व्याप्ती संपूर्ण वॉल्टपर्यंत असते. Iva ची टूल्स Node च्या fs आणि child_process द्वारे थेट होस्टवर चालतात, त्यात Docker किंवा सँडबॉक्स नसतो. त्यामुळे जर एखादी विनंती हायजॅक झाली, तर सर्व्हिस युजरला जेवढे अधिकार आहेत, तेवढा प्रवेश त्या हॅकरला मिळतो. म्हणूनच इन्स्टॉलेशननंतर अकाउंटमध्ये कोणतेही sudo राहत नाही आणि अलाउलिस्टकडे (allowlist) वरवर दिसते त्यापेक्षा जास्त लक्ष देणे गरजेचे आहे: हे ते प्रवेशद्वार आहे जे ठरवते की कोणाचे मेसेज तुमच्या सर्व्हरवर कमांड्स बनतील. जर तुम्हाला काहीही उघड न करता असिस्टंट तुमच्या खिशात हवा असेल, तर तुमच्या फोनवरून सेल्फ-होस्टेड Hermes एजंटपर्यंत पोहोचण्यासाठी हाच पॅटर्न वापरला जातो, जिथे चॅट क्लायंट ते काम करतो जे अन्यथा पब्लिक एंडपॉइंटला करावे लागले असते.

काय बिघडते आणि तुम्हाला कोणता संदेश दिसेल

Build killed, exit 137. कर्नलच्या out of memory killer ने ही बिल्ड प्रक्रिया थांबवली आहे. जर RAM 1.5 GB पेक्षा कमी असेल आणि swap नसेल, तरच इंस्टॉलर swap जोडतो. त्यामुळे स्वतः swap जोडा आणि इंस्टॉलर पुन्हा चालवा.

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
free -h

Failed to connect to bus. जेव्हा शेलमध्ये user session bus नसते, तेव्हा प्रत्येक systemctl --user कमांड हा संदेश देते. sudo -iu iva तुम्हाला नेमकी हीच स्थिती देते. त्या युजरच्या नावाने एक सामान्य SSH सेशन उघडा किंवा कमांड चालवण्यापूर्वी XDG_RUNTIME_DIR=/run/user/$(id -u iva) एक्सपोर्ट करा.

बॉट तुमच्याकडे दुर्लक्ष करतो. TELEGRAM_ALLOWED_USER_IDS रिकामे आहे आणि allowlist 'fail closed' स्थितीत आहे. बॉटला एक मेसेज पाठवा: तो तुम्हाला तुमचा numeric 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 ला पाठवण्यासाठी काहीही उरत नाही. फाईल पाठवण्यापूर्वी तिचे तुकडे करा.

ffmpeg -i long.ogg -f segment -segment_time 600 -c copy part-%02d.ogg

टर्न (turn) अडकून पडतो आणि प्रतिसाद देत नाही. अडकलेली workflow स्थिती रीस्टार्टनंतरही तशीच राहते आणि पुन्हा रांगेत (re-queue) जाते, त्यामुळे फक्त रीस्टार्ट केल्याने ती साफ होत नाही. iva reset ती स्थिती क्वारंटाईन करते आणि दोन्ही सर्व्हिसेस रीस्टार्ट करते. चॅटमध्ये /new टाईप केल्यास नवीन संभाषण सुरू होते.

Ubuntu 24.04 वर Chromium अपयशी ठरते. Ubuntu 24.04 AppArmor द्वारे unprivileged user namespaces ब्लॉक करते, त्यामुळे Chromium चा स्वतःचा सँडबॉक्स सुरू होऊ शकत नाही आणि agent-browser अपयशी ठरते. इंस्टॉलर "--no-sandbox" ला ~/.agent-browser/config.json मध्ये लिहून यावर उपाय करतो. हे लक्षात ठेवा. यामुळे ब्राउझरचे आयसोलेशन कमी होते, म्हणूनच या अकाउंटकडे Iva व्यतिरिक्त कोणतीही महत्त्वाची माहिती नसावी.

FAQ

Iva स्वतः होस्ट करण्यासाठी domain किंवा open port आवश्यक आहे का?

नाही. Iva long polling द्वारे Telegram शी संवाद साधतो: iva-telegram-poll.service, getUpdates ला call करून प्रतीक्षा करतो. त्यामुळे प्रत्येक connection तुमच्या server कडून outbound असतो. बाहेरून server पर्यंत कोणत्याही connection ला पोहोचण्याची गरज नसते. म्हणून DNS record किंवा certificate आवश्यक नाही. Agent चा स्वतःचा HTTP port, 8723, 127.0.0.1 शी bind होतो. Project documentation मध्ये तो expose करू नका असे स्पष्ट सांगितले आहे. SSH ला परवानगी देणारा आणि इतर सर्व traffic रोखणारा firewall योग्य configuration आहे.

Iva चालवण्यासाठी दरमहा किती खर्च येतो?

प्रकाशित October 2026 list prices नुसार, 5 dollars किमतीचा छोटा VPS आणि 10 dollars किमतीचा सर्वात स्वस्त flat rate model plan मिळून दरमहा सुमारे 15 US dollars खर्च येतो. त्याऐवजी Ollama Cloud ची किंमत 20 dollars आहे. त्यात समाविष्ट credits पेक्षा जास्त वापरासाठी अतिरिक्त billing होते. Deepgram चे starter credits सुरुवातीला voice वापरासाठी पुरतात. Web search tiers मध्ये free allowances आहेत. OpenRouter मध्ये pay as you go पद्धत आहे. त्यामुळे त्याची निश्चित मासिक किंमत नाही.

Iva माझा data कुठे ठेवतो आणि त्याचा backup कसा घ्यावा?

डीफॉल्टनुसार data ~/iva/vault मध्ये ठेवला जातो. ही जागा ASSISTANT_VAULT_DIR द्वारे निश्चित केली जाते. हा plain markdown चा स्वतंत्र private git repository आहे: CORE.md, daily/YYYY-MM-DD.md, cards/ आणि summaries/. 05:00 वाजता memory doctor त्यात commit आणि push करतो. Repository ला remote असल्यासच याचा उपयोग होतो. त्यामुळे setup दरम्यान gh auth login चालवा किंवा स्वतःचा remote जोडा. तसेच tar czf ~/iva-vault-backup.tgz -C ~/iva vault वापरून offline copy ठेवा आणि ती file server च्या बाहेर हलवा.

Iva स्वतः होस्ट केल्यास माझा data private राहतो का?

Storage तुमच्या नियंत्रणात असतो. Processing मात्र तुमच्या नियंत्रणात नसते. Vault push करेपर्यंत तुमच्या disk वरच राहतो. .env ही file service user च्या मालकीची असून तिचा mode 0600 आहे. Model calls आणि voice transcription cloud APIs वापरतात. त्यामुळे हे messages तुमच्या model provider आणि Deepgram कडे जातात. Iva ला MIT license आहे. त्यामुळे तो नेमका काय पाठवतो हे तुम्ही वाचू शकता आणि त्यात बदल करू शकता. Telegram allowlist fail closed पद्धतीने काम करते. म्हणजे रिकामा TELEGRAM_ALLOWED_USER_IDS सर्वांना, तुम्हालाही, block करतो.

Iva कोणत्या model providers ला support करतो?

Pinned v0.3.13 release मध्ये MODEL_PROVIDER, opencode (OpenCode Go), ollama (Ollama Cloud), openrouter आणि codex स्वीकारतो. OpenRouter मध्ये anthropic/claude-sonnet-4.5 सारखा vendor slug वापरला जातो आणि सर्वाधिक models उपलब्ध असतात. codex, iva login द्वारे विद्यमान ChatGPT subscription मध्ये sign in करतो आणि API key वापरत नाही. नंतरच्या releases मध्ये Claude subscription आणि custom OpenAI compatible endpoint यांसह आणखी routes जोडले आहेत. Provider सेट करा. Model च्या वास्तविक आकाराशी जुळणारे context window सेट करा. त्यानंतर iva restart चालवा, कारण process सुरू होताना model एकदाच read केला जातो.