Пасхалка только в конце установки, название 3X-UI KIT

This commit is contained in:
itsnotkubrick
2026-09-27 19:43:08 +03:00
parent 8aa5812acf
commit d9ed8981f1
5 changed files with 31 additions and 32 deletions
+27 -10
View File
@@ -9,8 +9,6 @@
# AmneziaWG (классика и 3.1) и MTProto (и WireGuard по запросу), включает единую подписку
# с форматом под каждый клиент и настраивает ufw. Домены не нужны.
# Каждый протокол проверен настоящими клиентами — см. tests/matrix.
#
# Автор — itsnotkubrick. Панель — 3X-UI (MHSanaei/3x-ui), ядро — Xray (XTLS).
set -Eeuo pipefail
@@ -98,6 +96,26 @@ wait_panel() {
# ---------- установка ----------
# Пасхалка — только в конце установки.
kit_banner() {
echo
printf '%s' "$G"
cat <<'ART'
_ _ _ _ _ _ _
(_) |_ ___ _ __ ___ | |_| | ___ _| |__ _ __(_) ___| | __
| | __/ __| '_ \ / _ \| __| |/ / | | | '_ \| '__| |/ __| |/ /
| | |_\__ \ | | | (_) | |_| <| |_| | |_) | | | | (__| <
|_|\__|___/_| |_|\___/ \__|_|\_\\__,_|_.__/|_| |_|\___|_|\_\
ART
printf '%s' "$N"
echo
echo "${B}3X-UI KIT${N} на основе панели 3X-UI (MHSanaei/3x-ui), ядра Xray и mihomo"
echo
echo " https://github.com/itsnotkubrick/Reality_Hysteria2"
echo " ${D}it's not Kubrick. it's just a VPN.${N}"
echo
echo "Ниже — данные для входа в панель и подключения."
}
main() {
[[ $EUID -eq 0 ]] || die "Запустите от root: sudo -i, затем команду ещё раз."
command -v systemctl >/dev/null || die "Нужен systemd."
@@ -313,7 +331,7 @@ main() {
[[ $SINGLE == yes ]] && links=$(sed "s/^\(tg:\/\/proxy?\)\(.*\)port=${INNER[mtproto]}/\1\2port=443/" <<<"$links")
umask 077
{
echo "3X-UI $XUI_VERSION + Kit by itsnotkubrick — данные для входа (файл виден только root)"
echo "3X-UI KIT (3X-UI $XUI_VERSION) — данные для входа (файл виден только root)"
echo
echo "Панель: $panel_url"
echo "Логин: $XUI_USERNAME"
@@ -324,6 +342,7 @@ main() {
echo "$links"
} >"$RESULT"
kit_banner
echo
echo "${G}${B}Готово! 3X-UI работает: ${#CREATED[@]} протоколов.${N}"
echo "${D}${CREATED[*]}${N}"
@@ -357,8 +376,6 @@ main() {
echo "Друзья — одной командой, сразу во все протоколы, со своей подпиской:"
echo " ${B}kit user add sasha --gb 50 --days 30${N}"
echo " ${B}kit user list${N} — кто сколько израсходовал и до какого числа"
echo
echo "${D}3X-UI + Hysteria2 Kit — сделал itsnotkubrick на основе 3X-UI. Попробуйте: kit itsnotkubrick${N}"
}
# ---------- сертификат ----------
@@ -757,7 +774,7 @@ HTML
local panel_path=/${XUI_WEB_BASE_PATH#/}
panel_path=${panel_path%/}/
{
echo "# Сгенерировано 3x-ui.sh (3X-UI + Hysteria2 Kit) — перезаписывается при повторном запуске."
echo "# Сгенерировано 3x-ui.sh (3X-UI KIT) — перезаписывается при повторном запуске."
echo "stream {"
echo " map \$ssl_preread_server_name \$kit_upstream {"
[[ -n $reality_sni ]] && echo " $reality_sni 127.0.0.1:${INNER[reality]};"
@@ -777,7 +794,7 @@ HTML
echo "}"
} >/etc/nginx/kit-stream.conf
cat >/etc/nginx/conf.d/kit.conf <<NGX
# Сгенерировано 3x-ui.sh (3X-UI + Hysteria2 Kit) — перезаписывается при повторном запуске.
# Сгенерировано 3x-ui.sh (3X-UI KIT) — перезаписывается при повторном запуске.
server {
listen 127.0.0.1:${INNER[web]} ssl http2 proxy_protocol;
server_name _;
@@ -834,13 +851,13 @@ setup_subscription() {
if [[ $TRUSTED == yes ]]; then
# Наружу смотрит kit-sub (подписка с учётом приложения), 3X-UI — только на 127.0.0.1.
SUB_PORT=2096; SUB_INTERNAL=2097
upd=$(jq -c --arg path "$SUB_PATH" --argjson ip "$SUB_INTERNAL" --arg title "Kit by itsnotkubrick" '
upd=$(jq -c --arg path "$SUB_PATH" --argjson ip "$SUB_INTERNAL" --arg title "3X-UI KIT" '
.subEnable = true | .subPath = $path | .subTitle = $title | .subListen = "127.0.0.1" | .subPort = $ip
| .subCertFile = "" | .subKeyFile = ""
| .subClashEnable = true | .subClashAutoDetect = true | .subJsonEnable = true | .subJsonAutoDetect = true' <<<"$all")
else
SUB_PORT=$(jq -r '.subPort // 2096' <<<"$all")
upd=$(jq -c --arg path "$SUB_PATH" --arg title "Kit by itsnotkubrick" '
upd=$(jq -c --arg path "$SUB_PATH" --arg title "3X-UI KIT" '
.subEnable = true | .subPath = $path | .subTitle = $title
| .subClashEnable = true | .subClashAutoDetect = true | .subJsonEnable = true | .subJsonAutoDetect = true' <<<"$all")
fi
@@ -881,7 +898,7 @@ install_kit_sub() {
chmod 600 /etc/kit-sub/config.json
cat >/etc/systemd/system/kit-sub.service <<'UNIT'
[Unit]
Description=kit-sub: подписка с учётом приложения (3X-UI + Hysteria2 Kit)
Description=kit-sub: подписка с учётом приложения (3X-UI KIT)
After=network-online.target x-ui.service
Wants=network-online.target