mirror of
https://github.com/anten-ka/gotelegram_pro.git
synced 2026-05-20 03:16:17 +00:00
GoTelegram MTProxy + bot (gotelegram_pro)
Made-with: Cursor
This commit is contained in:
99
IMPROVEMENTS.md
Normal file
99
IMPROVEMENTS.md
Normal file
@@ -0,0 +1,99 @@
|
||||
# Предложения по улучшению GoTelegram MTProxy
|
||||
|
||||
## Анализ текущего скрипта
|
||||
|
||||
Скрипт уже хорошо структурирован: проверка root, установка зависимостей, меню, работа с Docker (nineseconds/mtg). Ниже — конкретные улучшения.
|
||||
|
||||
---
|
||||
|
||||
## 1. Безопасность и надёжность
|
||||
|
||||
### 1.1 Валидация порта
|
||||
- **Сейчас:** при выборе "свой порт" можно ввести нечисло или порт вне диапазона.
|
||||
- **Предложение:** проверять число в диапазоне 1–65535 и повторять запрос при ошибке.
|
||||
|
||||
```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-бота.
|
||||
Reference in New Issue
Block a user