🇬🇧 English version — каноническая версия, она может быть новее.
Всё, что лежит между curl и работающим ботом. Одна команда на чистом сервере: установщик спросит язык, проведёт по пяти ключам и в конце напишет вам из вашего же бота.
- 🖥️ Сервер или свой компьютер — проверенный путь это Ubuntu/Debian (apt); Fedora (dnf) и macOS (brew) тоже работают. Подойдёт любая всегда включённая машина.
- 🧠 512 МБ памяти хватает — на машинах меньше 1.5 ГБ установщик добавит swap-файл на 2 ГБ, чтобы сборку не убил OOM (нужно ~2.6 ГБ свободного места на диске).
- 🔑 sudo — спрашивается сразу и только если не хватает системных пакетов или нужен swap-файл; шаг с Chromium может спросить ещё раз.
Никогда не работали с сервером? Хостинг присылает адрес (IP), логин и пароль. На Mac или Linux откройте «Терминал», на Windows — PowerShell, введите
ssh root@YOUR_ADDRESS, потом пароль. Вы внутри. Первым делом заведите себе обычного пользователя и перейдите в него -adduser iva && usermod -aG sudo iva && su - iva- и ставьте уже оттуда. Shell-инструмент Ивы работает с правами того, кто её поставил, так что root ему отдавать не надо.
Если установка заканчивается ошибкой
Failed to connect to bus: No medium found, выйдите изsu - iva. Включите linger и подключитесь напрямую:exit # обратно в root-сессию на сервере loginctl enable-linger iva exit # обратно на свой компьютер ssh iva@YOUR_ADDRESSПосле этого снова запустите установку.
curl -fsSL https://raw.githubusercontent.com/smixs/iva/main/install.sh | bashПервый вопрос — язык, English или русский, ещё до того, как скрипт что-то тронет в системе. Ввод читается из /dev/tty, поэтому мастер остаётся интерактивным даже через пайп из curl. Если терминала нет вовсе (Docker, CI), настройка пропускается, а скрипт печатает, как запустить её позже.
Пять шагов. К каждому ключу — прямая ссылка на место, где он лежит, и живая проверка: неверный ключ отклоняется на месте, а не всплывает в рантайме. Enter оставляет текущее значение, так что повторный запуск мастера (iva config) меняет только то, что вы хотите.
- Провайдер и модель. Ollama Cloud или OpenCode Go (сравнение); ключ проверяется по API, потом вы выбираете модель из живого списка провайдера.
- Голос, поиск, гибридная память. Ключ Deepgram (дают бесплатный стартовый кредит); язык распознавания
multiсам определяет ru/uz/en. Тут же выбирается провайдер веб-поиска — Tavily, Exa, Parallel или Brave; Enter пропускает шаг, и поиск остаётся выключенным, — и предлагается опциональная гибридная память с ключом для эмбеддингов. - Telegram-бот. Вставьте токен от @BotFather; мастер проверит его через
getMeи сам определит username бота. - Доступ. Напишите своему новому боту любое сообщение — «привет» подойдёт. Мастер читает
getUpdates, показывает, кто написал, и вы выбираете себя. Iva отвечает только этим ID; пустой список — не отвечает никому. - Таймзона, vault, порт. Таймзона IANA, чтобы ночные задачи шли по вашим часам, директория vault и порт — по умолчанию 8723, с проверкой на конфликты.
- 📦 Системные пакеты —
git gh python3 ffmpeg pandoc poppler-utils(popplerв brew):ghбэкапит vault в приватный репозиторий на GitHub, pandoc и poppler достают текст из входящих docx/pdf, ffmpeg конвертирует медиа, которые расшифровщик не берёт напрямую. - 🐍 uv — запускает Python-скрипты обслуживания vault.
- 🟢 Node 24 через nvm — root не нужен; 24 — жёсткий минимум, потому что поиск по памяти использует встроенный
node:sqlite. - 🌐 agent-browser + Chromium — headless-браузер для веб-задач; самый долгий шаг, 1–3 минуты видимого вывода загрузки.
- 🗂️ Инициализация vault — память создаётся из
vault-template/как отдельный git-репозиторий, так что личные данные никогда не попадают в репозиторий с кодом. - ⚙️ Фоновый runtime — два systemd user service, два systemd watchdog-таймера и пять внутрипроцессных eve schedules, с включённым linger, чтобы всё пережило logout. Подробности: deploy.md.
- 🧰 Команда
iva— ставится в~/.local/bin:iva status,iva doctor,iva update. Полный справочник: cli.md. - ✅ Подтверждение в Telegram — последнее, что делает установщик, — пишет вам из вашего же бота: «Iva установлена и на связи. Напишите мне — отвечу». Это и есть сигнал успеха.
Запускать ту же команду повторно безопасно: скрипт переиспользует существующий checkout, обновляет его fast-forward и не трогает .env и vault.
Флаги проходят через пайп с помощью bash -s --:
curl -fsSL https://raw.githubusercontent.com/smixs/iva/main/install.sh | bash -s -- --skip-setup| Опция | Действие |
|---|---|
--skip-setup |
поставить всё, но не запускать мастер |
--non-interactive |
вообще без вопросов — только значения по умолчанию, мастер пропущен |
-h, --help |
показать встроенную справку и выйти |
REPO_URL=… |
ставить из форка (по умолчанию https://github.com/smixs/iva.git) |
BRANCH=… |
ставить и дальше обновлять эту ветку (по умолчанию main) |
INSTALL_DIR=… |
куда положить код (по умолчанию ~/iva) |
Последние три — переменные окружения, скрипт читает их на старте.
Пропустили настройку или при установке не было терминала:
cd ~/iva && npm run setupПотом запустите команду установки ещё раз — она найдёт существующий checkout и доделает сборку, systemd-юниты и подтверждение.
- Каждая переменная
.env, значения по умолчанию и предупреждения — configuration.md - Серверный CLI
ivaи команды в Telegram — cli.md - Транспорт, таймеры, режим webhook и эксплуатация — deploy.md