Appearance
Установка CLI
ush — командная утилита для управления раннерами UniShift на хосте: установка плагинов, создание инстансов, запуск/остановка, конфиг и логи.
Бинарники публикуются на storage.unishift.ru/cli.
Быстрая установка
Linux / macOS:
bash
curl -fsSL https://storage.unishift.ru/cli/install.sh | bashСкрипт определит ОС и архитектуру, скачает нужный бинарник и установит его в /usr/local/bin/ush (при необходимости через sudo).
Проверка:
bash
ush --helpПараметры установки
Переменные нужно передавать в bash, который выполняет скрипт (не в curl):
bash
# Каталог без sudo
curl -fsSL https://storage.unishift.ru/cli/install.sh \
| INSTALL_DIR="$HOME/.local/bin" bash
# Другой источник бинарников
curl -fsSL https://storage.unishift.ru/cli/install.sh \
| BASE_URL=https://storage.unishift.ru/cli bash| Переменная | Назначение | По умолчанию |
|---|---|---|
BASE_URL | Откуда качать бинарники и SHA256SUMS | https://storage.unishift.ru/cli |
INSTALL_DIR | Куда положить бинарник | /usr/local/bin |
BIN_NAME | Имя файла в INSTALL_DIR | ush |
Если INSTALL_DIR не в PATH, добавьте его или перелогиньтесь.
Ручная установка
Скачайте бинарник под свою платформу и положите в PATH:
| Платформа | Файл |
|---|---|
| Linux amd64 | https://storage.unishift.ru/cli/ush-linux-amd64 |
| Linux arm64 | https://storage.unishift.ru/cli/ush-linux-arm64 |
| macOS amd64 | https://storage.unishift.ru/cli/ush-darwin-amd64 |
| macOS arm64 | https://storage.unishift.ru/cli/ush-darwin-arm64 |
| Windows amd64 | https://storage.unishift.ru/cli/ush-windows-amd64.exe |
Пример (Linux amd64):
bash
curl -fsSL -o ush https://storage.unishift.ru/cli/ush-linux-amd64
chmod +x ush
sudo mv ush /usr/local/bin/ushWindows
На Windows install.sh не используется — скачайте .exe вручную из таблицы выше.
Обновление CLI
Повторный запуск установщика перезапишет бинарник:
bash
curl -fsSL https://storage.unishift.ru/cli/install.sh | bashURL платформы (важно)
Раннер подключается к платформе по gRPC (/api/v1/runner-stream). В конфиге нужен адрес gateway, а не веб-клиента.
| Порт (prod по умолчанию) | Сервис | Для раннера |
|---|---|---|
18080 | Веб-клиент (nginx, HTTP/1.1) | нет |
18090 | Gateway (HTTP + gRPC/h2c) | да |
Типичная ошибка при URL на UI (:18080):
text
http2: frame too large … looked like an HTTP/1.1 headerПримеры корректного url:
bash
# Self-hosted (HTTP) — нужен insecure
url=http://62.109.4.210:18090
insecure=true
# HTTPS / облако
url=https://app.example.comПорт 18090 должен быть доступен с хоста раннера (firewall / security group).
Подробнее про общие параметры раннера — в Базовые настройки.
Быстрый старт
bash
# Скачать плагин и сразу запустить (интерактивный опрос url/token/…)
ush install shell --start
# Или без вопросов
ush install shell --start --non-interactive \
--set url=http://HOST:18090 \
--set token=YOUR_TOKEN \
--set insecure=true
ush statusОбязательные поля при старте: url, token (для sql ещё dsn).
Команды
Глобальный флаг: --json — машиночитаемый вывод (где поддерживается).
<id> / instance_id — идентификатор инстанса вида shell-eedb1b0f (см. ush status).
| Команда | Кратко |
|---|---|
ush install | Скачать плагин и создать инстанс |
ush start | Запустить инстанс или создать новый |
ush stop | Остановить инстанс |
ush restart | Перезапустить инстанс |
ush status | Список инстансов и ресурсы |
ush logs | Показать / стримить логи |
ush config get / set | Просмотр и изменение конфига |
ush update | Обновить бинарник плагина |
ush remove | Удалить инстанс |
install
Скачивает бинарник плагина с storage под текущую ОС/архитектуру, кладёт его в локальный кэш и регистрирует новый инстанс. Сам по себе процесс раннера не запускает — только готовит инстанс (если не указан --start).
bash
ush install shell
ush install shell --start
ush install shell --set url=http://HOST:18090 --set token=SECRET --set insecure=true --start
ush install shell --start --non-interactive --set url=... --set token=...| Флаг | Описание |
|---|---|
--set key=value | Параметр конфига (можно несколько раз) |
--start | Сразу запустить инстанс после установки |
--non-interactive | Не спрашивать значения в терминале |
После первой установки дополнительные инстансы того же плагина создаются без повторного скачивания через ush start shell.
start
Запускает раннер. Аргумент — либо instance_id существующего инстанса, либо имя плагина: тогда создаётся новый инстанс из уже скачанного бинарника.
В интерактивном терминале перед стартом опрашивает конфиг (Enter оставляет значение в [скобках]). Обязательны url и token (для sql ещё dsn).
bash
ush start shell-eedb1b0f
ush start shell --set url=http://HOST:18090 --set token=SECRET
ush start shell --non-interactive --set url=... --set token=...| Флаг | Описание |
|---|---|
--set key=value | Параметр конфига (можно несколько раз) |
--non-interactive | Без опроса — только --set и сохранённый конфиг |
Если инстанс уже running и --set не передан, команда ничего не делает и подскажет сделать restart.
stop
Останавливает работающий инстанс (graceful shutdown процесса раннера). Инстанс остаётся в реестре — его можно снова запустить через start.
bash
ush stop shell-eedb1b0frestart
Останавливает и сразу запускает инстанс заново. Удобно после смены конфига или чтобы заново пройти опрос параметров. Флаги те же, что у start: --set, --non-interactive.
bash
ush restart shell-eedb1b0f
ush restart shell-eedb1b0f --set insecure=truestatus
Показывает все зарегистрированные инстансы: id, плагин, состояние (running / stopped), CPU и память для запущенных процессов.
bash
ush status
ush status --jsonlogs
Читает лог-файл инстанса (~/.ush/runners/<plugin>/<id>/logs/runner.log).
bash
ush logs shell-eedb1b0f # последние 50 строк
ush logs shell-eedb1b0f -n 200 # последние 200 строк
ush logs shell-eedb1b0f -f # стримить новые строки (Ctrl+C — выход)| Флаг | Описание |
|---|---|
-n, --lines | Сколько последних строк показать (по умолчанию 50) |
-f, --follow | Следить за файлом в реальном времени |
config
Управление конфигурацией инстанса без правки файлов вручную.
ush config get <id>— показать все ключи: пользовательские и значения по умолчанию (помечены(default)).ush config set <id> <key> <value>— записать параметр. Если инстанс запущен, изменения применятся только послеush restart <id>.
bash
ush config get shell-eedb1b0f
ush config set shell-eedb1b0f url http://HOST:18090
ush config set shell-eedb1b0f insecure trueОбщие ключи: url, token, name, insecure, untagged, temporary, session-timeout, task-timeout, concurrency, tags, description, artifact-tmp. Специфичные для плагина — в Базовые настройки и страницах отдельных раннеров.
update
Скачивает свежую версию бинарника плагина для этого инстанса и подменяет локальный файл. Конфиг и instance_id сохраняются. Если инстанс был запущен, его нужно перезапустить, чтобы подхватить новый бинарник.
bash
ush update shell-eedb1b0fremove
Останавливает инстанс (если running) и удаляет его из реестра вместе с локальными файлами инстанса. Плагин в кэше может остаться — его можно снова использовать через ush start <plugin>.
bash
ush remove shell-eedb1b0fПлагины
Раннеры скачиваются с https://storage.unishift.ru/runners/{os}/{plugin}.
| Плагин | Назначение |
|---|---|
shell | Shell-команды на хосте |
code | Код в изолированном контейнере |
docker | Задачи в Docker |
sql | SQL-запросы |
ollama | LLM через Ollama |
docx-generator / pdf-generator / xlsx-generator | Генерация документов |
Данные на диске
Всё локальное состояние CLI лежит в ~/.ush/:
| Путь | Содержимое |
|---|---|
~/.ush/registry.json | Реестр инстансов |
~/.ush/runners/<plugin>/<id>/ | Бинарник, config.json, логи |
~/.ush/tmp/ | Временные загрузки |