SSD Nodes Learn Hosting plans →
கல்வி வழிகாட்டிகள் Matt Connorஆல் Matt Connor · புதுப்பிக்கப்பட்டது 2026-08-13

Iva Telegram AI assistant-ஐ சொந்தமாக நிறுவுவது எப்படி?

Iva AI-ஐ உங்கள் VPS-ல் நிறுவுவதற்கான எளிய வழிமுறை. இதற்கு domain அல்லது open ports தேவையில்லை. systemd சேவைகள் மற்றும் Obsidian vault மூலம் உங்கள் தரவை எளிதாக நிர்வகிக்கலாம்.

நீங்கள் உருவாக்குவது

Iva என்பது ஒரு self-hosted Telegram AI assistant ஆகும். இதற்கு inbound port எதையும் திறக்க வேண்டியதில்லை, domain எதையும் இணைக்க வேண்டியதில்லை. இதில் certificate தேவையில்லை, ஏனெனில் இந்த server-ல் பொதுமக்களின் அணுகலுக்காக எந்த சேவையும் listening நிலையில் இருக்காது. இந்த service Telegram-க்கு outbound connection ஏற்படுத்தி, அதைத் தொடர்ந்து திறந்து வைத்திருக்கும்; அதன் வழியாகவே உங்கள் செய்திகளைப் பெற்றுக்கொள்ளும். இந்த ஒரே ஒரு outbound connection-ஐ அடிப்படையாகக் கொண்டே மற்ற அனைத்து செயல்பாடுகளும் அமைகின்றன.

Iva என்பது MIT உரிமம் பெற்றது மற்றும் Node-ல் எழுதப்பட்டது. இதன் நினைவகம் என்பது plain markdown கோப்புகளைக் கொண்ட ஒரு folder ஆகும். இதை Obsidian மூலம் நேரடியாகத் திறக்க முடியும் என்பதால், இந்த app இல்லாமலேயே உங்களைப் பற்றிய குறிப்புகளை உங்களால் படிக்க முடியும். இந்த வழிகாட்டி 6 August 2026 அன்று வெளியிடப்பட்ட v0.3.13 release-ஐ அடிப்படையாகக் கொண்டது.

பெரும்பாலான self-hosted மென்பொருள்கள் DNS (domain name system) பதிவு மற்றும் Certbot மூலம் பெறப்பட்ட Let's Encrypt certificate ஆகியவற்றுடன் தொடங்குகின்றன. Iva இந்த அடுக்குகள் எதையும் பயன்படுத்துவதில்லை. இதனால்தான், SSH-ஐத் தவிர மற்ற அனைத்தையும் தடுக்கும் firewall-க்கு பின்னால் உள்ள ஒரு சிறிய VPS-ல் கூட இதை முழுமையாக deploy செய்ய முடியும்.

Iva-க்கு ஏன் open ports தேவையில்லை

iva-telegram-poll.service என்பது ஒரு long polling bridge ஆகும். இது Telegram-ன் getUpdates API-ஐ அழைத்து பதிலுக்காகக் காத்திருக்கும். எனவே, ஒவ்வொரு இணைப்பும் உங்கள் server-லிருந்தே தொடங்குகிறது. Telegram ஒருபோதும் மீண்டும் இணைப்பை ஏற்படுத்தாது. இதன் பொருள், நீங்கள் எந்த reverse proxy-யையும் configure செய்ய வேண்டியதில்லை, certificate புதுப்பித்தல் பற்றிய கவலையும் இல்லை.

இந்த agent, 127.0.0.1 port 8723-ல் மட்டுமே listen செய்கிறது. திட்டத்தின் ஆவணங்கள் இதைப் பற்றி தெளிவாகக் கூறுகின்றன: port 8723-ஐ வெளிப்படையாகத் திறக்க வேண்டாம். நீங்கள் அதன் முன்னால் வைக்கும் எந்தவொரு reverse proxy-யும் bearer token தேவையைப் பராமரிக்க வேண்டும். நிறுவிய பின் bind address-ஐச் சரிபார்க்கவும்.

sudo ss -tlnp | grep 8723

முகவரி 127.0.0.1:8723 என்று இருக்க வேண்டும். 0.0.0.0:8723 போன்ற wildcard முகவரி இருந்தால், அந்த agent-ன் HTTP routes இணையத்திலிருந்து அணுகக்கூடியதாக இருக்கும் என்று அர்த்தம். நீங்கள் bot-க்கு ஏதேனும் தனிப்பட்ட தகவல்களை அனுப்பும் முன் அதைச் சரிசெய்ய வேண்டும்.

எனவே, firewall-ஐ மூடியே வைத்திருக்கவும். அதை enable செய்வதற்கு முன் SSH-ஐ அனுமதிக்கவும். ஏனெனில், SSH விதி இல்லாமல் ufw enable-ஐச் செயல்படுத்தினால், நீங்கள் தட்டச்சு செய்து கொண்டிருக்கும் session துண்டிக்கப்படும்.

sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status

ஒரே வரியில் இயங்கும் installer உண்மையில் என்ன செய்கிறது

இந்தத் திட்டத்தின் முகப்புப் பக்கம், GitHub-லிருந்து ஒரு script-ஐ bash-க்கு pipe செய்யும் ஒரு கட்டளையை வழங்குகிறது. அந்த script-ஐ முதலில் வாசித்துத் தெரிந்துகொள்ளுங்கள், ஏனெனில் அது ஒரு நிரலை நிறுவுவதைத் தாண்டி பல வேலைகளைச் செய்கிறது.

curl -fsSL https://raw.githubusercontent.com/smixs/iva/main/install.sh -o iva-install.sh
less iva-install.sh
  • இது கண்டறியப்பட்ட package manager-ஐப் பயன்படுத்தி system packages-ஐ நிறுவுகிறது: git, gh, python3, ffmpeg, pandoc மற்றும் poppler-utils.
  • கணினியில் 1.5 GB-க்கும் குறைவான RAM இருந்து, swap இல்லையெனில், /swapfile-ல் 2 GB swapfile-ஐ உருவாக்குகிறது; ஏனெனில் அது இல்லையெனில் build செயல்முறை நிறுத்தப்படும்.
  • இது nvm-ஐ நிறுவுகிறது, பின்னர் Iva இயங்குவதற்குத் தேவையான குறைந்தபட்ச பதிப்பான Node 24-ஐ நிறுவுகிறது.
  • இது Python package manager-ஆன uv-ஐ ~/.local/bin-ல் நிறுவுகிறது.
  • இது repository-ஐ ~/iva-க்கு clone செய்து, npm ci-ஐ இயக்குகிறது.
  • இது இரண்டு global npm packages-ஐ நிறுவுகிறது: agent-browser (இது பின்னர் Chromium-ஐத் தரவிறக்கும்) மற்றும் @googleworkspace/cli.
  • இது setup wizard-ஐ இயக்கி, திட்டத்தை build செய்து, vault-ஐ உருவாக்குகிறது.
  • இது iva கட்டளையை ~/.local/bin-ல் எழுதி, systemd user units-ஐ நிறுவுகிறது.

ஒரே வரியில் இவ்வளவு மென்பொருட்களை நிறுவுவது பெரிய விஷயம். சாதாரண பயனராக (ordinary user) நிறுவுமாறு README-ல் கொடுக்கப்பட்டுள்ள அறிவுறுத்தலுக்கான காரணமும் இதுதான்; root-ஆக நிறுவக்கூடாது: installer-க்கு இருந்த அதே உரிமைகளுடன் தான் agent-ன் shell tool பின்னர் இயங்கும். இந்த script, package நிறுவல் மற்றும் swapfile உருவாக்கத்திற்கு மட்டுமே sudo-ஐ அழைக்கிறது; நீங்கள் ஏற்கனவே root-ஆக இருந்தால், கட்டளைகளை நேரடியாக இயக்கும் ஒரு helper மூலம் இது நடைபெறுகிறது.

நிறுவுவதற்கு முன் பிரத்யேக பயனர் கணக்கை உருவாக்கவும்

Iva-க்கு எனத் தனி கணக்கை வழங்கவும். இந்த agent, 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 iva

enable-linger முக்கியமானது, ஏனெனில் Iva ஆனது systemd user units-ஆக இயங்குகிறது. Linger வசதி இல்லையெனில், பயனர் தனது கடைசி session-ஐ முடித்தவுடன் systemd அந்தப் பயனர் சார்ந்த சேவைகளை நிறுத்திவிடும். இதனால் நீங்கள் SSH-ஐ மூடும்போது assistant-ம் நின்றுவிடும். இதே விதிதான் நீங்கள் systemd-ன் கீழ் நீங்களாக எழுதும் அனைத்து service மற்றும் timer-களுக்கும் பொருந்தும்.

Installer தொகுப்புகளைச் சேர்க்கும்போது மட்டுமே இந்தக் கணக்கிற்கு sudo தேவைப்படும். நிறுவல் முடிந்ததும் அந்த உரிமையை நீக்கிவிடவும்.

sudo deluser iva sudo

அந்தப் பயனராக நேரடியாக SSH மூலம் உள்நுழையவும். sudo -iu iva மூலம் நீங்கள் நுழையும் shell-ல் DBUS_SESSION_BUS_ADDRESS அல்லது XDG_RUNTIME_DIR அமைக்கப்படவில்லை. எனவே, ஒவ்வொரு systemctl --user கட்டளையும் Failed to connect to bus பிழையுடன் தோல்வியடையும். இந்த எல்லையை வரையறுப்பது என்பது குறைந்தபட்ச சலுகைகள் கொண்ட பயனர்களின் கீழ் சேவைகளை இயக்குவதற்கு சமமான பயிற்சியாகும்.

Bash-க்கு பைப் செய்வதற்குப் பதிலாக ஒரு குறிப்பிட்ட release-ஐ நிறுவுதல்

இந்த installer ஒரு பயனுள்ள வசதியைக் கொண்டுள்ளது. எதையும் clone செய்வதற்கு முன்பு, script இருக்கும் கோப்பகத்தில் package.json உள்ளதா என்றும், அதில் "eve" இருக்கிறதா என்றும் அது சரிபார்க்கும். அவ்வாறு இருந்தால், அது அந்த checkout-ஐ build செய்யும், clone செய்வதைத் தவிர்க்கும். எனவே, நீங்களே ஒரு குறிப்பிட்ட version-ஐத் தேர்வு செய்யலாம்.

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

இப்போது எந்தக் குறியீடு (code) இயங்குகிறது என்பது உங்களுக்குத் தெரியும். script எந்த நேரத்தில் main-ஐ clone செய்கிறதோ, அந்த நேரத்தில் அது எந்த நிலையில் இருக்கிறதோ அதைத்தான் அது பதிவிறக்கும்; இது உங்களுக்குத் தெரியாது. 2026 ஆகஸ்ட் 4 மற்றும் 6-க்கு இடையே Iva ஐந்து releases-ஐ வெளியிட்டது, எனவே இன்று காலை main மற்றும் இன்று மதியம் main ஆகிய இரண்டும் ஒரே நிரல் (program) அல்ல.

ஒரு tag checkout-ஐச் செய்யும்போது git detached HEAD நிலையில் இருக்கும். அது சரியாக இயங்கும், ஆனால் அதன் வரம்பைப் புரிந்துகொள்ளுங்கள்: iva version-ஐ இயக்கினால் அது package version மற்றும் git commit-ஐக் காட்டும், எனவே நீங்கள் எந்த நிலையில் இருக்கிறீர்கள் என்பதை எப்போதும் அறியலாம். iva update என்பது checkout-ஐ update branch-க்கு நகர்த்தும், எனவே இந்த pin என்பது ஒரு நிரந்தரமான முடக்கம் அல்ல, அது ஒரு தொடக்கப் புள்ளி மட்டுமே.

ஒரு புதிய release-க்கு மாற, tags-ஐப் பட்டியலிட்டு, நீங்கள் தேர்ந்தெடுத்ததை IVA_TAG-ல் அமைத்து, பின் checkout-க்குள் இருந்து installer-ஐ மீண்டும் இயக்கவும்.

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

ஏற்கனவே சரியாக இயங்கும் .env-ன் மீது wizard மீண்டும் இயங்குவதை --skip-setup தடுக்கும்.

ஐந்து வழிகாட்டி நிலைகள் மற்றும் அவற்றுக்குத் தேவையான சாவிகள் (keys)

  1. Model provider மற்றும் model. MODEL_PROVIDER ஆனது opencode, ollama, openrouter அல்லது codex ஆகியவற்றை ஏற்கும். இந்த வழிகாட்டி (wizard) சாவியை உடனுக்குடன் சரிபார்த்து, உங்கள் திட்டத்தில் உள்ள மாதிரிகளைப் பட்டியலிடும்.
  2. Voice மற்றும் search. ஒரு Deepgram சாவி குரல் குறிப்புகளை (voice notes) எழுத்து வடிவில் மாற்றும். இணையத் தேடல் சாவி (Tavily, Exa, Parallel அல்லது Brave) விருப்பத்திற்குரியது.
  3. @BotFather-லிருந்து பெறப்பட்ட Telegram bot token, இது getMe endpoint மூலம் சரிபார்க்கப்படும்.
  4. Access control. நீங்கள் உங்கள் bot-க்கு ஒரு செய்தியை அனுப்ப வேண்டும், வழிகாட்டி உங்கள் எண் சார்ந்த பயனர் அடையாளத்தை (numeric user ID) getUpdates-லிருந்து வாசிக்கும்.
  5. System settings. IANA timezone, vault directory, மற்றும் local port (இயல்பாக 8723).

இவற்றில் இரண்டு, "ஒரே கட்டளை" (one command) என்ற கட்டமைப்பால் மறைக்கப்படும் சார்புகள் (dependencies) ஆகும். Iva எந்த மாதிரியையும் கொண்டிருக்கவில்லை, எனவே அது பதிலளிப்பதற்கு முன் கட்டண மாதிரித் திட்டம் அல்லது API சாவி தேவை. இது தானாகவே ஆடியோவை எழுத்து வடிவில் மாற்றாது, எனவே குரல் குறிப்புகளுக்குத் தனி சேவை தேவை. Deepgram-ன் nova-3 மாதிரி, DEEPGRAM_LANGUAGE=multi உடன் இணைந்து மொழியைக் கண்டறியும். புதிய Deepgram கணக்குகளுக்கு மாதக்கணக்கில் தனிப்பட்ட பயன்பாட்டிற்குத் தேவையான தொடக்கக் கடன் (starter credits) கிடைக்கும். உரை (text) மாதிரிச் சாவியை மட்டும் கொண்டு இயங்கும். குரல் வசதிக்கு மட்டுமே Deepgram தேவை.

வழிகாட்டி என்ன எழுதியுள்ளது என்பதைச் சரிபார்க்கவும்.

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

ls கட்டளையானது -rw------- மற்றும் mode 0600-ஐக் காட்ட வேண்டும், ஏனெனில் அந்த கோப்பில்தான் நீங்கள் உள்ளிட்ட அனைத்துச் சாவிகளும் உள்ளன. TELEGRAM_ALLOWED_USER_IDS-ல் உங்கள் எண் சார்ந்த அடையாள எண் இருக்க வேண்டும். அனுமதிப் பட்டியல் (allowlist) பாதுகாப்புக் கருதி இயல்பாகவே மூடப்பட்டிருக்கும், எனவே அதில் மதிப்பு இல்லையென்றால் 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, August 2026
இந்த விளக்கப்படத்தின் தரவு
[
  {
    "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 models-க்கான கட்டணம் திட்டத்தின் அடிப்படை விலைக்கு மேல் கூடுதல் பயன்பாட்டிற்காக வசூலிக்கப்படும். Deepgram starter credits தீரும் வரை Voice-ன் விலை 0 ஆகும்.

OpenRouter-க்கு இங்கே வரிசை இல்லை, ஏனெனில் இது பயன்பாட்டிற்கு ஏற்ப பணம் செலுத்தும் (pay as you go) முறை; எனவே உங்கள் பயன்பாட்டிற்கு ஏற்பவே கட்டணம் அமையும். இதைக் கவனமாகக் கண்காணிக்க வேண்டும்: ஒவ்வொரு உரையாடலிலும் 131072 token context window-ஐப் பயன்படுத்தும் ஒரு assistant, நிலையான கட்டணத் திட்டத்தை விட விரைவாக அதிக செலவை ஏற்படுத்தக்கூடும். Context window variable-ஐ அந்த model-ன் உண்மையான அளவிற்கு அமைக்கவும், ஏனெனில் மிகைப்படுத்தப்பட்ட மதிப்பு tokens-ஐ வீணடிக்கும்.

இரண்டு சேவைகள் மற்றும் இரண்டு டைமர்கள்

  • iva.service ஏஜென்ட்டை (agent) இயக்குகிறது.
  • iva-telegram-poll.service டெலிகிராம் (Telegram) உடன் தொடர்பு கொள்ளும் லாங் போலிங் பிரிட்ஜை (long polling bridge) இயக்குகிறது.
  • iva-memory-doctor.timer தினமும் 05:00 மணிக்கு இயங்கி, வால்ட் (vault) மீது இரவு நேர பராமரிப்புப் பணிகளைச் செய்கிறது.
  • iva-update-check.timer தினமும் 10:00 மணிக்கு இயங்கி, புதிய ரிலீஸ் (release) ஏதேனும் உள்ளதா என்று சரிபார்க்கிறது.
  • iva-telegram-userbot.service நீங்கள் விருப்பத்தேர்வாக Telethon proxy-ஐ அமைத்திருந்தால் மட்டுமே இது இருக்கும்.
iva status
systemctl --user status iva.service iva-telegram-poll.service
systemctl --user list-timers
iva logs poll

iva status இரண்டு சேவைகள் மற்றும் இரண்டு வாட்ச்டாக் டைமர்களை (watchdog timers) காட்டுகிறது. systemctl --user list-timers ஒவ்வொரு டைமரும் அடுத்ததாக எப்போது இயங்கும் என்பதைக் காட்டுகிறது; இதன் மூலம் மெமரி டாக்டர் (memory doctor) இன்று இரவு இயங்குவதை நீங்கள் உறுதிப்படுத்தலாம். இரண்டு சேவைகளும் active (running) நிலையில் இருக்க வேண்டும். ஏதேனும் ஒரு சேவை மீண்டும் மீண்டும் ரீஸ்டார்ட் (restart) ஆனால், journalctl --user -u iva.service -n 100 அதற்கான காரணத்தைக் காட்டும்.

பிழைத்திருத்தம் (debug) செய்யும்போது இந்த பிரிவினை முக்கியமானது. ஏஜென்ட் செயலிழந்திருக்கும்போது பிரிட்ஜ் மட்டும் இயங்கிக்கொண்டிருக்கலாம்; அப்போது டெலிகிராம் உங்கள் செய்தியைப் பெற்றுக்கொள்ளும், ஆனால் அதற்குப் பதில் கிடைக்காது. iva logs poll பிரிட்ஜின் செயல்பாட்டைப் பின்தொடர்கிறது, iva logs ஏஜென்ட்டின் செயல்பாட்டைப் பின்தொடர்கிறது. எனவே, எந்தப் பகுதி பழுதடைந்துள்ளது என்பதை இந்த இரண்டு லாக் (log) கோப்புகளும் உங்களுக்குத் தெரிவிக்கும்.

Obsidian vault எங்கே அமைகிறது மற்றும் அதை எவ்வாறு backup செய்வது

ASSISTANT_VAULT_DIR இயல்பாகவே install directory-க்குள் vault என்ற இடத்தில் அமையும், எனவே memory ~/iva/vault என்ற பாதையில் இருக்கும். இது code-லிருந்து தனித்து இயங்கும் ஒரு git repository ஆகும்; இதனால் உங்கள் notes-ஐ பாதிக்காமல் Iva-வை update செய்ய முடிகிறது.

  • vault/CORE.md நீடித்த உண்மைகள் மற்றும் நிலையான விருப்பங்களைச் சேமிக்கிறது, இது 1200 characters வரை மட்டுமே இருக்கும், மேலும் ஒவ்வொரு system prompt-லும் இது இடம்பெறும்.
  • vault/daily/YYYY-MM-DD.md அன்றைய நாளின் transcript ஆகும், இதில் தகவல்கள் சேர்க்க மட்டுமே முடியும் (append only).
  • vault/cards/ contacts, projects, decisions, ideas மற்றும் notes ஆகியவற்றிற்கான typed cards-களைக் கொண்டுள்ளது.
  • vault/summaries/daily/, weekly/, monthly/ மற்றும் yearly/ ஆகியவை rollups-களைக் கொண்டுள்ளன.
  • vault/attachments/ கோப்புகளைத் தேதியின் அடிப்படையில் சேமிக்கிறது, vault/.graph/ link graph-ஐக் கொண்டுள்ளது.
  • vault/schema.json card வகைகளையும், அவை அழியும் (decay) விதிகளையும் வரையறுக்கிறது.

Rollups செயல்முறைக்குள் ஒரு கால அட்டவணையின்படி இயங்கும். தினமும் 04:00 மணிக்கு நடக்கும் daily pass, முந்தைய நாள் transcript-ஐ cards மற்றும் சுருக்கமாக மாற்றி CORE.md-ஐ மீண்டும் எழுதும்; அதன் பிறகு weekly, monthly மற்றும் yearly passes அவற்றைச் சுருக்கும். 05:00 மணிக்கு memory doctor எந்தவொரு model-உம் இன்றி ஒரு deterministic pass-ஐ இயக்கும்: இது schema-வை உறுதிப்படுத்தும், link graph-ஐ மீண்டும் உருவாக்கும், index-ஐப் புதுப்பிக்கும், பின்னர் commit செய்து push செய்யும்.

அந்த push தான் உங்கள் backup, இதைத்தான் பலரும் கவனிக்கத் தவறிவிடுகிறார்கள். Vault-க்கு git remote இல்லை என்றால், doctor gh மூலம் ஒரு private GitHub repository-ஐ உருவாக்க முயற்சிக்கும், இதற்கு authenticated GitHub CLI தேவை.

gh auth login
systemctl --user start iva-memory-doctor.service
cd ~/iva/vault && git log --oneline -3

இன்றைய தேதியிட்ட commit இருந்தால், pass இயங்கி vault commit செய்யப்பட்டுள்ளது என்று அர்த்தம். Log-ல் gh not available எச்சரிக்கைகள் இருந்தால் அதற்கு நேர்மாறான பொருள்: vault பராமரிக்கப்படுகிறது, ஆனால் server-ஐ விட்டு வெளியேறவில்லை; எனவே VPS செயலிழந்தால் உங்கள் memory-யும் அழிந்துவிடும்.

உங்கள் கட்டுப்பாட்டில் ஒரு நகலை எப்போதும் வைத்திருங்கள்.

tar czf ~/iva-vault-backup.tgz -C ~/iva vault

scp மூலம் அந்த file-ஐ server-லிருந்து நகலெடுத்து, பின்னர் server-லிருந்து நீக்கிவிடவும். Obsidian-ல் memory-யைப் படிக்க, vault repository-ன் clone-ஐ Obsidian-ல் point செய்யவும். Wikilinks மற்றும் backlinks அப்படியே வேலை செய்யும், graph view-வும் சரியாக இருக்கும். Cards மற்றும் CORE.md-ஐ நீங்களாகவே திருத்துவது பாதுகாப்பானது. MOC.md மற்றும் .graph/-ஐ மாற்ற வேண்டாம், ஏனெனில் nightly pass இரண்டையும் மீண்டும் உருவாக்கும்.

உங்கள் வாழ்க்கையின் பதிவேடாக vault-ஐக் கருதுங்கள்

அந்த directory நீங்கள் என்ன சொன்னீர்கள், யாரைச் சந்தித்தீர்கள், என்ன முடிவெடுத்தீர்கள் என்பதற்கான காலவரிசைப் பதிவு; இது நீங்கள் வாடகைக்கு எடுத்த ஒரு machine-ல் உள்ளது. இதிலிருந்து இரண்டு விஷயங்கள் தெளிவாகின்றன.

Self-hosting என்பது சேமிப்பகத்தை மட்டுமே மாற்றுகிறது, செயலாக்கத்தை அல்ல. ஒவ்வொரு உரையாடலும் உங்கள் model provider-க்குச் செல்கிறது, ஒவ்வொரு voice note-ம் Deepgram-க்குச் செல்கிறது. vault உங்களுடையது. ஆனால், அந்தத் தகவல்களைச் செயலாக்கும் நிறுவனங்களுக்கு உங்கள் கோரிக்கைகள் தனிப்பட்டவை அல்ல. உங்கள் சொந்த VPS-ல் Mem0 memory server-ஐ இயக்குவது போன்ற memory layer-ஐ நீங்களே நிர்வகிப்பதும் இதே தன்மையைக் கொண்டது: தரவு உள்ளூர் சேமிப்பகத்தில் இருந்தாலும், model call-க்கான கோரிக்கை வெளியேதான் செல்கிறது. ஒரு விஷயம் மூன்றாம் தரப்பினரிடம் பகிர முடியாத அளவுக்கு ரகசியமானது என்றால், அதை chat-ல் குறிப்பிடாதீர்கள்.

அந்த account-ன் அணுகல் வரம்பு முழு vault-ம் ஆகும். Iva-வின் கருவிகள் Node-ன் fs மற்றும் child_process மூலம் host-ல் நேரடியாக இயங்குகின்றன; இதில் Docker அல்லது sandbox கிடையாது. எனவே, ஒரு turn சமரசம் செய்யப்பட்டால், அந்த service user-க்கு என்னென்ன அனுமதிகள் உள்ளனவோ, அவை அனைத்தையும் அது பெற்றுவிடும். இதனால்தான் install செய்த பிறகு அந்த account-ல் எந்த sudo-ம் இருப்பதில்லை. மேலும், allowlist பார்ப்பதற்குச் சாதாரணமாகத் தெரிந்தாலும், அதற்கு ஏன் அதிக முக்கியத்துவம் அளிக்க வேண்டும் என்பதற்கான காரணம் இதுதான்: உங்கள் server-ல் யாருடைய செய்திகள் கட்டளைகளாக மாற வேண்டும் என்பதைத் தீர்மானிக்கும் நுழைவாயில் அதுவே. எதையும் public-ஆகத் திறக்காமல் உங்கள் assistant-ஐப் பயன்படுத்த விரும்பினால், உங்கள் phone-லிருந்து self-hosted Hermes agent-ஐ அணுக இதே முறையைப் பயன்படுத்தலாம். இதில், public endpoint செய்ய வேண்டிய வேலையை chat client செய்கிறது.

எவை செயலிழக்கும் மற்றும் நீங்கள் காணும் செய்திகள்

Build killed, exit 137. Kernel-ன் out of memory killer இந்த build-ஐ நிறுத்திவிட்டது. RAM 1.5 GB-க்கு குறைவாக இருந்து, swap இல்லையென்றால் மட்டுமே installer swap-ஐ சேர்க்கும். எனவே, நீங்களே 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 இயல்பாகவே எதையும் அனுமதிக்காது (fail closed). Bot-க்கு ஒரு செய்தியை அனுப்பவும்: அது உங்கள் numeric ID-ஐ மட்டும் பதிலாக அனுப்பும். அந்த ID-ஐ .env-ல் இட்டு, iva restart-ஐ இயக்கவும்.

iva config-க்கு பிறகு Bot அமைதியாகிவிடுகிறது. Wizard-ஆல் IVA_PORT-ஐ மாற்ற முடியும், ஆனால் அது ASSISTANT_HOST-ஐப் புதுப்பிக்காது. இதனால், எந்தப் பதிலும் இல்லாத ஒரு port-உடன் bridge இணைகிறது. இரண்டு வரிகளையும் ஒப்பிட்டுப் பார்த்துவிட்டு, 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 நிலை restart செய்த பிறகும் நீடிக்கும் மற்றும் மீண்டும் வரிசையில் (re-queue) சேரும். எனவே, restart செய்வதால் மட்டும் இது சரியாகாது. iva reset அந்த நிலையைத் தனிமைப்படுத்தி (quarantine), இரண்டு service-களையும் restart செய்யும். Chat-ல் /new என்று பதிவிடுவது புதிய உரையாடலைத் தொடங்கும்.

Ubuntu 24.04-ல் Chromium செயலிழக்கிறது. Ubuntu 24.04, AppArmor மூலம் unprivileged user namespaces-ஐத் தடுக்கிறது. இதனால் Chromium-ன் sandbox தொடங்க முடியாமல் agent-browser தோல்வியடைகிறது. "--no-sandbox"-ஐ ~/.agent-browser/config.json-க்குள் எழுதுவதன் மூலம் installer இதைச் சரிசெய்கிறது. இது அங்கே இருப்பதை அறிந்து கொள்ளுங்கள். இது browser-ன் பாதுகாப்பைக் (isolation) குறைக்கிறது; எனவேதான் அந்த account-ல் Iva-வைத் தவிர வேறு எதையும் வைத்திருக்கக்கூடாது.

FAQ

Iva-வை self-host செய்ய எனக்கு domain அல்லது open port தேவையா?

தேவையில்லை. Iva, Telegram-உடன் long polling முறையில் தொடர்பு கொள்கிறது: iva-telegram-poll.service, getUpdates-ஐ அழைத்து காத்திருக்கும், எனவே ஒவ்வொரு இணைப்பும் உங்கள் server-லிருந்து வெளிநோக்கியே (outbound) அமையும். வெளியிலிருந்து எதையும் உங்கள் server-ஐ அடைய வேண்டியதில்லை, எனவே உங்களுக்கு DNS record அல்லது certificate தேவையில்லை. இந்த agent-ன் சொந்த HTTP port-ஆன 8723, 127.0.0.1-ல் இணையும்; இதை public-ஆக திறக்க வேண்டாம் என்று project ஆவணங்கள் அறிவுறுத்துகின்றன. SSH-ஐ மட்டும் அனுமதிக்கும் firewall-தான் சரியான configuration.

Iva-வை மாதந்தோறும் இயக்க எவ்வளவு செலவாகும்?

ஆகஸ்ட் 2026-ன் வெளியிடப்பட்ட விலைப்பட்டியலின்படி, ஒரு சிறிய VPS-க்கு 5 டாலர்கள் மற்றும் மலிவான flat rate model plan-க்கு 5 டாலர்கள் என மொத்தம் மாதம் சுமார் 10 அமெரிக்க டாலர்கள் செலவாகும். Ollama Cloud-க்கு 20 டாலர்கள் செலவாகும், மேலும் frontier models-க்கு தனியாக கட்டணம் வசூலிக்கப்படும். Deepgram starter credits ஆரம்பத்தில் voice பயன்பாட்டிற்கு உதவும், மேலும் web search tiers-ல் இலவச பயன்பாட்டு வரம்புகள் உள்ளன. OpenRouter என்பது pay-as-you-go முறை என்பதால், அதற்கு நிலையான மாத கட்டணம் கிடையாது.

Iva எனது தரவை எங்கே சேமிக்கிறது, அதை எப்படி backup எடுப்பது?

இயல்பாக, ASSISTANT_VAULT_DIR மூலம் அமைக்கப்படும் ~/iva/vault-ல் தரவு சேமிக்கப்படும். இது plain markdown கோப்புகளைக் கொண்ட ஒரு தனிப்பட்ட git repository ஆகும்: CORE.md, daily/YYYY-MM-DD.md, cards/ மற்றும் summaries/. தினமும் 05:00 மணிக்கு memory doctor இதை commit செய்து push செய்யும். repository-க்கு remote இருந்தால் மட்டுமே இது பயனுள்ளதாக இருக்கும், எனவே gh auth login-ஐ இயக்கவும் அல்லது setup-ன் போது நீங்களே ஒரு remote-ஐ சேர்க்கவும். tar czf ~/iva-vault-backup.tgz -C ~/iva vault மூலம் ஒரு offline நகலையும் வைத்துக்கொண்டு, அந்த கோப்பை server-லிருந்து வெளியே நகர்த்தவும்.

Iva-வை self-host செய்தால் எனது தரவு தனிப்பட்டதாக இருக்குமா?

சேமிப்பு உங்களுடையது, ஆனால் செயலாக்கம் (processing) அவ்வாறு இருக்காது. நீங்கள் push செய்யும் வரை vault உங்கள் disk-லேயே இருக்கும், மேலும் .env, service user-ன் உரிமையில் 0600 mode-ல் இருக்கும். Model calls மற்றும் voice transcription ஆகியவை cloud API-கள் என்பதால், அந்த செய்திகள் உங்கள் model provider மற்றும் Deepgram வழியாகச் செல்லும். Iva, MIT உரிமம் பெற்றது, எனவே அது எதை அனுப்புகிறது என்பதை நீங்கள் துல்லியமாகப் படித்து மாற்றிக்கொள்ளலாம். Telegram allowlist 'fail closed' முறையில் செயல்படுகிறது, அதாவது TELEGRAM_ALLOWED_USER_IDS காலியாக இருந்தால், அது உங்களையும் சேர்த்து அனைவரையும் தடுக்கும்.

Iva எந்தெந்த model provider-களை ஆதரிக்கிறது?

MODEL_PROVIDER, opencode (OpenCode Go), ollama (Ollama Cloud), openrouter மற்றும் codex ஆகியவற்றை ஏற்கும். OpenRouter, anthropic/claude-sonnet-4.5 போன்ற vendor slug-களைப் பெற்று, அதிகப்படியான model தேர்வுகளை வழங்குகிறது. codex, ஏற்கனவே உள்ள ChatGPT சந்தாவில் iva login மூலம் உள்நுழையும், இதற்கு API key தேவையில்லை. provider-ஐ அமைத்து, context window-வை அந்த model-ன் உண்மையான அளவிற்கு ஏற்ப மாற்றிய பின், iva restart-ஐ இயக்கவும்; ஏனெனில் model process தொடங்கும் போது ஒருமுறை மட்டுமே வாசிக்கப்படும்.