Skip to content

Latest commit

 

History

History
92 lines (65 loc) · 9.39 KB

File metadata and controls

92 lines (65 loc) · 9.39 KB

🇬🇧 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) меняет только то, что вы хотите.

  1. Провайдер и модель. Ollama Cloud или OpenCode Go (сравнение); ключ проверяется по API, потом вы выбираете модель из живого списка провайдера.
  2. Голос, поиск, гибридная память. Ключ Deepgram (дают бесплатный стартовый кредит); язык распознавания multi сам определяет ru/uz/en. Тут же выбирается провайдер веб-поиска — Tavily, Exa, Parallel или Brave; Enter пропускает шаг, и поиск остаётся выключенным, — и предлагается опциональная гибридная память с ключом для эмбеддингов.
  3. Telegram-бот. Вставьте токен от @BotFather; мастер проверит его через getMe и сам определит username бота.
  4. Доступ. Напишите своему новому боту любое сообщение — «привет» подойдёт. Мастер читает getUpdates, показывает, кто написал, и вы выбираете себя. Iva отвечает только этим ID; пустой список — не отвечает никому.
  5. Таймзона, vault, порт. Таймзона IANA, чтобы ночные задачи шли по вашим часам, директория vault и порт — по умолчанию 8723, с проверкой на конфликты.

Что делает install.sh

  • 📦 Системные пакеты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