Skip to content

0036 — Локальный мастер удалённой установки ​

Статус: принято. Дата: 2026-09-26. Владелец: Ian Panaev.

Контекст ​

Администратору нужен графический путь установки Arkvory на другую машину: выбор сервера, проверка, запуск одной кнопкой и готовая консоль. Нативные установщики уже владеют зависимостями, БД, службами и сохранением данных. Удалённое управление не должно превращать публичный API хранения в привилегированный executor с SSH-паролями.

Решение ​

Добавить отдельную точку входа arkvory-remote.mjs в apps/deploy и включить её в существующие клиентские EXE/DEB/RPM. Внутренний allowlist приложения остаётся пустым; apps/cli не импортирует deploy. Локальный HTTP отдает формы без клиентского JavaScript; orchestration, SSH, target commands, tunnel, model и представление находятся в отдельных небольших модулях.

SSH-адаптер использует закреплённую библиотеку ssh2. До аутентификации отдельно обнаруживается fingerprint, который подтверждает оператор. Реальное соединение требует совпадения ключа. Агент и произвольные команды пользователя не поддерживаются. Linux допускает root/passwordless sudo; Windows — административный OpenSSH-сеанс. Привилегированные команды статичны, параметры ограничены и экранированы; пароль владельца передаётся через stdin, не argv. Base64 для stdin обеспечивает переносимость UTF-8 через Windows shell, не считается шифрованием.

Загрузка использует опубликованные стабильные GitHub Releases с manifest/version/hash checks и повторной проверкой SHA-256 на сервере. Токен GitHub не отправляется на сервер и стороннему origin при redirect. Передачи потоковые; ожидания и размеры ограничены. Закрытие сеанса отменяет локальный download и запрещает последующие шаги; оно не обещает остановку или откат уже начатой удалённой установки.

Мастер повторно использует EXE/DEB/RPM и Services.healthy(), после чего открывает loopback SSH forwarding API:8080. Он не публикует PostgreSQL. Доступ к локальному HTTP требует одноразового capability, session cookie, CSRF и точных Host/Origin. Referrer-Policy strict-origin сохраняет проверяемый Origin у браузерных форм и не раскрывает путь одноразового входа.

Ограничения и последствия ​

  • Это профиль приватного доступа администратора. Постоянная LAN/HTTPS-публикация, DNS/firewall/NAT, remote Compose и двухузловая репликация — отдельные реализации; GUI не изображает их работающими.
  • Существующая установка подключается без повторной установки или изменения владельца. Сбой после запуска пакета может требовать ручного восстановления; нет автоматического retry разрушительных шагов.
  • Браузерный сеанс не заменяет supervisor сервера. Службы работают независимо; туннель зависит от процесса на машине администратора.
  • Криптографическая подпись издателя и приёмка реального OpenSSH остаются требованиями выпуска. SHA-256 manifest по доверенному HTTPS подтверждает комплект, но не заменяет подпись издателя.
  • Новые тесты входят в unit/browser/deployment/native-install через существующие verify/release и CI. Установка на рабочей машине разработчика запрещена; реальные службы проверяются только на одноразовых runner’ах.

Эксплуатация и ограничения: REMOTE_DEPLOYMENT.

Arkvory · ProAnimaStudio