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:
anten-ka
2026-04-11 23:48:53 +03:00
parent 8f249c35e5
commit 9d9d12e150
5 changed files with 207 additions and 4 deletions

14
lib/lang/ru.sh Executable file → Normal file
View File

@@ -347,6 +347,20 @@ I18N[backup_pass_short]="Пароль слишком короткий (мини
I18N[backup_pick_prompt]="Номер бекапа (или путь к файлу)"
I18N[backup_not_found]="Бекап не найден"
# ── Preflight (v2.4.8) ──────────────────────────────────────────────────
I18N[preflight_title]="Предустановочная проверка: обнаружены конфликты портов"
I18N[preflight_known]="Известный proxy/VPN/веб-софт занимает нужные порты:"
I18N[preflight_unknown]="Порты заняты неизвестными процессами:"
I18N[preflight_needed]="GoTelegram нужны порты:"
I18N[preflight_hint_header]="Рекомендации:"
I18N[preflight_hint1]="Остановите и удалите конфликтующие сервисы (systemctl stop ...)"
I18N[preflight_hint2]="Либо возьмите чистый VPS без других прокси"
I18N[preflight_hint3]="Установка поверх, скорее всего, завершится некорректно"
I18N[preflight_skip_hint]="Обойти проверку: GOTELEGRAM_SKIP_PREFLIGHT=1 gotelegram"
I18N[preflight_proceed]="Продолжить установку всё равно (скорее всего не заработает)?"
I18N[preflight_forced]="Установка продолжена вопреки конфликтам — возможны ошибки"
I18N[preflight_aborted]="Установка отменена из-за конфликтов портов"
# ── Errors / misc ───────────────────────────────────────────────────────
I18N[err_need_root]="Запустите скрипт с sudo / от root"
I18N[err_os_unknown]="Не удалось определить ОС. Требуется Linux."