Files
gotelegram_pro/IMPROVEMENTS.md
anten-ka 29b6e05866 GoTelegram MTProxy + bot (gotelegram_pro)
Made-with: Cursor
2026-03-06 14:59:00 +03:00

100 lines
6.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Предложения по улучшению GoTelegram MTProxy
## Анализ текущего скрипта
Скрипт уже хорошо структурирован: проверка root, установка зависимостей, меню, работа с Docker (nineseconds/mtg). Ниже — конкретные улучшения.
---
## 1. Безопасность и надёжность
### 1.1 Валидация порта
- **Сейчас:** при выборе "свой порт" можно ввести нечисло или порт вне диапазона.
- **Предложение:** проверять число в диапазоне 165535 и повторять запрос при ошибке.
```bash
while true; do
read -p "Введите порт (1-65535): " PORT
[[ "$PORT" =~ ^[0-9]+$ ]] && (( PORT >= 1 && PORT <= 65535 )) && break
echo "Неверный порт."
done
```
### 1.2 Проверка занятости порта
- Перед запуском контейнера проверять, что порт свободен (например, `ss -tlnp | grep -q ":$PORT "`), и выводить понятное сообщение, если порт занят.
### 1.3 Остановка только своего контейнера
- В пункте 4 (удаление) использовать `docker stop mtproto-proxy 2>/dev/null; docker rm mtproto-proxy 2>/dev/null` и проверять код возврата, чтобы не путать с отсутствием контейнера.
---
## 2. Функциональность
### 2.1 Свой домен для Fake TLS
- В списке доменов добавить пункт "Свой домен" с вводом произвольной строки и базовой проверкой (например, наличие точки, длина).
### 2.2 Рестарт прокси
- Отдельный пункт меню "Перезапустить прокси" без пересоздания контейнера: `docker restart mtproto-proxy`.
### 2.3 Логи
- Пункт "Показать логи" (последние N строк): `docker logs --tail 50 mtproto-proxy`.
### 2.4 Обновление образа mtg
- Пункт "Обновить образ mtg": `docker pull nineseconds/mtg:2`, затем предложить пересоздать прокси с теми же параметрами (сохранить secret/порт из текущего контейнера).
### 2.5 Сохранение конфигурации
- Сохранять выбранные домен и порт в файл (например, `/etc/gotelegram.conf` или `~/.gotelegram`), чтобы при обновлении/переустановке не вводить заново.
---
## 3. Удобство и совместимость
### 3.1 Поддержка RHEL/CentOS
- В `install_deps` для установки `qrencode` использовать `command -v apt-get` / `command -v yum` или `dnf`, а не только `apt-get` и `yum`, чтобы корректно работало на RHEL 8+.
### 3.2 Неинтерактивный режим
- Поддержка аргументов для автоматической установки, например:
`./setup_gotelegram.sh --domain wikipedia.org --port 443 --no-promo`
- Полезно для скриптов развёртывания и для бота.
### 3.3 Отключение промо
- Переменная окружения или флаг, например `SKIP_PROMO=1` или `--no-promo`, чтобы при первом запуске не показывать промо (для автоматизации и бота).
---
## 4. Вывод и интерфейс
### 4.1 Текстовый вывод ссылки для копирования
- В `show_config` выводить ссылку в одну строку без переносов, чтобы удобно копировать из терминала и отправлять в бота/чат.
### 4.2 Сообщение при отсутствии прокси
- В пункте 2 при отсутствии контейнера не только "Прокси не найден!", но и подсказка: "Выберите пункт 1 для установки."
### 4.3 Версия скрипта
- В начале или в меню выводить версию (например, из переменной `VERSION="1.0"`), чтобы при обновлениях было проще отлаживать.
---
## 5. Мелкие правки
### 5.1 Заголовок промо
- В рамке промо текст "ХОСТИНГ СО СКИДКОЙ..." разной длины — выровнять по ширине рамки или центрировать, чтобы рамка не "прыгала".
### 5.2 Имя контейнера
- Сейчас жёстко `mtproto-proxy`. Имеет смысл вынести в переменную в начале скрипта (например, `CONTAINER_NAME="mtproto-proxy"`), чтобы при необходимости можно было менять в одном месте.
### 5.3 Таймауты curl
- В `get_ip` уже есть `--max-time 5`. Можно добавить резервный источник (например, `ifconfig.me` или `ipecho.net/plain`) на случай недоступности основных.
---
## Приоритеты внедрения
| Приоритет | Улучшение |
|-----------|-----------|
| Высокий | Валидация порта, проверка занятости порта, неинтерактивный режим / отключение промо |
| Средний | Свой домен, рестарт, логи, сохранение конфигурации |
| Низкий | Версия скрипта, выравнивание промо, дополнительные источники IP |
Эти изменения улучшат устойчивость скрипта в автоматизации и при использовании через Telegram-бота.