Files
HY2XS_flamy/hy2xs_implementation_plan-no_git/05-orchestrator-install-flow.txt
T

88 lines
2.9 KiB
Plaintext

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
- --domain
- --port
- --ssh-port
- --skip-firewall
- --skip-start
- --ui-port
- --ui-bind-host
Что не реализовывать
- update subcommands
- rollback subcommands
- uninstall subcommands
- reconcile logic
- bot/access-delivery subcommands