mirror of
https://github.com/anten-ka/gotelegram_pro.git
synced 2026-05-20 08:16:04 +00:00
v2.4.8: preflight port-conflict check
Добавлена предустановочная проверка свободы портов перед установкой
telemt. На вход приходит режим (lite/pro) и выбранный порт, проверяются
443 (lite: выбранный), 80 и 8443 (pro). Известный proxy/VPN/веб-софт
(xray, sing-box, v2ray, trojan, hysteria, mtg, shadowsocks, x-ui,
marzban, amneziawg, caddy, apache, haproxy, wireguard, openvpn)
распознаётся по имени процесса и показывается отдельным блоком.
При конфликте пользователь видит список занятых портов, получает
рекомендацию удалить конфликтующий софт или взять чистый VPS, и
может либо форсировать установку, либо отказаться — тогда показывается
15-секундный промо-блок с QR для донатов и возврат в меню.
Override для автоматизированных сценариев: GOTELEGRAM_SKIP_PREFLIGHT=1.
Files:
lib/common.sh — get_port_process, match_known_conflict, preflight_check
lib/lang/ru.sh — preflight_* i18n keys (ru)
lib/lang/en.sh — preflight_* i18n keys (en)
install.sh — preflight_check вызов в install_lite_mode / install_pro_mode;
show_promo_with_qr теперь принимает countdown arg
gotelegram-bot/bot.py — version bump 2.4.7 → 2.4.8
This commit is contained in:
18
install.sh
Executable file → Normal file
18
install.sh
Executable file → Normal file
@@ -295,6 +295,12 @@ install_lite_mode() {
|
||||
port=$(select_port)
|
||||
[ $? -ne 0 ] && return
|
||||
|
||||
# Preflight: port conflict check (checks the external port only for lite)
|
||||
if ! preflight_check "lite" "$port"; then
|
||||
show_promo_with_qr 15
|
||||
return
|
||||
fi
|
||||
|
||||
# Generate secret
|
||||
local secret
|
||||
secret=$(generate_hex 32)
|
||||
@@ -342,6 +348,12 @@ install_lite_mode() {
|
||||
install_pro_mode() {
|
||||
log_step "$(t install_pro_step)"
|
||||
|
||||
# Preflight: pro mode needs 443, 80 and 8443 (internal nginx mask)
|
||||
if ! preflight_check "pro"; then
|
||||
show_promo_with_qr 15
|
||||
return
|
||||
fi
|
||||
|
||||
# Enter domain
|
||||
echo ""
|
||||
echo -ne " ${WHITE}$(t install_enter_domain)${NC} "
|
||||
@@ -1142,6 +1154,7 @@ mark_promo_shown() {
|
||||
# текстовые ссылки и промокоды (см. _promo_block) — QR-коды хостеров
|
||||
# визуально конкурировали с чаевыми и перегружали экран.
|
||||
show_promo_with_qr() {
|
||||
local countdown="${1:-5}"
|
||||
_promo_block
|
||||
|
||||
# QR только для чаевых
|
||||
@@ -1154,8 +1167,9 @@ show_promo_with_qr() {
|
||||
|
||||
mark_promo_shown
|
||||
|
||||
# 5-second countdown
|
||||
for i in 5 4 3 2 1; do
|
||||
# Countdown (default 5s, caller may pass longer for preflight abort)
|
||||
local i
|
||||
for ((i=countdown; i>0; i--)); do
|
||||
echo -ne "\r ${DIM}$(tf promo_menu_in "$i")${NC} "
|
||||
sleep 1
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user