HY2XS: orchestrator install flow

Главная роль
Install-only orchestrator ставит систему на чистый Debian 12 и больше ничего не обещает.

Технологическая фиксация
- Исходники оркестратора: Bun + TypeScript.
- Сборка оркестратора: локально, builder layer'ом.
- Исполнение на target: готовый install-артефакт через thin wrapper.

Рекомендуемый порядок модулей
1. preflight
- проверить Debian 12
- проверить root/sudo context
- проверить, что порт свободен
- проверить, что не существует конфликтующей старой установки

2. deps
- установить системные зависимости
- проверить наличие systemd, nft, curl/wget, tar, openssl и прочего необходимого минимума

3. filesystem
- создать системного пользователя hysteria
- создать каталоги:
  /etc/hysteria
  /var/lib/hysteria
  /opt/hy2xs-admin
  /var/lib/hy2xs-admin
  /var/log/hy2xs
  /usr/local/lib/hy2xs

4. bundled UI deploy
- разложить HY2XS admin из пакета
- назначить владельца и права

5. Hysteria install
- скачать свежую Hysteria2 из official upstream
- установить бинарь в согласованный путь
- зафиксировать фактическую версию

6. config generation
- сгенерировать /etc/hysteria/config.yaml
- сгенерировать параметры obfs
- записать домен, порт, bandwidth policy

7. systemd
- разложить hysteria-server.service
- разложить hy2xs-admin.service
- daemon-reload
- enable services

8. firewall
- применить baseline nftables
- не терять SSH

9. post-install.env
- создать /etc/hysteria/post-install.env
- записать package version, build id, orchestrator stack/build, Hysteria version, UI build info, порты и пути

10. start and smoke
- стартовать сервисы
- проверить systemctl is-active
- проверить UDP listen
- проверить доступность UI

Политика ошибок
- Любой конфликт неизвестного старого состояния = stop with error.
- Никакой сложной автомиграции.
- Ошибки должны быть текстовыми и пригодными для диагностики.

CLI baseline
Допустимые флаги:
- --non-interactive
- --port
- --ssh-port
- --skip-firewall
- --skip-start
- --ui-port
- --ui-bind-host

Что не реализовывать
- update subcommands
- rollback subcommands
- uninstall subcommands
- reconcile logic
- bot/access-delivery subcommands
