SSD Nodes Learn Hosting plans →

Iva Telegram AI అసిస్టెంట్‌ని సెల్ఫ్-హోస్ట్ చేయడం ఎలా?

Iva AI అసిస్టెంట్‌ని మీ VPSలో సురక్షితంగా రన్ చేయండి. ఓపెన్ పోర్ట్‌లు లేదా డొమైన్ అవసరం లేకుండా, systemd సర్వీసెస్ మరియు Obsidian వాల్ట్ బ్యాకప్‌తో దీన్ని ఎలా సెటప్ చేయాలో తెలుసుకోండి.

మీరు ఏమి నిర్మిస్తున్నారు

Iva అనేది ఒక self-hosted Telegram AI అసిస్టెంట్. దీనిని ఇన్‌బౌండ్ పోర్ట్‌లు తెరవాల్సిన అవసరం లేకుండా, డొమైన్ అవసరం లేకుండా డిప్లాయ్ చేయగల అతికొద్ది అప్లికేషన్లలో ఇది ఒకటి. దీనికి సర్టిఫికేట్ కూడా అవసరం లేదు, ఎందుకంటే సర్వర్‌లో ఏదీ పబ్లిక్ నెట్‌వర్క్ కోసం వినదు (listen చేయదు). ఈ సర్వీస్ Telegram కు అవుట్‌బౌండ్ కనెక్షన్‌ను ఏర్పాటు చేసి, దానిని తెరిచి ఉంచి, మీ సందేశాలను చదువుతుంది. మిగిలినవన్నీ ఆ ఒక్క అవుట్‌బౌండ్ కనెక్షన్ ద్వారానే జరుగుతాయి.

Iva అనేది MIT లైసెన్స్ పొందినది మరియు Node లో వ్రాయబడింది. దీని మెమరీ అనేది సాధారణ markdown ఫైళ్ల ఫోల్డర్, వీటిని Obsidian నేరుగా ఓపెన్ చేయగలదు. కాబట్టి, యాప్ లేకపోయినా అది మీ గురించి ఉంచే నోట్స్ చదవడానికి వీలుగా ఉంటాయి. ఈ గైడ్ 6 ఆగస్టు 2026న విడుదలైన v0.3.13 వెర్షన్‌ను ఉపయోగిస్తుంది. అప్పటి నుండి రిపోజిటరీ పేరు smixs/iva నుండి smixs/iva-agent కి మార్చబడింది, కాబట్టి క్రింది కమాండ్‌లు కొత్త పేరునే ఉపయోగిస్తాయి.

చాలా వరకు self-hosted సాఫ్ట్‌వేర్‌లు DNS (domain name system) రికార్డు మరియు Certbot ద్వారా జారీ చేయబడిన Let's Encrypt సర్టిఫికేట్ తో ప్రారంభమవుతాయి. Iva ఆ పొరను పూర్తిగా దాటవేస్తుంది, అందుకే SSH ని మాత్రమే అనుమతించే ఫైర్‌వాల్ వెనుక ఉన్న ఒక చిన్న VPS దీనికి పూర్తి స్థాయి డిప్లాయ్‌మెంట్ అవుతుంది.

Iva కు ఓపెన్ పోర్ట్‌లు ఎందుకు అవసరం లేదు

iva-telegram-poll.service అనేది ఒక long polling bridge. ఇది 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 రూట్‌లు ఇంటర్నెట్ నుండి అందుబాటులో ఉన్నాయని అర్థం, మరియు మీరు బాట్‌కు ఏదైనా ప్రైవేట్ సమాచారాన్ని పంపే ముందు దానిని సరిచేయాలి.

కాబట్టి ఫైర్‌వాల్ మూసి ఉంచండి. మీరు దానిని ఎనేబుల్ చేసే ముందు SSH ని అనుమతించండి, ఎందుకంటే SSH రూల్ లేని ufw enable మీరు టైప్ చేస్తున్న సెషన్‌ను క్లోజ్ చేస్తుంది.

sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status

వన్-లైన్ ఇన్‌స్టాలర్ వాస్తవానికి ఏమి చేస్తుంది

ప్రాజెక్ట్ యొక్క మొదటి పేజీలో GitHub నుండి ఒక స్క్రిప్ట్‌ను నేరుగా bash లోకి పైప్ (pipe) చేసే ఒక కమాండ్ ఉంటుంది. ఆ స్క్రిప్ట్‌ను ముందుగా చదవండి, ఎందుకంటే అది కేవలం ఒక ప్రోగ్రామ్‌ను ఇన్‌స్టాల్ చేయడమే కాకుండా మరిన్ని పనులు చేస్తుంది.

curl -fsSL https://raw.githubusercontent.com/smixs/iva-agent/main/install.sh -o iva-install.sh
less iva-install.sh
  • ఇది గుర్తించబడిన ప్యాకేజీ మేనేజర్‌ని ఉపయోగించి సిస్టమ్ ప్యాకేజీలను ఇన్‌స్టాల్ చేస్తుంది: git, gh, python3, ffmpeg, pandoc మరియు poppler-utils.
  • సర్వర్‌లో 1.5 GB కంటే తక్కువ RAM ఉండి, swap లేనప్పుడు, ఇది /swapfile వద్ద 2 GB swapfileని సృష్టిస్తుంది; లేకపోతే బిల్డ్ ప్రక్రియ ఆగిపోతుంది.
  • ఇది nvmని, ఆపై Iva రన్ అవ్వడానికి అవసరమైన కనీస వెర్షన్ అయిన Node 24ని ఇన్‌స్టాల్ చేస్తుంది.
  • ఇది Python ప్యాకేజీ మేనేజర్ అయిన uvని ~/.local/binలోకి ఇన్‌స్టాల్ చేస్తుంది.
  • ఇది రిపోజిటరీని ~/ivaకి క్లోన్ చేసి, npm ciని రన్ చేస్తుంది.
  • ఇది agent-browserని గ్లోబల్ npm ప్యాకేజీగా ఇన్‌స్టాల్ చేస్తుంది. ఇది Chromiumని డౌన్‌లోడ్ చేసి, Google Workspace CLI అయిన gwsని sudo లేకుండా ~/.local కింద ఉంచుతుంది.
  • ఇది సెటప్ విజార్డ్‌ను రన్ చేసి, ప్రాజెక్ట్‌ను బిల్డ్ చేసి, వాల్ట్‌ను (vault) సృష్టిస్తుంది.
  • ఇది iva కమాండ్‌ను ~/.local/binలో రాసి, systemd యూజర్ యూనిట్లను ఇన్‌స్టాల్ చేస్తుంది.

ఒక్క లైన్ కమాండ్ కోసం ఇది చాలా ఎక్కువ సాఫ్ట్‌వేర్. అందుకే READMEలో రూట్ (root) యూజర్‌గా కాకుండా, సాధారణ యూజర్‌గా ఇన్‌స్టాల్ చేయమని సూచించబడింది: ఇన్‌స్టాలర్‌కు ఉన్న అధికారాలతోనే ఏజెంట్ యొక్క షెల్ టూల్ తర్వాత రన్ అవుతుంది. ఈ స్క్రిప్ట్ ప్యాకేజీ ఇన్‌స్టాలేషన్లు మరియు swapfile కోసం మాత్రమే sudoని పిలుస్తుంది. అలాగే, మీరు ఇప్పటికే రూట్ యూజర్‌గా ఉన్నప్పుడు కమాండ్లను నేరుగా రన్ చేసే ఒక హెల్పర్ ద్వారా Chromium స్టెప్ కోసం మరొకసారి పిలవవచ్చు.

ఇన్‌స్టాలేషన్‌కు ముందు ప్రత్యేక వినియోగదారుని సృష్టించండి

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

Iva అనేది systemd user యూనిట్లుగా రన్ అవుతుంది కాబట్టి enable-linger చాలా ముఖ్యం. 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 కు పైప్ చేయడానికి బదులుగా pinned release ను ఇన్‌స్టాల్ చేయడం

ఈ ఇన్‌స్టాలర్‌కు ఒక ఉపయోగకరమైన లక్షణం ఉంది. ఇది దేనినైనా క్లోన్ (clone) చేసే ముందు, స్క్రిప్ట్ ఉన్న డైరెక్టరీలో ఇప్పటికే package.json ఉందో లేదో తనిఖీ చేస్తుంది, అందులో "eve" ఉందో లేదో చూస్తుంది. ఒకవేళ ఉంటే, అది ఆ చెకౌట్‌ను బిల్డ్ చేస్తుంది మరియు క్లోన్ చేయడాన్ని దాటవేస్తుంది. కాబట్టి మీరు వెర్షన్‌ను మీరే ఎంచుకోవచ్చు.

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

ఇప్పుడు ఏ కోడ్ రన్ అవుతుందో మీకు తెలుస్తుంది. ఆ గంటలో ఏ స్థితిలో ఉంటే ఆ స్థితిలో స్క్రిప్ట్ main ను క్లోన్ చేసినప్పుడు మీకు అది తెలియదు. Iva ఆగస్టు 4 మరియు 6, 2026 మధ్య ఐదు రిలీజ్‌లను విడుదల చేసింది, కాబట్టి ఈ ఉదయం ఉన్న main మరియు ఈ మధ్యాహ్నం ఉన్న main ఒకే ప్రోగ్రామ్ కాదు.

ఒక ట్యాగ్ చెకౌట్, git ను detached HEAD స్థితిలో ఉంచుతుంది. అది బాగానే పనిచేస్తుంది, కానీ పరిమితిని అర్థం చేసుకోండి: iva update చెకౌట్‌ను అప్‌డేట్ బ్రాంచ్ మీదకు ముందుకు తీసుకెళ్తుంది, కాబట్టి ఈ పిన్ (pin) అనేది ఒక తెలిసిన ప్రారంభ బిందువు మాత్రమే, శాశ్వతమైన ఫ్రీజ్ కాదు. iva version ప్యాకేజీ వెర్షన్ మరియు git కమిట్‌ను ప్రింట్ చేస్తుంది, కాబట్టి మీరు ఎక్కడ ఉన్నారో ఎప్పుడైనా చూడవచ్చు.

తర్వాతి రిలీజ్‌కు ఉద్దేశపూర్వకంగా మారడానికి, ట్యాగ్‌లను లిస్ట్ చేయండి, కింద ఉన్న v0.3.13 స్థానంలో మీరు ఎంచుకున్న దానిని చెక్ అవుట్ చేయండి, ఆపై చెకౌట్ లోపల నుండి ఇన్‌స్టాలర్‌ను మళ్లీ రన్ చేయండి. ఇన్‌స్టాలర్‌కు రిలీజ్ ట్యాగ్ కోసం ఎటువంటి సెట్టింగ్ లేదు. దీని డాక్యుమెంట్ చేయబడిన ఎన్విరాన్‌మెంట్ వేరియబుల్స్ REPO_URL, BRANCH మరియు INSTALL_DIR, కాబట్టి git చెకౌట్ మాత్రమే పిన్నింగ్ చేసే ఏకైక మార్గం.

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

--skip-setup, ఇప్పటికే పనిచేస్తున్న .env పై విజార్డ్ మళ్లీ రన్ అవ్వకుండా ఆపుతుంది. మీరు ఏ కమిట్‌పై ఉన్నారో నిర్ధారించుకోవడానికి ఆ తర్వాత iva version రన్ చేయండి.

ఐదు విజార్డ్ దశలు మరియు వాటికి అవసరమైన కీలు

  1. మోడల్ ప్రొవైడర్ మరియు మోడల్. MODEL_PROVIDER అనేది opencode, ollama, openrouter లేదా codex లను అంగీకరిస్తుంది. విజార్డ్ మీ కీని లైవ్‌లో ధృవీకరించి, మీ ప్లాన్‌లో అందుబాటులో ఉన్న మోడళ్లను జాబితా చేస్తుంది.
  2. వాయిస్ మరియు సెర్చ్. వాయిస్ నోట్స్‌ను ట్రాన్స్‌క్రైబ్ చేయడానికి Deepgram కీ అవసరం. వెబ్ సెర్చ్ కీ (Tavily, Exa, Parallel లేదా Brave) ఐచ్ఛికం.
  3. @BotFather నుండి పొందిన Telegram బాట్ టోకెన్, ఇది getMe ఎండ్‌పాయింట్ ద్వారా ధృవీకరించబడుతుంది.
  4. యాక్సెస్ కంట్రోల్. మీరు మీ బాట్‌కు ఒక మెసేజ్ పంపినప్పుడు, విజార్డ్ మీ సంఖ్యాపరమైన యూజర్ IDని getUpdates నుండి చదువుతుంది.
  5. సిస్టమ్ సెట్టింగ్‌లు. IANA టైమ్‌జోన్, వాల్ట్ డైరెక్టరీ మరియు లోకల్ పోర్ట్ (డిఫాల్ట్‌గా 8723).

"ఒకే కమాండ్" అనే పద్ధతిలో దాగి ఉన్న రెండు ముఖ్యమైన డిపెండెన్సీలు ఇవి. 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/.env

ls అనేది -rw------- ని, 0600 మోడ్‌తో ప్రింట్ చేయాలి, ఎందుకంటే మీరు పేస్ట్ చేసిన ప్రతి కీ ఆ ఫైల్‌లోనే ఉంటుంది. TELEGRAM_ALLOWED_USER_IDS లో మీ సంఖ్యాపరమైన ID ఉండాలి. అలోలిస్ట్ (allowlist) డిఫాల్ట్‌గా "fail closed" పద్ధతిలో ఉంటుంది, కాబట్టి ఆ విలువ ఖాళీగా ఉంటే Iva ఎవరికీ సమాధానం ఇవ్వదు.

మోడల్ అనేది ప్రాసెస్ ప్రారంభమైనప్పుడు ఒకసారి మాత్రమే చదవబడుతుంది. MODEL_PROVIDER ని ఎడిట్ చేసినా లేదా .env లో మోడల్ పేరు మార్చినా, మీరు iva restart రన్ చేసే వరకు ఎటువంటి మార్పు ఉండదు. openrouter పై మోడల్ పేరు అనేది anthropic/claude-sonnet-4.5 వంటి వెండర్ స్లగ్ (vendor slug) అయి ఉండాలి, కేవలం పేరు మాత్రమే ఉంటే సరిపోదు. codex లో ఎటువంటి API కీ ఉండదు: 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 నాటికి ప్రచురించబడిన జాబితా ధరలు, వాస్తవ కొలతలు కావు. ఒక చిన్న VPS 5 US డాలర్లు మరియు OpenCode Go ప్లాన్ 10 డాలర్లతో కలిపి, సుమారు 15 డాలర్ల నెలవారీ ఖర్చుతో అత్యంత చౌకైన పూర్తి సెటప్ లభిస్తుంది. OpenCode యొక్క స్వంత Go పేజీలో మొదటి నెల డిస్కౌంట్ లేకుండానే ఈ నెలవారీ ధరను పేర్కొన్నారు, మరియు Iva యొక్క README లో కూడా ఇదే స్టాక్ మొత్తం కలిపి 14 నుంచి 15 డాలర్లు ఉంటుందని ఉంది. Ollama Cloud మరొక ఫ్లాట్ రేట్ ఎంపిక, దీని Pro ప్లాన్ ధర 20 డాలర్లు; ప్లాన్‌లో చేర్చిన క్రెడిట్స్ దాటి వాడితే అదనంగా బిల్లు పడుతుంది. Deepgram స్టార్టర్ క్రెడిట్స్ అయిపోయే వరకు Voice ఖర్చు 0 ఉంటుంది.

OpenRouter కు ఇక్కడ ఎటువంటి ధర లేదు ఎందుకంటే ఇది pay as you go పద్ధతిలో పనిచేస్తుంది, కాబట్టి మీ బిల్లు మీ వినియోగంపై ఆధారపడి ఉంటుంది. ఇది గమనించాల్సిన ఎంపిక: ప్రతి turn లో 131072 token context window ను ఉపయోగించే అసిస్టెంట్, ఫ్లాట్ ప్లాన్ కంటే త్వరగా ఎక్కువ ఖర్చు చేయగలదు. Context window వేరియబుల్‌ను మోడల్ యొక్క అసలు పరిమాణానికి సెట్ చేయండి, ఎందుకంటే పెంచిన విలువ కేవలం tokens ను వృథా చేస్తుంది.

రెండు సేవలు మరియు రెండు టైమర్లు

  • iva.service ఏజెంట్‌ను స్వయంగా రన్ చేస్తుంది.
  • iva-telegram-poll.service టెలిగ్రామ్‌తో కమ్యూనికేట్ చేసే లాంగ్ పోలింగ్ బ్రిడ్జ్‌ను రన్ చేస్తుంది.
  • iva-memory-doctor.timer 05:00 గంటలకు ట్రిగ్గర్ అయ్యి, వాల్ట్ (vault) పై రాత్రిపూట నిర్వహణ పనులను (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 దానికి గల కారణాన్ని తెలియజేస్తుంది.

డీబగ్గింగ్ చేసేటప్పుడు ఈ విభజన ముఖ్యం. ఏజెంట్ డౌన్ అయినప్పుడు కూడా బ్రిడ్జ్ లైవ్‌లో ఉండి పోలింగ్ చేయవచ్చు, అప్పుడు టెలిగ్రామ్ మీ సందేశాన్ని స్వీకరిస్తుంది కానీ దానికి ఎటువంటి సమాధానం రాదు. 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 ఆ రోజు జరిగిన సంభాషణల ప్రతి (transcript), దీనికి కేవలం కొత్త సమాచారాన్ని జోడించడం మాత్రమే జరుగుతుంది.
  • vault/cards/ కాంటాక్ట్‌లు, ప్రాజెక్ట్‌లు, నిర్ణయాలు, ఆలోచనలు మరియు నోట్స్ కోసం టైప్ చేసిన కార్డ్‌లను కలిగి ఉంటుంది.
  • vault/summaries/daily/, weekly/, monthly/ మరియు yearly/ రోలప్‌లను (rollups) కలిగి ఉంటాయి.
  • vault/attachments/ ఫైళ్లను తేదీల వారీగా కలిగి ఉంటుంది, మరియు vault/.graph/ లింక్ గ్రాఫ్‌ను కలిగి ఉంటుంది.
  • vault/schema.json కార్డ్ రకాలను మరియు వాటి కాలపరిమితి (decay) నియమాలను నిర్వచిస్తుంది.

రోలప్‌లు ప్రాసెస్ లోపల నిర్ణీత షెడ్యూల్ ప్రకారం నడుస్తాయి. ప్రతిరోజూ 04:00 గంటలకు జరిగే ప్రక్రియ నిన్నటి ట్రాన్స్‌క్రిప్ట్‌ను కార్డ్‌లుగా మరియు సారాంశంగా మారుస్తుంది, ఆపై CORE.md ని తిరిగి రాస్తుంది. ఆ తర్వాత వారపు, నెలవారీ మరియు వార్షిక పాస్‌లు వాటిని క్రమంగా కుదిస్తాయి (compress). 05:00 గంటలకు మెమరీ డాక్టర్ ఎటువంటి మోడల్ అవసరం లేకుండా ఒక నిర్ణయాత్మక ప్రక్రియను నిర్వహిస్తుంది: ఇది స్కీమాను అమలు చేస్తుంది, లింక్ గ్రాఫ్‌ను పునర్నిర్మిస్తుంది, ఇండెక్స్‌ను తిరిగి రూపొందిస్తుంది, ఆపై కమిట్ చేసి పుష్ చేస్తుంది.

ఆ పుష్ మీ బ్యాకప్, మరియు చాలామంది దీనిని విస్మరిస్తారు. ఒకవేళ వాల్ట్‌కు 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/ జోలికి వెళ్లకండి, ఎందుకంటే రాత్రిపూట జరిగే ప్రక్రియ వీటిని తిరిగి రూపొందిస్తుంది.

Vault ను మీ జీవితపు లాగ్‌గా పరిగణించండి

ఆ డైరెక్టరీ మీరు అద్దెకు తీసుకున్న మెషీన్‌లో, మీరు ఏమి చెప్పారు, ఎవరిని కలిశారు మరియు ఏమి నిర్ణయించుకున్నారు అనే విషయాల యొక్క తేదీల వారీ రికార్డు. దీని నుండి రెండు విషయాలు అర్థం చేసుకోవాలి.

Self-hosting అనేది నిల్వను మాత్రమే మారుస్తుంది, ప్రాసెసింగ్‌ను కాదు. ప్రతి turn మీ మోడల్ ప్రొవైడర్‌కు వెళ్తుంది, మరియు ప్రతి వాయిస్ నోట్ Deepgram కు వెళ్తుంది. Vault మీదే, కానీ ఆ అభ్యర్థనలు వాటిని అందించే కంపెనీల నుండి ప్రైవేట్‌గా ఉండవు. మెమరీ లేయర్‌ను మీరే స్వయంగా రన్ చేయడం, ఉదాహరణకు మీ స్వంత VPSలో Mem0 మెమరీ సర్వర్ రన్ చేయడం, కూడా ఇదే విధంగా ఉంటుంది: స్టోర్ స్థానికంగా ఉన్నప్పటికీ, మోడల్ కాల్ మాత్రం బయటకు వెళ్తుంది. ఏదైనా విషయం మూడవ పక్షానికి తెలియకూడనంత సున్నితమైనదైతే, దానిని చాట్‌లో ఉంచకండి.

ఆ ఖాతా యొక్క పరిధి మొత్తం vault వరకు ఉంటుంది. Iva యొక్క టూల్స్ Node యొక్క fs మరియు child_process ద్వారా నేరుగా హోస్ట్‌లో రన్ అవుతాయి, ఇందులో Docker లేదా sandbox ఉండవు. కాబట్టి, ఒక turn హైజాక్ చేయబడితే, ఆ సర్వీస్ యూజర్‌కు ఉన్నంత యాక్సెస్ దానికి లభిస్తుంది. అందుకే ఇన్‌స్టాలేషన్ తర్వాత ఆ ఖాతాలో ఎటువంటి sudo ఉండదు, మరియు allowlist చూడటానికి సాధారణంగా అనిపించినా దానికి ఎక్కువ ప్రాముఖ్యత ఇవ్వాలి: ఎవరి సందేశాలు మీ సర్వర్‌లో కమాండ్లుగా మారాలో నిర్ణయించే గేట్ అదే. మీరు ఏదీ ఓపెన్ చేయకుండానే అసిస్టెంట్‌ను మీ జేబులో ఉంచుకోవాలనుకుంటే, మీ ఫోన్ నుండి self-hosted Hermes ఏజెంట్‌ను చేరుకోవడానికి ఇదే పద్ధతిని ఉపయోగిస్తారు, ఇక్కడ పబ్లిక్ ఎండ్‌పాయింట్ చేసే పనిని చాట్ క్లయింట్ చేస్తుంది.

ఏమి విఫలమవుతుంది మరియు మీకు కనిపించే సందేశం

Build killed, exit 137. RAM 1.5 GB కంటే తక్కువగా ఉండి, swap లేనప్పుడు kernel యొక్క out of memory killer ఈ build ను నిలిపివేస్తుంది. కాబట్టి, మీరే స్వయంగా swap ను జోడించి, installer ను మళ్లీ రన్ చేయండి.

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

Failed to connect to bus. shell లో user session bus లేనప్పుడు ప్రతి systemctl --user కమాండ్ ఈ సందేశాన్ని చూపిస్తుంది, sudo -iu iva మీకు అదే అందిస్తుంది. ఆ user గా సాధారణ SSH session ను తెరవండి, లేదా కమాండ్ రన్ చేసే ముందు XDG_RUNTIME_DIR=/run/user/$(id -u iva) ను export చేయండి.

Bot మిమ్మల్ని పట్టించుకోదు. TELEGRAM_ALLOWED_USER_IDS ఖాళీగా ఉంది, మరియు allowlist డిఫాల్ట్‌గా ఏ అభ్యర్థనను అనుమతించదు. Bot కు ఒక సందేశం పంపండి: అది మీ numeric ID ని మాత్రమే సమాధానంగా పంపుతుంది. ఆ ID ని .env లో ఉంచి, iva restart ను రన్ చేయండి.

iva config తర్వాత Bot నిశ్శబ్దంగా మారుతుంది. Wizard, ASSISTANT_HOST ను అప్‌డేట్ చేయకుండానే IVA_PORT ను మార్చగలదు, దీనివల్ల bridge ఎటువంటి స్పందన లేని port కు కనెక్ట్ అవుతుంది. ఆ రెండు లైన్లను సరిపోల్చి, ఆపై restart చేయండి.

grep -E '^(IVA_PORT|ASSISTANT_HOST)=' ~/iva/.env
iva restart

Voice note కు సమాధానం రాదు. Telegram Bot API 20 MB కంటే ఎక్కువ ఉన్న ఫైల్ డౌన్‌లోడ్‌లను అనుమతించదు, కాబట్టి bridge కు పెద్ద ఆడియో ఫైల్స్ అందవు మరియు Deepgram కు పంపడానికి ఏమీ ఉండదు. ఫైల్‌ను పంపే ముందు ముక్కలుగా విభజించండి.

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

Turn ఆగిపోయి సమాధానం ఇవ్వదు. Workflow స్థితి నిలిచిపోయినప్పుడు (wedged), restart చేసినా అది మళ్లీ queue లోకి చేరుతుంది, కాబట్టి కేవలం restart చేయడం వల్ల సమస్య పరిష్కారం కాదు. iva reset ఆ స్థితిని quarantine చేసి, రెండు సేవలను restart చేస్తుంది. చాట్‌లో /new పంపడం ద్వారా కొత్త సంభాషణను ప్రారంభించవచ్చు.

Ubuntu 24.04 లో Chromium విఫలమవుతుంది. Ubuntu 24.04, AppArmor ద్వారా unprivileged user namespaces ను నిరోధిస్తుంది, దీనివల్ల Chromium యొక్క sandbox ప్రారంభం కాక agent-browser విఫలమవుతుంది. Installer, "--no-sandbox" ను ~/.agent-browser/config.json లోకి రాయడం ద్వారా దీనిని అధిగమిస్తుంది. ఇది అక్కడ ఉందని గమనించండి. ఇది బ్రౌజర్ యొక్క isolation స్థాయిని తగ్గిస్తుంది, అందుకే ఈ account లో Iva తప్ప మరే ఇతర ముఖ్యమైన డేటా ఉండకూడదు.

FAQ

Iva ను self-host చేయడానికి నాకు డొమైన్ లేదా ఓపెన్ పోర్ట్ అవసరమా?

అవసరం లేదు. Iva లాంగ్ పోలింగ్ (long polling) ద్వారా Telegram తో కమ్యూనికేట్ చేస్తుంది: iva-telegram-poll.service అనేది getUpdates ని పిలిచి వేచి ఉంటుంది, కాబట్టి ప్రతి కనెక్షన్ మీ సర్వర్ నుండి బయటకు వెళ్లేదే (outbound). బయటి నుండి మీ సర్వర్‌కు ఏదీ రావాల్సిన అవసరం లేదు, కాబట్టి మీకు DNS రికార్డు లేదా సర్టిఫికేట్ అవసరం లేదు. ఏజెంట్ యొక్క స్వంత HTTP పోర్ట్, 8723, 127.0.0.1 కి బైండ్ అవుతుంది, మరియు దీనిని బయటకు ఎక్స్‌పోజ్ చేయవద్దని ప్రాజెక్ట్ డాక్యుమెంటేషన్ సూచిస్తుంది. SSH ని మాత్రమే అనుమతించే ఫైర్‌వాల్ సరైన కాన్ఫిగరేషన్.

ప్రతి నెలా Iva ను రన్ చేయడానికి ఎంత ఖర్చు అవుతుంది?

అక్టోబర్ 2026 ప్రచురించిన ధరల ప్రకారం, ఒక చిన్న VPS ధర 5 డాలర్లు మరియు అత్యంత చౌకైన ఫ్లాట్ రేట్ మోడల్ ప్లాన్ ధర 10 డాలర్లు కలిపి నెలకు సుమారు 15 US డాలర్లు అవుతుంది. Ollama Cloud ధర 20 డాలర్లు, మరియు ఇందులో ఉన్న క్రెడిట్స్ దాటి వాడితే అదనపు బిల్లు పడుతుంది. Deepgram స్టార్టర్ క్రెడిట్స్ మొదట్లో వాయిస్ సేవలకు సరిపోతాయి, మరియు వెబ్ సెర్చ్ టియర్లలో ఉచిత పరిమితులు ఉన్నాయి. OpenRouter అనేది మీరు వాడినంతకే చెల్లించే (pay as you go) పద్ధతి, కాబట్టి దీనికి నిర్ణీత నెలవారీ ఖర్చు ఉండదు.

Iva నా డేటాను ఎక్కడ ఉంచుతుంది మరియు దానిని బ్యాకప్ చేయడం ఎలా?

డిఫాల్ట్‌గా ఇది ~/iva/vault లో ఉంటుంది, దీనిని ASSISTANT_VAULT_DIR ద్వారా సెట్ చేస్తారు. ఇది ప్లెయిన్ మార్క్‌డౌన్ ఫైళ్లతో కూడిన ఒక ప్రత్యేక ప్రైవేట్ git రిపోజిటరీ: CORE.md, daily/YYYY-MM-DD.md, cards/ మరియు summaries/. ప్రతిరోజూ 05:00 గంటలకు మెమరీ డాక్టర్ దీనిని commit మరియు push చేస్తుంది. రిపోజిటరీకి రిమోట్ ఉంటేనే ఇది పనిచేస్తుంది, కాబట్టి సెటప్ సమయంలో gh auth login ని రన్ చేయండి లేదా మీ స్వంత రిమోట్‌ను జోడించండి. tar czf ~/iva-vault-backup.tgz -C ~/iva vault తో ఆఫ్‌లైన్ కాపీని కూడా ఉంచుకోండి మరియు ఆ ఫైల్‌ను సర్వర్ నుండి వేరే చోటికి తరలించండి.

నేను Iva ను self-host చేస్తే నా డేటా ప్రైవేట్‌గా ఉంటుందా?

స్టోరేజ్ మీదే, కానీ ప్రాసెసింగ్ కాదు. మీరు పుష్ చేసే వరకు వాల్ట్ (vault) మీ డిస్క్‌లోనే ఉంటుంది, మరియు .env అనేది సర్వీస్ యూజర్ యాజమాన్యంలో 0600 మోడ్‌లో ఉంటుంది. మోడల్ కాల్స్ మరియు వాయిస్ ట్రాన్స్‌క్రిప్షన్ క్లౌడ్ APIల ద్వారా జరుగుతాయి, కాబట్టి ఆ సందేశాలు మీ మోడల్ ప్రొవైడర్ మరియు Deepgram ద్వారా ప్రయాణిస్తాయి. Iva కి MIT లైసెన్స్ ఉంది, కాబట్టి అది ఏమి పంపుతుందో మీరు ఖచ్చితంగా చదవవచ్చు మరియు మార్చుకోవచ్చు. Telegram అలోలిస్ట్ (allowlist) ఫెయిల్ క్లోజ్డ్ (fail closed) పద్ధతిలో ఉంటుంది, అంటే TELEGRAM_ALLOWED_USER_IDS ఖాళీగా ఉంటే అది మీతో సహా అందరినీ బ్లాక్ చేస్తుంది.

Iva ఏ మోడల్ ప్రొవైడర్లకు మద్దతు ఇస్తుంది?

పిన్ చేసిన v0.3.13 రిలీజ్‌లో, MODEL_PROVIDER అనేది opencode (OpenCode Go), ollama (Ollama Cloud), openrouter మరియు codex లను అనుమతిస్తుంది. OpenRouter అనేది anthropic/claude-sonnet-4.5 వంటి వెండర్ స్లగ్‌లను తీసుకుంటుంది మరియు అత్యధిక మోడల్ ఎంపికలను అందిస్తుంది. codex అనేది iva login తో ఇప్పటికే ఉన్న ChatGPT సబ్‌స్క్రిప్షన్‌లోకి లాగిన్ అవుతుంది మరియు దీనికి API కీ అవసరం లేదు. తదుపరి రిలీజ్‌లలో Claude సబ్‌స్క్రిప్షన్ మరియు కస్టమ్ OpenAI అనుకూల ఎండ్‌పాయింట్‌లతో సహా మరిన్ని మార్గాలు జోడించబడతాయి. ప్రొవైడర్‌ను సెట్ చేసి, మోడల్ యొక్క అసలు పరిమాణానికి సరిపోయే కాంటెక్స్ట్ విండోను సెట్ చేసిన తర్వాత, iva restart ని రన్ చేయండి, ఎందుకంటే ప్రాసెస్ ప్రారంభంలోనే మోడల్ ఒకసారి రీడ్ చేయబడుతుంది.

ఈ వ్యాసం ఉపయోగకరంగా ఉందా?