Iva Telegram AI అసిస్టెంట్ని సెల్ఫ్-హోస్ట్ చేయడం ఎలా?
Iva AI అసిస్టెంట్ని మీ VPSలో సురక్షితంగా రన్ చేయండి. ఓపెన్ పోర్ట్లు లేదా డొమైన్ అవసరం లేకుండా, systemd సర్వీసెస్ మరియు Obsidian వాల్ట్ బ్యాకప్తో దీన్ని ఎలా సెటప్ చేయాలో తెలుసుకోండి.
మీరు ఏమి నిర్మిస్తున్నారు
Iva అనేది ఒక self-hosted Telegram AI అసిస్టెంట్. దీనిని అమలు చేయడానికి ఎటువంటి inbound port తెరవాల్సిన అవసరం లేదు, అలాగే దీనికి డొమైన్ కూడా అవసరం లేదు. దీనికి ఎటువంటి certificate కూడా అవసరం లేదు, ఎందుకంటే ఈ సర్వర్లో పబ్లిక్ నెట్వర్క్ కోసం ఏదీ వినదు (listen చేయదు). ఈ సేవ Telegram కు outbound కనెక్షన్ను ఏర్పాటు చేసి, దానిని తెరిచి ఉంచుతుంది మరియు మీ సందేశాలను చదువుతుంది. మిగిలినవన్నీ ఆ ఒక్క outbound కనెక్షన్ ద్వారానే జరుగుతాయి.
Iva అనేది MIT లైసెన్స్తో Node లో వ్రాయబడింది. దీని మెమరీ ఒక ఫోల్డర్లోని సాధారణ markdown ఫైల్స్, వీటిని Obsidian నేరుగా ఓపెన్ చేయగలదు. కాబట్టి, ఈ యాప్ లేకపోయినా అది మీ గురించి రాసుకున్న నోట్స్ చదవడానికి వీలుగా ఉంటాయి. ఈ గైడ్ 6 ఆగస్టు 2026న విడుదలైన v0.3.13 వెర్షన్ను ఉపయోగిస్తుంది.
చాలా వరకు self-hosted సాఫ్ట్వేర్లు DNS (domain name system) రికార్డుతో మరియు Certbot ద్వారా జారీ చేయబడిన Let's Encrypt certificate తో ప్రారంభమవుతాయి. 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/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 ను సృష్టిస్తుంది; లేకపోతే build ప్రక్రియ ఆగిపోతుంది. - ఇది nvm ను, ఆపై Iva రన్ అవ్వడానికి అవసరమైన కనీస వెర్షన్ అయిన Node 24 ను ఇన్స్టాల్ చేస్తుంది.
- ఇది Python ప్యాకేజీ మేనేజర్ అయిన
uvను~/.local/binలోకి ఇన్స్టాల్ చేస్తుంది. - ఇది రిపోజిటరీని
~/ivaకి క్లోన్ చేసి,npm ciను రన్ చేస్తుంది. - ఇది రెండు గ్లోబల్ npm ప్యాకేజీలను ఇన్స్టాల్ చేస్తుంది:
agent-browser(ఇది Chromium ను డౌన్లోడ్ చేస్తుంది) మరియు@googleworkspace/cli. - ఇది సెటప్ విజార్డ్ను రన్ చేసి, ప్రాజెక్ట్ను బిల్డ్ చేసి, వాల్ట్ను (vault) సృష్టిస్తుంది.
- ఇది
ivaకమాండ్ను~/.local/binలోకి రాసి, systemd యూజర్ యూనిట్లను ఇన్స్టాల్ చేస్తుంది.
ఒకే లైన్ కమాండ్ ద్వారా ఇన్ని సాఫ్ట్వేర్ పనులు జరుగుతాయి. సాధారణ యూజర్గా ఇన్స్టాల్ చేయమని, root గా చేయవద్దని README లో ఎందుకు సూచించారో ఇది వివరిస్తుంది: ఇన్స్టాలర్కు ఉన్న ప్రివిలేజ్లతోనే ఏజెంట్ యొక్క షెల్ టూల్ తర్వాత రన్ అవుతుంది. మీరు ఇప్పటికే root గా ఉన్నప్పుడు కమాండ్లను నేరుగా రన్ చేసే ఒక హెల్పర్ ద్వారా, ప్యాకేజీ ఇన్స్టాలేషన్ మరియు swapfile కోసం మాత్రమే ఈ స్క్రిప్ట్ sudo ను పిలుస్తుంది.
ఇన్స్టాలేషన్కు ముందు ప్రత్యేక వినియోగదారుని సృష్టించండి
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 ivaIva అనేది systemd user యూనిట్లుగా రన్ అవుతుంది కాబట్టి enable-linger చాలా ముఖ్యం. Linger లేకపోతే, వినియోగదారు యొక్క చివరి సెషన్ ముగియగానే systemd ఆ వినియోగదారు సేవలను నిలిపివేస్తుంది. దీనివల్ల మీరు SSH క్లోజ్ చేసినప్పుడు అసిస్టెంట్ ఆగిపోతుంది. మీరు systemd కింద సొంతంగా రాసే సర్వీస్ మరియు టైమర్ అన్నింటికీ ఇదే నియమం వర్తిస్తుంది.
ఇన్స్టాలర్ ప్యాకేజీలను జోడించే సమయంలో మాత్రమే ఈ ఖాతాకు sudo అవసరం. ఇన్స్టాలేషన్ పూర్తయ్యాక దానిని తొలగించండి.
sudo deluser iva sudoSSH ద్వారా నేరుగా ఆ వినియోగదారుగా లాగిన్ అవ్వండి. మీరు sudo -iu iva తో ప్రవేశించే షెల్లో DBUS_SESSION_BUS_ADDRESS మరియు XDG_RUNTIME_DIR సెట్ చేయబడి ఉండవు, కాబట్టి ప్రతి systemctl --user కమాండ్ Failed to connect to bus తో విఫలమవుతుంది. ఈ పరిమితిని నిర్ణయించడం అనేది కనీస అధికారాలు కలిగిన వినియోగదారుల కింద సేవలను రన్ చేయడం వంటి ప్రక్రియే.
bash కి పైప్ చేసే బదులు ఒక నిర్దిష్ట release ను ఇన్స్టాల్ చేయడం
ఈ ఇన్స్టాలర్కు ఒక ఉపయోగకరమైన లక్షణం ఉంది. ఇది దేనినైనా clone చేయడానికి ముందు, ఆ స్క్రిప్ట్ ఉన్న డైరెక్టరీలో "eve" ను కలిగి ఉన్న package.json ఉందేమో తనిఖీ చేస్తుంది. ఒకవేళ అది ఉంటే, అది ఆ checkout ను బిల్డ్ చేస్తుంది మరియు 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 ఒకే ప్రోగ్రామ్ కాదు.
ఒక tag checkout, git ను detached HEAD స్థితిలో ఉంచుతుంది. ఇది బాగానే పనిచేస్తుంది, కానీ దాని పరిమితిని అర్థం చేసుకోండి: iva update అనేది checkout ను update branch పైకి ముందుకు తీసుకువెళుతుంది, కాబట్టి ఈ pin అనేది ఒక తెలిసిన ప్రారంభ బిందువు మాత్రమే, శాశ్వతమైన ఫ్రీజ్ కాదు. iva version ప్యాకేజీ వెర్షన్ మరియు git commit ను ప్రింట్ చేస్తుంది, కాబట్టి మీరు ఎక్కడ ఉన్నారో ఎల్లప్పుడూ చూడవచ్చు.
తర్వాతి release కు ఉద్దేశపూర్వకంగా మారడానికి, tags ను లిస్ట్ చేయండి, మీరు ఎంచుకున్న దానిని 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) ఐచ్ఛికం.
- @BotFather నుండి పొందిన Telegram బాట్ టోకెన్, ఇది
getMeఎండ్పాయింట్ ద్వారా ధృవీకరించబడుతుంది. - యాక్సెస్ కంట్రోల్. మీరు మీ బాట్కు ఒక మెసేజ్ పంపినప్పుడు, విజార్డ్ మీ సంఖ్యాపరమైన యూజర్ IDని
getUpdatesనుండి చదువుతుంది. - సిస్టమ్ సెట్టింగ్లు. 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/.envls అనేది -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ను ప్రతి నెలా నడపడానికి అయ్యే ఖర్చు ఎంత
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 US డాలర్లు మరియు OpenCode Go ప్లాన్ 5 డాలర్లతో కలిపి, సుమారు 10 డాలర్ల నెలవారీ ఖర్చుతో అత్యంత చౌకైన పూర్తి సెటప్ లభిస్తుంది. Ollama Cloud మరొక ఫ్లాట్ రేట్ ఎంపిక, దీని ధర 20 డాలర్లు; దీనిలోని frontier మోడల్స్ ప్లాన్ పైన అదనపు వినియోగం కింద బిల్ చేయబడతాయి. Deepgram స్టార్టర్ క్రెడిట్స్ ఉన్నంత వరకు Voice ఖర్చు 0 గా ఉంటుంది.
OpenRouter కు ఇక్కడ ఎటువంటి ధర లేదు, ఎందుకంటే ఇది pay as you go పద్ధతిలో పనిచేస్తుంది, కాబట్టి మీ బిల్లు మీ వినియోగాన్ని బట్టి ఉంటుంది. ఇది గమనించాల్సిన ఎంపిక: ప్రతిసారి 131072 టోకెన్ల కాంటెక్స్ట్ విండోను ఉపయోగించే అసిస్టెంట్, ఫ్లాట్ ప్లాన్ కంటే ఎక్కువ ఖర్చు చేయవచ్చు. కాంటెక్స్ట్ విండో వేరియబుల్ను మోడల్ యొక్క అసలు పరిమాణానికి సెట్ చేయండి, ఎందుకంటే పెంచిన విలువ కేవలం టోకెన్లను వృథా చేస్తుంది.
రెండు సేవలు మరియు రెండు టైమర్లు
iva.serviceఏజెంట్ను స్వయంగా రన్ చేస్తుంది.iva-telegram-poll.serviceటెలిగ్రామ్తో కమ్యూనికేట్ చేసే లాంగ్ పోలింగ్ బ్రిడ్జ్ను రన్ చేస్తుంది.iva-memory-doctor.timer05:00 గంటలకు ట్రిగ్గర్ అయ్యి, వాల్ట్ (vault) పై రాత్రిపూట నిర్వహణ పనులను (maintenance pass) పూర్తి చేస్తుంది.iva-update-check.timer10: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 దానికి గల కారణాన్ని తెలియజేస్తుంది.
డీబగ్గింగ్ చేసేటప్పుడు ఈ విభజన ముఖ్యం. ఏజెంట్ డౌన్ అయినప్పుడు కూడా బ్రిడ్జ్ లైవ్లో ఉండి పోలింగ్ చేయవచ్చు, అప్పుడు టెలిగ్రామ్ మీ సందేశాన్ని స్వీకరిస్తుంది కానీ దానికి ఎటువంటి సమాధానం రాదు. 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 vaultscp ఉపయోగించి ఆ ఫైల్ను సర్వర్ నుండి కాపీ చేయండి, ఆపై సర్వర్ నుండి దానిని తొలగించండి. 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 -hFailed 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 restartVoice note కు సమాధానం రాదు. Telegram Bot API 20 MB కంటే ఎక్కువ ఉన్న ఫైల్ డౌన్లోడ్లను అనుమతించదు, కాబట్టి bridge కు పెద్ద ఆడియో ఫైల్స్ అందవు మరియు Deepgram కు పంపడానికి ఏమీ ఉండదు. ఫైల్ను పంపే ముందు ముక్కలుగా విభజించండి.
ffmpeg -i long.ogg -f segment -segment_time 600 -c copy part-%02d.oggTurn ఆగిపోయి సమాధానం ఇవ్వదు. 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 డాలర్లు మరియు అత్యంత చౌకైన ఫ్లాట్ రేట్ మోడల్ ప్లాన్ ధర 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 చేస్తే నా డేటా ప్రైవేట్గా ఉంటుందా?
స్టోరేజ్ మీదే, కానీ ప్రాసెసింగ్ కాదు. మీరు పుష్ చేసే వరకు వాల్ట్ (vault) మీ డిస్క్లోనే ఉంటుంది, మరియు .env సర్వీస్ యూజర్ యాజమాన్యంలో 0600 మోడ్లో ఉంటుంది. మోడల్ కాల్స్ మరియు వాయిస్ ట్రాన్స్క్రిప్షన్ క్లౌడ్ APIల ద్వారా జరుగుతాయి, కాబట్టి ఆ సందేశాలు మీ మోడల్ ప్రొవైడర్ మరియు 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 ఇప్పటికే ఉన్న ChatGPT సబ్స్క్రిప్షన్లోకి iva login తో లాగిన్ అవుతుంది మరియు దీనికి API కీ అవసరం లేదు. ప్రొవైడర్ను సెట్ చేసి, మోడల్ యొక్క అసలు పరిమాణానికి సరిపోయే కాంటెక్స్ట్ విండోను సెట్ చేసిన తర్వాత, iva restart ని రన్ చేయండి, ఎందుకంటే ప్రాసెస్ ప్రారంభంలోనే మోడల్ ఒకసారి రీడ్ చేయబడుతుంది.