Подготовить HY2XS к production-сборке

This commit is contained in:
2026-04-25 23:13:12 +05:00
commit 84a4e94567
277 changed files with 26513 additions and 0 deletions
+66
View File
@@ -0,0 +1,66 @@
# Testing and acceptance
## Цель документа
Зафиксировать checklist для новой двухслойной схемы.
## A. Builder layer tests
### Проверяем
1. builder запускается на Debian 12 amd64 build host
2. итоговый пакет собирается без target-side шагов
3. bundled HY2XS admin реально входит в пакет
4. package metadata / build id присутствуют
5. compiled Bun/TypeScript orchestrator artifact присутствует
6. в пакет не попадает build-мусор
7. builder сам доставляет отсутствующие build-зависимости
8. builder проверяет версии Go/Bun/Node.js/pnpm
9. builder пишет версии toolchain в metadata
## B. Target install tests
### На чистом Debian 12 проверяем
1. пакет запускается без ручной сборки на сервере
2. Hysteria2 скачивается с official upstream
3. bundled HY2XS admin раскладывается локально из пакета
4. создаются нужные каталоги
5. создаются systemd unit-файлы
6. создаётся `post-install.env`
7. baseline firewall применяется корректно
8. SSH остаётся доступным
## C. Runtime tests
1. `hysteria-server` active
2. `hy2xs-admin` active
3. UDP-порт слушается
4. HY2XS admin открывается по ожидаемому admin path
5. тестовый совместимый клиент подключается
6. идёт реальный трафик
7. лимит 50/50 Mbps соблюдается при согласованной клиентской конфигурации
8. reboot не ломает baseline
9. Hysteria2 управляется systemd unit, а не внутренним updater'ом admin panel
## D. Negative tests
1. не Debian 12
2. порт уже занят
3. старое конфликтующее состояние уже существует
4. домен / SNI заданы некорректно
5. bundled UI отсутствует в пакете
6. Hysteria upstream недоступен
7. firewall применился частично
8. install flow прерван посередине
## Acceptance criteria
Система принимается, если:
1. production builder на Debian 12 amd64 выдаёт переносимый install package
2. target server не выполняет build step
3. Hysteria2 получена из official upstream
4. UI поставлен из bundled fork
5. `post-install.env` отражает фактическое deploy-состояние
6. оркестратор зафиксирован как Bun/TypeScript stack и поставляется как готовый install-артефакт
7. оркестратор не требует update / rollback / uninstall логики
8. Telegram/access layer не требуется для прохождения install acceptance