Локальный установщик экосистемы LumeSoftware: Rust, графический интерфейс и CLI
  • Rust 75.3%
  • Python 14.4%
  • JavaScript 10%
  • HTML 0.3%
REPOSITORY / OVERVIEW

Project at a glance

Browse files ↓
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-11-02 22:53:58 +03:00
design Описания компонентов установщика синхронизированы с LumeWebsite 2026-11-02 20:55:18 +03:00
docs Выровнены текст проверки Node.js и кнопка установки 2026-11-02 22:53:58 +03:00
scripts Выровнены текст проверки Node.js и кнопка установки 2026-11-02 22:53:58 +03:00
src Добавлена установка Node.js с прогрессом в GUI и CLI 2026-11-02 22:49:18 +03:00
tests feat: добавить терминальный мастер и единый дизайн LumeDeploy 0.2.0 2026-11-01 20:23:45 +03:00
verification Выровнены текст проверки Node.js и кнопка установки 2026-11-02 22:53:58 +03:00
web Выровнены текст проверки Node.js и кнопка установки 2026-11-02 22:53:58 +03:00
.gitignore feat: создать LumeDeploy 0.1.0 с мастером установки и CLI на Rust 2026-11-01 18:35:40 +03:00
AGENTS.md Интерфейс установщика обновлён по общему стандарту Lume UI 1.1 2026-11-02 20:29:36 +03:00
Cargo.lock Выровнены текст проверки Node.js и кнопка установки 2026-11-02 22:53:58 +03:00
Cargo.toml Выровнены текст проверки Node.js и кнопка установки 2026-11-02 22:53:58 +03:00
LICENSE feat: создать LumeDeploy 0.1.0 с мастером установки и CLI на Rust 2026-11-01 18:35:40 +03:00
README.md Выровнены текст проверки Node.js и кнопка установки 2026-11-02 22:53:58 +03:00
rust-toolchain.toml feat: создать LumeDeploy 0.1.0 с мастером установки и CLI на Rust 2026-11-01 18:35:40 +03:00

LumeDeploy

Версия: 0.4.1 · Выпуск v0.4.1.

Обзор установленного окружения

Локальный установщик экосистемы LumeSoftware на Rust. Один исполняемый файл: графический интерфейс в браузере и CLI используют одно ядро установки. Интерфейс встроен в бинарный файл; Electron, Node.js и Rust для запуска самого установщика не нужны. Для компонента Studio требуется Node.js 22+.

Возможности

  • Мастер из пяти шагов: компоненты, проверка, настройки, точный план, установка.
  • Готовые релизы DB/BOS/UNT/Studio из публичной ленты LumeGit, отдельные версии и SHA-256.
  • Проверка Linux x86_64, свободного места, портов, Node.js и совместимости набора.
  • Изолированная установка для текущего пользователя без sudo; безопасная распаковка архивов.
  • Настройка администратора и BOS, запуск и проверка ответов приложений.
  • Обзор, сведения о новых выпусках, каталоги данных и журналы с сокрытием пароля.
  • Штатная остановка DB/BOS и повторный запуск; данные сохраняются.

Выпуск 0.4.1 рассчитан на новые локальные окружения GNU/Linux x86_64 с glibc 2.39+. Проверяемый набор: DB 0.1.2, BOS 0.2.1, UNT 0.1.2, Studio 0.4.1. Автоматическое обновление существующей базы, миграции, резервное копирование, откат, установка на другой сервер по SSH и импорт чужих установок не входят в этот выпуск. При появлении версий вне проверенного набора установка останавливается до обновления таблицы совместимости. CSL — библиотека, отдельный сервис не создаётся.

Первый запуск

Скачайте Linux-архив и файл контрольной суммы со страницы выпуска:

sha256sum --check lumedeploy-0.4.1-linux-x86_64.tar.gz.sha256
mkdir -p lumedeploy-0.4.1
tar -xzf lumedeploy-0.4.1-linux-x86_64.tar.gz -C lumedeploy-0.4.1
cd lumedeploy-0.4.1
./lumedeploy

При запуске без аргументов выберите интерфейс: CLI — установка в терминале или GUI — мастер в браузере. Стрелки и Enter выбирают режим; Esc выходит. Для прямого запуска используйте ./lumedeploy cli или ./lumedeploy gui.

Терминальный мастер поддерживает полный цикл установки, скрытый пароль с повтором, настройку путей и портов, проверку, точный план и прогресс. После установки доступен обзор, запуск/штатная остановка, журналы и пути данных. Графический режим открывает локальную страницу. Если браузер не открылся, скопируйте полный адрес из терминала. Ключ сеанса находится после #session=; он нужен для доступа к API и действует до закрытия приложения. Не передавайте этот адрес другим людям.

По умолчанию GUI слушает 127.0.0.1. Удалённый режим включается явно через --remote; оба режима требуют ключ для API и проверяют Host/Origin. Сервисы также привязываются только к loopback. LumeUNT Node — демонстрационный сервер без авторизации и шифрования; DB и BOS используют заданного администратора.

Без аргументов ./lumedeploy предлагает три пункта: CLI, локальный GUI и GUI на VPS. Для подключения с другого компьютера выберите третий пункт — IP определяется автоматически, готовая ссылка появляется в терминале. Переключение: ↑/↓ или Tab; клавиши 1/2/3 выбирают пункт, Enter запускает. Esc отменяет запуск.

Интерактивный CLI

./lumedeploy cli
./lumedeploy --root "$HOME/LumeEnvironments/demo" cli

Стрелки/Tab перемещают выбор, Space включает компонент, Enter подтверждает. В полях ←/→, Home/End, Backspace/Delete и Ctrl+U редактируют значение. PgUp/PgDn прокручивают длинный план или журнал; Tab возвращает к действиям. Символьная шапка LumeDeploy показана на всех экранах CLI. Большая надпись появляется при достаточной ширине и высоте (от 30 строк), в небольшом терминале — компактный логотип. Прокрутка учитывает высоту шапки. Минимальный размер терминала — 64×20, поддерживается изменение размера. Пароль и его повтор скрыты. NO_COLOR=1 отключает цвет.

Ctrl+C во время установки запрашивает отмену на безопасном этапе. Проверенные пакеты и конфигурация сохраняются. Финальный запуск/штатная остановка сначала завершаются; затем интерфейс выходит и восстанавливает настройки терминала. При следующем запуске незавершённую установку можно продолжить.

Без TTY меню не открывается: приложение печатает подсказку и завершает работу. Для скриптов используйте явные команды ниже. gui --no-open по-прежнему работает без TTY и печатает адрес для браузера.

CLI для автоматизации

./lumedeploy --help
./lumedeploy check --components db,studio
./lumedeploy plan --components db,bos,unt,studio

read -rsp 'Пароль администратора: ' LUME_DEPLOY_PASSWORD
printf '\n'
printf '%s' "$LUME_DEPLOY_PASSWORD" | ./lumedeploy install --components db,bos,unt,studio --password-stdin
unset LUME_DEPLOY_PASSWORD

./lumedeploy status --json
./lumedeploy stop
./lumedeploy start
./lumedeploy logs --component db

Пароль — минимум 12 символов, без двоеточия и управляющих символов. Он передаётся CLI компонентов через stdin, а Studio — через окружение процесса. Для повторной попытки незавершённой установки используются сохранённые настройки и секрет; передавать пароль повторно не требуется.

По умолчанию используется ~/.local/share/lumedeploy/environments/local. Другую папку можно выбрать в мастере или через глобальный --root:

./lumedeploy --root "$HOME/LumeEnvironments/demo" gui
./lumedeploy --root "$HOME/LumeEnvironments/demo" status

Порты задаются --db-port, --repl-port, --transport-port, --bos-port, --unt-port, --studio-port. Команда install --no-start только подготавливает установку. gui --no-open печатает адрес без открытия браузера.

Сборка и проверка

Нужны Rust 1.99 и системный линковщик; соседние репозитории не требуются.

cargo build --release --locked
cargo test --locked
cargo clippy --all-targets --locked -- -D warnings
./target/release/lumedeploy --version

Сквозная проверка скачивает настоящие релизы в отдельную временную папку, запускает сервисы на свободных портах и останавливает их после проверки:

python3 scripts/e2e.py

Браузерная проверка описана в руководстве разработчика.

Документация

Лицензия: MIT.

Общий визуальный стиль

GUI использует логотип, локальные шрифты Golos Text / IBM Plex Mono и палитру LumeWebsite. На главной слоганы меняются автоматически, без кнопок и счётчика. Автосмена останавливается в скрытой вкладке, вне экрана и при настройке уменьшенного движения. Шрифты включены локально с лицензиями OFL.

Описания проектов синхронизируются из LumeWebsite/design/project-descriptions.json. Локальная копия — design/project-descriptions.json; не редактируйте подписи в JS вручную.

GUI на VPS с прямым доступом

./lumedeploy gui --remote

LumeDeploy определит IP VPS и выведет полный адрес http://IP:19080/#session=…. Откройте именно его в браузере своего компьютера. Для этого входящий TCP-порт 19080 должен быть разрешён в брандмауэре и панели провайдера. Приложение не изменяет правила сети автоматически и не открывает браузер на сервере.

IP берётся из публичного адреса текущего SSH_CONNECTION. При необходимости используется HTTPS API ipify; при недоступности сервиса сохраняется известный адрес SSH. Для NAT, VPN или другого адреса есть явный выбор:

./lumedeploy gui --remote --public-ip 203.0.113.10 --port 19080

HTTP не шифрует ключ сеанса и вводимые данные. Для постоянного доступа через HTTPS настройте внешний прокси и укажите его адрес; сам LumeDeploy в этом примере доступен прокси только через loopback:

./lumedeploy gui --remote --public-url https://deploy.example.com --listen 127.0.0.1 --port 19080

При --public-url backend по умолчанию слушает loopback. Прокси должен сохранять исходные Host и Origin. --public-url задаёт внешний адрес, а не устанавливает сертификат. Пути, параметры, fragment и учётные данные в этом адресе не допускаются.

Удалённый режим открывает только GUI LumeDeploy. DB, BOS, UNT и Studio продолжают слушать localhost на VPS. Для Studio нужен отдельный HTTPS-прокси или туннель; ссылка на localhost компьютера пользователя в удалённом интерфейсе не показывается. CLI, TUI и обычный gui сохраняют прежний локальный режим.

Установка Node.js из интерфейса

Если для Studio отсутствует Node.js 22+, на шаге проверки нажмите «Установить Node.js». В CLI на том же шаге выберите «Установить Node.js 22 для этого окружения». Оба интерфейса показывают этапы и объём загрузки; после завершения проверка повторяется автоматически. В GUI прогресс восстанавливается после перезагрузки страницы.

LumeDeploy скачивает Linux x64 runtime из официальных выпусков Node.js 22 по HTTPS, проверяет SHA-256 по официальному SHASUMS256.txt и запуск бинарника. Он хранится в runtime/node/bin/node выбранного окружения и используется для запуска Studio после перезапуска LumeDeploy. Системные пакеты и PATH не меняются, sudo не нужен. Это runtime для Studio, без установки npm и глобальных команд. При выборе другой папки окружения Node.js проверяется для новой папки. Загрузка зависит от доступа VPS к nodejs.org; ошибку можно исправить и повторить установку. Проверенные архивы кешируются.