Пасхалка только в конце установки, название 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
+1 -1
View File
@@ -1,6 +1,6 @@
<div align="center">
<img alt="3X-UI + Hysteria2 Kit" src="manuals/assets/banner.svg" width="820">
<img alt="3X-UI KIT" src="manuals/assets/banner.svg" width="820">
**Пошаговые инструкции: свой VPN-сервер за 15 минут и прокси на роутере Keenetic**
+1 -1
View File
@@ -1,5 +1,5 @@
<!DOCTYPE html>
<html lang="ru"><head><meta charset="utf-8"><title>3X-UI + Hysteria2 Kit</title>
<html lang="ru"><head><meta charset="utf-8"><title>3X-UI KIT</title>
<meta http-equiv="refresh" content="0; url=https://github.com/itsnotkubrick/Reality_Hysteria2">
<link rel="canonical" href="https://github.com/itsnotkubrick/Reality_Hysteria2"></head>
<body><a href="https://github.com/itsnotkubrick/Reality_Hysteria2">Инструкции — на GitHub</a></body></html>
File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

+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
+1 -19
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
# kit — пользователи 3X-UI + Hysteria2 Kit: один пользователь сразу на всех протоколах.
# kit — пользователи 3X-UI KIT: один пользователь сразу на всех протоколах.
# https://github.com/itsnotkubrick/Reality_Hysteria2
#
# kit user add имя [--gb 50] [--days 30] [--devices 3]
@@ -212,22 +212,6 @@ cmd_del() {
say "Пользователь $name удалён, его подписка больше не работает."
}
cmd_about() {
# Пасхалка: kit itsnotkubrick
cat <<'ART'
_ _ _ _ _ _ _
(_) |_ ___ _ __ ___ | |_| | ___ _| |__ _ __(_) ___| | __
| | __/ __| '_ \ / _ \| __| |/ / | | | '_ \| '__| |/ __| |/ /
| | |_\__ \ | | | (_) | |_| <| |_| | |_) | | | | (__| <
|_|\__|___/_| |_|\___/ \__|_|\_\\__,_|_.__/|_| |_|\___|_|\_\
ART
echo
echo " ${B}3X-UI + Hysteria2 Kit${N} — сделал ${B}itsnotkubrick${N}"
echo " на основе панели 3X-UI (MHSanaei/3x-ui) и ядра Xray (XTLS)"
echo
echo " ${D}https://github.com/itsnotkubrick/Reality_Hysteria2${N}"
echo " ${D}it's not Kubrick. it's just a VPN.${N}"
}
usage() {
cat <<EOF
@@ -239,7 +223,6 @@ ${B}kit${N} — пользователи: один пользователь ср
kit user limit имя [--gb N] [--days N] [--devices N] изменить лимиты (0 — без ограничений)
kit user off имя / kit user on имя выключить и включить
kit user del имя удалить
kit about об авторе
EOF
}
@@ -251,6 +234,5 @@ case "${1:-} ${2:-}" in
"user off") cmd_toggle "${3:-}" false ;;
"user on") cmd_toggle "${3:-}" true ;;
"user del") shift 2; cmd_del "$@" ;;
"about "*|"itsnotkubrick "*|"--version "*) cmd_about ;;
*) usage ;;
esac