istok ui запускает веб-интерфейс, встроенный в бинарный файл Istok, а в Linux и macOS ещё и управляет им как фоновым сервисом. Что показывает интерфейс, читайте в руководстве по веб-интерфейсу; пошаговая настройка сервиса — в разделе Обновления и служба веб-интерфейса.
Команды
| Команда | Назначение |
|---|---|
serve |
Запустить веб-интерфейс на переднем плане. Команда по умолчанию. |
service install |
Создать или обновить сервис, включить его и (пере)запустить. |
service uninstall |
Остановить и отключить сервис и удалить его файл. |
service start |
Запустить сервис. |
service stop |
Остановить сервис. |
service restart |
Перезапустить сервис. |
service status |
Показать состояние сервиса. |
Запустить интерфейс
istok ui
работает так же, как:
istok ui serve
Istok слушает 127.0.0.1, выводит адрес и открывает его в браузере по умолчанию:
Istok UI: http://127.0.0.1:7700/
Press Ctrl+C to stop.
Если открыть браузер не удалось, Istok выводит предупреждение и продолжает работать — откройте адрес вручную.
Флаги:
| Флаг | По умолчанию | Назначение |
|---|---|---|
--port |
7700 |
Порт на loopback-интерфейсе. 0 выбирает свободный порт. Также ISTOK_UI_PORT. |
--no-open |
Вывести адрес, не открывая браузер. | |
--database PATH |
Путь к базе SQLite. Также ISTOK_DATABASE. |
Например:
istok ui --port 7800 --no-open
Если порт уже занят, команда завершается ошибкой и предлагает выбрать другой через --port.
Интерфейс доступен только с локальной машины. У него нет входа и токена; от чего это защищает, а от чего нет, читайте в руководстве по веб-интерфейсу.
Запуск как сервис
istok ui service запускает интерфейс как фоновый сервис вашего пользователя. Права root не нужны.
| Система | Менеджер сервисов | Сервис | Файл |
|---|---|---|---|
| Linux | systemd (systemctl --user) |
istok-ui.service |
${XDG_CONFIG_HOME:-$HOME/.config}/systemd/user/istok-ui.service |
| macOS | launchd (launchctl, домен gui/<uid>) |
sh.istok.ui |
~/Library/LaunchAgents/sh.istok.ui.plist |
На других системах, а также без systemctl или launchctl команда сообщит, что не поддерживается, — запускайте istok ui напрямую.
Файл генерируется заново при каждом install, поэтому не правьте его вручную.
Установка
istok ui service install
install записывает файл сервиса, загружает или перезагружает сервис и (пере)запускает его. Команда выводит путь к файлу, бинарный файл, который запускает сервис, и адрес:
Istok UI: http://127.0.0.1:7700/
Сервис запускает бинарный файл istok по тому абсолютному пути, с которым вы выполнили install, с аргументами ui --no-open и выбранным портом.
Флаги:
| Флаг | По умолчанию | Назначение |
|---|---|---|
--port |
7700 |
Порт на loopback-интерфейсе, который слушает сервис. Также ISTOK_UI_PORT. |
--database PATH |
Путь к базе SQLite, записывается в файл сервиса. Также ISTOK_DATABASE. |
Сервис не наследует окружение вашей оболочки. Если вы используете свою базу, передайте её в install (или задайте ISTOK_DATABASE при запуске команды), чтобы абсолютный путь записался в файл сервиса.
Чтобы сменить порт или базу или переключить сервис на другой бинарный файл istok, снова выполните install.
Перезапуск и логи
После сбоя сервис запускается снова. На Linux systemd перезапускает его через 2 секунды; лог можно посмотреть командой journalctl --user -u istok-ui. На macOS launchd перезапускает его примерно через 10 секунд и запускает при каждом входе в систему; лог пишется в ~/Library/Logs/istok/ui.log.
Работа после выхода из системы (Linux)
systemd останавливает пользовательские сервисы, когда завершается ваша последняя сессия, если для пользователя не включён режим lingering:
loginctl enable-linger
Управление сервисом
istok ui service status
istok ui service stop
istok ui service start
istok ui service restart
На Linux эти команды вызывают systemctl --user для istok-ui.service. Неактивный сервис status показывает без ошибки.
На macOS они вызывают launchctl: start и restart используют kickstart, status показывает launchctl print. stop выгружает агент (bootout), иначе launchd снова запустил бы остановленный интерфейс; агент загрузится при start или при следующем входе в систему.
Удаление
istok ui service uninstall
Команда останавливает сервис и удаляет его файл. На Linux она также отключает юнит и перезагружает systemd, на macOS — выгружает агент.
Обновления
После успешного istok update Istok перезапускает сервис, если выполнены все условия:
- сервис установлен;
- сервис активен;
- сервис запускает тот самый бинарный файл, который только что обновился.
При перезапуске istok update выводит:
Restarted the web UI service on the new binary.
Если перезапуск не удался, обновление всё равно считается успешным, а Istok выводит предупреждение. Перезапустите сервис сами командой istok ui service restart.