1.1: подписанное автообновление, kit backup и --restore, случайная заглушка

- kit update ставит только релизы, у которых SHA256SUMS подписан ключом автора
  (ssh-keygen -Y verify), версия внутри подписи совпадает, файлы сошлись с хешами;
  откат на старую версию запрещён; после обновления проверяется подписка, иначе возврат
- автообновление: systemd-таймер раз в сутки ночью со случайной задержкой,
  kit update --manual / --auto, журнал /var/log/kit-update.log
- hy2 update тоже проверяет подпись
- tools/release.sh: проверка версий и хеша установщика 3X-UI, SHA256SUMS и подпись
- kit backup и 3x-ui.sh --restore: архив 600, строгая проверка архива, конфиги nginx
  и kit-sub собираются заново, смена IP в подключениях
- сайт-заглушка: случайный из шести шаблонов внутри скрипта
- zashboard закреплён на v3.29.1, короткие тире и 192.168.x.x в текстах и картинках
- CI: ключ подписи одинаковый в kit и hy2, проверка подписи релиза
- CHANGELOG, README, инструкция, SECURITY.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7GrBSRPVXhrz3RAprWDnt
This commit is contained in:
Claude
2026-09-30 19:15:19 +00:00
parent d33a8bd9a6
commit 0a19858efa
30 changed files with 944 additions and 323 deletions
+30 -7
View File
@@ -24,6 +24,8 @@
- **Меню x-ui оставили в покое.** Больше не переписываем чужие файлы по расписанию, только
один раз при установке.
- **Строгие имена.** Параметры `--sni` и `--host` у установщика 3X-UI тоже проверяются.
- **Веб-панель Mihomo на роутере закреплена.** Генератор больше не ставит на роутер «последнюю»
версию zashboard, а только ту, которую мы видели в лицо (v3.29.1).
**Для тех, кто хочет проверить сам**
@@ -31,20 +33,41 @@
- `SECURITY.md`: как сообщить об уязвимости, не публикуя её на весь интернет.
- Проверка кода на каждый коммит: ShellCheck, Python, тесты генераторов.
**Новая команда: `kit update`**
**Обновления приходят сами, но только с нашей печатью**
- Обновляет kit и подписку до новой версии, а пользователи, ссылки и подписки остаются прежними.
Раньше, чтобы получить исправление, приходилось сносить всё и раздавать ссылки заново.
- Раньше, чтобы получить исправление, приходилось сносить всё и раздавать ссылки заново.
«Мам, удали старый VPN, вот новый» больше не повторится.
- Если новая подписка вдруг не запустится, `kit update` молча вернёт старую. Ну, не молча,
предупредит.
- Раз в сутки ночью сервер сам проверяет, не вышла ли новая версия, и обновляет kit и подписку.
Пользователи, ссылки и подписки остаются прежними. Панель 3X-UI и Xray не трогаем.
- Каждый релиз подписан ключом автора, а открытая часть ключа уже лежит на вашем сервере.
Подпись не сошлась? Сервер вежливо отказывается. Даже если взломают GitHub, чужое обновление
не встанет: для этого нужен ещё и ключ, а он не в облаке, а у автора.
- Откатить сервер на старую версию под видом новой тоже не выйдет: номер версии внутри подписи.
- После обновления сервер проверяет, что подписка отвечает. Не отвечает – возвращает прежнюю
и пишет об этом в журнал `/var/log/kit-update.log`.
- Не любите сюрпризы? `kit update --manual`, и обновляться будете сами, командой `kit update`.
**Переезд без боли: `kit backup`**
- `kit backup` складывает в один файл всё, что нужно серверу: подключения, ключи, пользователей,
настройки подписки. `--restore` поднимает из него тот же сервер на новом VPS.
- Хостер поднял цены или IP попал в немилость? Переезжаете за 5 минут, а на домене клиенты
вообще ничего не заметят.
- Копия восстанавливается только из вашего файла и сначала проходит досмотр: лишние файлы
и хитрые пути внутри архива, и восстановление не начнётся.
**Заглушка с характером**
- На случайный заход сервер теперь показывает один из шести сайтов: кофейню, фотографа, блог
про Linux и других. Выбирается при установке, так что тысячи серверов 3X-UI KIT больше
не выглядят как близнецы. Всё лежит внутри скрипта, ничего не качаем со сторонних сайтов.
**Как обновиться**
- Сервер 3X-UI KIT из версии 1.0 (там ещё нет `kit update`), один раз:
`curl -fsSL https://raw.githubusercontent.com/itsnotkubrick/3X-UI_KIT/v1.1/scripts/kit.sh -o /usr/local/bin/kit && chmod 755 /usr/local/bin/kit && kit update`
- Дальше хватит `kit update`, он сам подскажет, когда выйдет новая версия.
- Hysteria2: `hy2 update`.
- Дальше обновления будут приходить сами.
- Hysteria2: `hy2 update` (тоже проверяет подпись).
- Новые установки получают всё сразу.
## v1.0