diff --git a/FORK.md b/FORK.md index 284fce9..6062e5f 100644 --- a/FORK.md +++ b/FORK.md @@ -45,7 +45,7 @@ git push origin dev v$(cat VERSION) upstream ```bash # установка на чистый сервер (вместо команды автора с GitHub) -bash <(curl -fsSL https://git.rukavishnikoff.ru/hacker07/3X-UI_KIT/raw/branch/main/scripts/3x-ui.sh) +bash <(curl -fsSL https://git.rukavishnikoff.ru/hacker07/3X-UI_autoVPS/raw/branch/main/scripts/3x-ui.sh) # обновление уже стоящего сервера (тянет наш релиз и проверяет нашу подпись) kit update --force && kit check diff --git a/VERSION b/VERSION index 5625e59..6085e94 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.2 +1.2.1 diff --git a/scripts/3x-ui.sh b/scripts/3x-ui.sh index 67ca7c3..ae1a663 100755 --- a/scripts/3x-ui.sh +++ b/scripts/3x-ui.sh @@ -30,9 +30,9 @@ wait_apt_idle() { XUI_VERSION="v3.9.0" # SHA256 установщика 3X-UI этой версии: тег могут передвинуть, а хеш – нет (проверено 2026-09-30). XUI_INSTALL_SHA256="18616fe26c8f6c92db6daa2dcd7cd53c5143ee69ecfd26d8ea6dc9b2c78607a6" -KIT_VERSION="1.2" +KIT_VERSION="1.2.1" # kit и kit-sub берём из того же релиза, что и этот скрипт, а не из меняющейся ветки main. -KIT_RAW="https://raw.githubusercontent.com/itsnotkubrick/3X-UI_KIT/v$KIT_VERSION" +KIT_RAW="https://git.rukavishnikoff.ru/hacker07/3X-UI_autoVPS/raw/tag/v$KIT_VERSION" # Ядро Xray для панели. С 26.7.x клиенты на Mihomo и sing-box (Hiddify, FlClash, # Clash Verge, Mihomo в XKeen) не проходят REALITY – проверено 2026-09-25. # 26.6.27 – последняя версия, с которой работают все клиенты и которую принимает 3X-UI. @@ -1270,6 +1270,7 @@ awg_attach() { # имя subId [лимит-байт] [срок-мс] [устро } KIT_CLI_URL="$KIT_RAW/scripts/kit.sh" +KIT_LOCAL_URL="$KIT_RAW/scripts/kit-local.sh" install_kit_cli() { install -d -m 700 /etc/kit @@ -1293,10 +1294,18 @@ install_kit_file() { [[ -f $d/kit.sh && ${BASH_SOURCE[0]} != /dev/fd/* ]] && src=$d/kit.sh if [[ -n $src ]]; then install -m 755 "$src" /usr/local/bin/kit else curl -fsSL --retry 3 -o /usr/local/bin/kit "$KIT_CLI_URL" && chmod 755 /usr/local/bin/kit; fi + # Форк: ставим наши локальные дополнения (см. scripts/kit-local.sh). + install -d -m 755 /usr/local/lib/kit + if [[ -n $src && -f $d/kit-local.sh ]]; then + install -m 644 "$d/kit-local.sh" /usr/local/lib/kit/kit-local.sh + else + curl -fsSL --retry 3 -o /usr/local/lib/kit/kit-local.sh "$KIT_LOCAL_URL" \ + || warn "Локальные дополнения kit не скачались: kit local не будет работать" + fi bash -n /usr/local/bin/kit || die "Команда kit скачалась повреждённой" } -KIT_INSTALL_CMD="bash <(curl -fsSL https://raw.githubusercontent.com/itsnotkubrick/3X-UI_KIT/main/scripts/3x-ui.sh)" +KIT_INSTALL_CMD="bash <(curl -fsSL https://git.rukavishnikoff.ru/hacker07/3X-UI_autoVPS/raw/branch/main/scripts/3x-ui.sh)" # После «x-ui → Uninstall» меню подсказывает команду официального установщика – # меняем её на нашу. Только в echo: вызов установщика в «Update» не трогаем. diff --git a/scripts/hysteria2.sh b/scripts/hysteria2.sh index e870f81..cbe03f3 100755 --- a/scripts/hysteria2.sh +++ b/scripts/hysteria2.sh @@ -8,7 +8,7 @@ # Код выхода 1 при любом запуске (и при `__update_binary`) – старый `hy2 update` на нём # останавливается и не заменяет команду hy2. -KIT_VERSION="1.2" +KIT_VERSION="1.2.1" cat >&2 <<'MSG' Отдельный установщик Hysteria2 больше не поддерживается. diff --git a/scripts/kit.sh b/scripts/kit.sh index 6326064..8a0a424 100644 --- a/scripts/kit.sh +++ b/scripts/kit.sh @@ -12,10 +12,17 @@ set -Eeuo pipefail export LC_ALL=C.UTF-8 # ширина колонок по символам, а не байтам -KIT_VERSION="1.2" -KIT_RAW="https://raw.githubusercontent.com/itsnotkubrick/3X-UI_KIT/main" +KIT_VERSION="1.2.1" +KIT_RAW="https://git.rukavishnikoff.ru/hacker07/3X-UI_autoVPS/raw/branch/main" # Файлы новой версии берём из её тега, а не из меняющейся ветки main. -kit_ref_raw() { echo "https://raw.githubusercontent.com/itsnotkubrick/3X-UI_KIT/v$1"; } +kit_ref_raw() { echo "https://git.rukavishnikoff.ru/hacker07/3X-UI_autoVPS/raw/tag/v$1"; } + +# --- 3X-UI_KIT (форк hacker07): локальные команды и хуки --- +# Подключаем scripts/kit-local.sh, если он установлен. Наш файл: правки автора его не касаются. +# Все команды форка — под «kit local …» (см. kit local help). +KIT_LOCAL_LIB="${KIT_LOCAL_LIB:-/usr/local/lib/kit/kit-local.sh}" +if [[ -r $KIT_LOCAL_LIB ]]; then . "$KIT_LOCAL_LIB"; kit_local_dispatch "$@"; fi + XUI_ENV=/etc/x-ui/install-result.env KIT_ENV=/etc/kit/kit.env @@ -454,8 +461,8 @@ cmd_del() { # есть только у автора, поэтому подменить обновление, взломав один GitHub, не выйдет. # Новый ключ приходит только в релизе, подписанном старым. KIT_SIGNERS=( - # SHA256:VDuGgJ8dOeCNXB4nBZf3+kRlWthw3+vh8rfMxzMSRIM (itsnotkubrick, 2026-09-30) - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGrTGCDhhnm8XO1ekpPJuSWRVCJiFiupEspfQxcbEBmz 3X-UI KIT releases" + # Ключ подписи форка (владелец: hacker07). Закрытая часть — только на рабочей станции. + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKM0Sfn/UQeqjvUvY9wVgg7QtG1RR2pEUkqrUD5Yy6EF 3X-UI KIT fork releases (hacker07)" ) KIT_SIG_NS="3x-ui-kit-release" KIT_SIG_ID="releases@3x-ui-kit" @@ -519,7 +526,7 @@ fetch_release() { # версия каталог fi # Версия записана внутри подписанного файла: старый подписанный релиз под видом нового не пройдёт. grep -qx "# 3X-UI KIT $v" "$d/SHA256SUMS" || { warn "Подписанный релиз не той версии – ничего не ставлю."; return 1; } - for f in scripts/kit.sh scripts/kit-sub.py; do + for f in scripts/kit.sh scripts/kit-sub.py scripts/kit-local.sh; do sum=$(awk -v f="$f" '$2 == f {print $1}' "$d/SHA256SUMS") [[ $sum =~ ^[0-9a-f]{64}$ ]] || { warn "В подписанном списке нет $f."; return 1; } curl -fsSL --retry 3 -o "$d/${f##*/}" "$raw/$f" || { warn "Не удалось скачать $f."; return 1; } @@ -715,6 +722,9 @@ cmd_update() { # Через rename: bash дочитывает текущий kit по ходу работы, его файл трогать нельзя. install -m 755 "$tmp/kit.sh" /usr/local/bin/kit.new && mv -f /usr/local/bin/kit.new /usr/local/bin/kit + # Форк: ставим наши локальные дополнения из того же подписанного релиза. + install -d -m 755 /usr/local/lib/kit + install -m 644 "$tmp/kit-local.sh" /usr/local/lib/kit/kit-local.sh # Новые пути подписки (Clash и JSON) подключает уже новая версия kit. /usr/local/bin/kit __subextra >/dev/null 2>&1 || warn "Дополнительные пути подписки не подключились: kit update --force" echo diff --git a/tools/fork-signer.pub b/tools/fork-signer.pub new file mode 100644 index 0000000..3e61d10 --- /dev/null +++ b/tools/fork-signer.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKM0Sfn/UQeqjvUvY9wVgg7QtG1RR2pEUkqrUD5Yy6EF 3X-UI KIT fork releases (hacker07) diff --git a/tools/fork_apply.py b/tools/fork_apply.py index 84f5f18..350bf84 100644 --- a/tools/fork_apply.py +++ b/tools/fork_apply.py @@ -22,7 +22,7 @@ import pathlib import re import sys -GITEA = os.environ.get("FORK_GITEA_BASE", "https://git.rukavishnikoff.ru/hacker07/3X-UI_KIT") +GITEA = os.environ.get("FORK_GITEA_BASE", "https://git.rukavishnikoff.ru/hacker07/3X-UI_autoVPS") SIGNER_FILE = os.environ.get("FORK_SIGNER_PUB", "tools/fork-signer.pub") HOOK = """ diff --git a/tools/release.sh b/tools/release.sh index 62c5c02..96a614b 100755 --- a/tools/release.sh +++ b/tools/release.sh @@ -19,7 +19,7 @@ key=${1:-$HOME/.ssh/3xui_kit_release} [[ -f $key ]] || die "Нет закрытого ключа $key. Создать: ssh-keygen -t ed25519 -C \"3X-UI KIT releases\" -f $key" NS="3x-ui-kit-release" ID="releases@3x-ui-kit" -FILES=(scripts/3x-ui.sh scripts/hysteria2.sh scripts/kit.sh scripts/kit-sub.py VERSION) +FILES=(scripts/3x-ui.sh scripts/hysteria2.sh scripts/kit.sh scripts/kit-sub.py scripts/kit-local.sh VERSION) v=$(tr -d '[:space:]'