Здесь описано, как обновить Istok, как сделать веб-интерфейс всегда доступным в виде фоновой службы на Linux и macOS и как одно связано с другим.
Обновить Istok
istok update
Istok проверяет, есть ли новый стабильный релиз, показывает текущую и новую версию, размер загрузки и описание изменений и спрашивает, устанавливать ли. Ответьте y, чтобы продолжить.
istok update --checkтолько проверяет и ничего не меняет.istok update --yesустанавливает без вопроса — для скриптов.
Во время обновления Istok:
- скачивает релиз и проверяет его подпись;
- делает временную резервную копию базы данных;
- заменяет бинарник и применяет изменения базы данных для новой версии;
- если этот шаг не удался, возвращает старый бинарник и резервную копию базы и сообщает об ошибке.
После успешного обновления временная копия удаляется. Она покрывает только базу данных, но не индексы кода и не артефакты запусков. Про собственные резервные копии — в разделе Конфигурация.
Если вы используете свою базу данных, укажите её, чтобы Istok сохранил и обновил нужный файл: istok update --database /path/to/istok.db или переменная ISTOK_DATABASE.
Бинарник, собранный из исходников, не умеет обновлять себя сам. istok update сообщит об этом и подскажет, как установить официальный релиз.
Агенты после обновления
Агент запускает istok mcp как отдельный процесс. Уже открытая сессия продолжает работать со старым процессом, пока агент не перезапустит свои MCP-серверы, поэтому после обновления начните новую сессию.
Запуск интерфейса как службы
Интерфейс можно держать запущенным в фоне, всегда по одному и тому же адресу. На Linux для этого используется пользовательская служба systemd, на macOS — агент launchd:
istok ui service install
Команда создаёт службу, включает и запускает её. sudo не нужен. Служба запускает тот бинарник istok, которым вы выполнили install, на http://127.0.0.1:7700 и поднимается снова после сбоя или перезагрузки.
| Система | Служба | Файл |
|---|---|---|
| Linux | пользовательский юнит systemd istok-ui.service |
~/.config/systemd/user/istok-ui.service |
| macOS | агент launchd sh.istok.ui |
~/Library/LaunchAgents/sh.istok.ui.plist |
На macOS интерфейс пишет лог в ~/Library/Logs/istok/ui.log. На Linux лог можно посмотреть командой journalctl --user -u istok-ui.
Чтобы задать другой порт или базу данных, передайте их в install:
istok ui service install --port 7800 --database /path/to/istok.db
Служба не видит окружение вашей оболочки, поэтому указанный путь к базе (или ISTOK_DATABASE на момент установки) записывается в файл службы. Чтобы изменить эти настройки, снова выполните install: команда обновит файл и перезапустит службу. Файл каждый раз создаётся заново, поэтому не правьте его вручную.
Управление службой:
istok ui service status
istok ui service restart
istok ui service stop
istok ui service start
istok ui service uninstall
uninstall останавливает и отключает службу и удаляет её файл.
На macOS stop выгружает агент, иначе launchd сразу запустил бы его снова. Агент загрузится при start или при следующем входе в систему.
Чтобы служба работала после выхода из системы (Linux)
Когда вы выходите из системы, systemd останавливает пользовательские службы. Чтобы интерфейс продолжал работать, включите lingering для своего пользователя:
loginctl enable-linger
На macOS агент привязан к вашему сеансу: он запускается при входе в систему и останавливается при выходе.
Обновления и служба
После успешного обновления Istok сам перезапускает службу интерфейса, если выполнены все условия:
- служба установлена;
- она запущена;
- она использует тот бинарник, который только что обновился.
Тогда вы увидите сообщение Restarted the web UI service on the new binary. Службу, которая запускает другой бинарник istok, Istok не трогает.
Если перезапуск не удался, обновление всё равно считается успешным, а Istok выводит предупреждение. Перезапустите службу сами:
istok ui service restart
Если вы установили службу из одного бинарника, а потом перешли на другой — например, со сборки из исходников на установщик, — выполните istok ui service install новым бинарником, чтобы служба переключилась на него.
Все флаги — в справке по istok ui.