Skip to content

Установка 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Откуда качать бинарники и SHA256SUMShttps://storage.unishift.ru/cli
INSTALL_DIRКуда положить бинарник/usr/local/bin
BIN_NAMEИмя файла в INSTALL_DIRush

Если INSTALL_DIR не в PATH, добавьте его или перелогиньтесь.

Ручная установка

Скачайте бинарник под свою платформу и положите в PATH:

ПлатформаФайл
Linux amd64https://storage.unishift.ru/cli/ush-linux-amd64
Linux arm64https://storage.unishift.ru/cli/ush-linux-arm64
macOS amd64https://storage.unishift.ru/cli/ush-darwin-amd64
macOS arm64https://storage.unishift.ru/cli/ush-darwin-arm64
Windows amd64https://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/ush

Windows

На Windows install.sh не используется — скачайте .exe вручную из таблицы выше.

Обновление CLI

Повторный запуск установщика перезапишет бинарник:

bash
curl -fsSL https://storage.unishift.ru/cli/install.sh | bash

URL платформы (важно)

Раннер подключается к платформе по gRPC (/api/v1/runner-stream). В конфиге нужен адрес gateway, а не веб-клиента.

Порт (prod по умолчанию)СервисДля раннера
18080Веб-клиент (nginx, HTTP/1.1)нет
18090Gateway (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-eedb1b0f

restart

Останавливает и сразу запускает инстанс заново. Удобно после смены конфига или чтобы заново пройти опрос параметров. Флаги те же, что у start: --set, --non-interactive.

bash
ush restart shell-eedb1b0f
ush restart shell-eedb1b0f --set insecure=true

status

Показывает все зарегистрированные инстансы: id, плагин, состояние (running / stopped), CPU и память для запущенных процессов.

bash
ush status
ush status --json

logs

Читает лог-файл инстанса (~/.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-eedb1b0f

remove

Останавливает инстанс (если running) и удаляет его из реестра вместе с локальными файлами инстанса. Плагин в кэше может остаться — его можно снова использовать через ush start <plugin>.

bash
ush remove shell-eedb1b0f

Плагины

Раннеры скачиваются с https://storage.unishift.ru/runners/{os}/{plugin}.

ПлагинНазначение
shellShell-команды на хосте
codeКод в изолированном контейнере
dockerЗадачи в Docker
sqlSQL-запросы
ollamaLLM через Ollama
docx-generator / pdf-generator / xlsx-generatorГенерация документов

Данные на диске

Всё локальное состояние CLI лежит в ~/.ush/:

ПутьСодержимое
~/.ush/registry.jsonРеестр инстансов
~/.ush/runners/<plugin>/<id>/Бинарник, config.json, логи
~/.ush/tmp/Временные загрузки