v2.2.1: 11 security fixes (safe_edit_message, IP validation, os-release protection, config_get return codes, spinner stderr, domain check, mode sanitization, var init, XSS escape)

This commit is contained in:
anten-ka
2026-04-06 20:49:31 +03:00
parent bbd6eab48c
commit 4985ec3679
13 changed files with 5212 additions and 2166 deletions

View File

@@ -1,70 +1,70 @@
# GoTelegram MTProxy Bot
Telegram-бот для управления MTProxy на сервере — те же функции, что и у CLI `gotelegram`, но через бота.
## Команды
| Команда | Описание |
|--------|----------|
| `/start`, `/help` | Справка |
| `/install` | Установить или обновить прокси (выбор домена и порта) |
| `/status` | Статус и данные подключения (IP, порт, secret, ссылка) |
| `/link` | Только ссылка `tg://proxy` |
| `/restart` | Перезапустить контейнер |
| `/logs` | Последние логи контейнера |
| `/remove` | Удалить прокси |
| `/promo` | Промо хостинга |
## Установка на сервер
### Публичный репозиторий (одной командой)
```bash
curl -sL https://raw.githubusercontent.com/anten-ka/gotelegram_pro/main/install_gotelegram_bot.sh -o /tmp/install_gotelegram_bot.sh && sudo bash /tmp/install_gotelegram_bot.sh
```
При установке скрипт запросит **BOT_TOKEN** (получить у [@BotFather](https://t.me/BotFather)).
### Закрытый репозиторий (установка по ключу)
Для **приватного** репо используется клонирование по **SSH-ключу** или по **токену (PAT)**. Подробно: **[INSTALL_PRIVATE.md](../INSTALL_PRIVATE.md)** в корне репозитория.
Кратко:
- **По SSH:** скопируйте `bootstrap_install.sh` на сервер, затем
`GIT_REPO_SSH=git@github.com:USER/REPO.git sudo bash bootstrap_install.sh`
- **По токену:**
`GITHUB_TOKEN=ghp_xxx GIT_REPO_HTTPS=https://github.com/USER/REPO.git sudo -E bash bootstrap_install.sh`
- Или клонируйте репо вручную и запустите:
`sudo ./install_gotelegram_bot.sh`
### Локально (файлы уже рядом со скриптом)
```bash
sudo ./install_gotelegram_bot.sh
```
## Конфигурация
Файл: `/opt/gotelegram-bot/.env`
- **BOT_TOKEN** — токен от @BotFather (обязательно).
- **ALLOWED_IDS** — опционально. Список ID пользователей через запятую; если не задан, бот доступен всем.
После изменения `.env` перезапуск сервиса:
```bash
sudo systemctl restart gotelegram-bot
```
## Требования на сервере
- Linux (systemd), Docker, Python 3.
- Перед использованием бота на сервере должен быть установлен Docker (бот сам поднимает контейнер `nineseconds/mtg:2` по команде `/install`).
## Управление сервисом
```bash
sudo systemctl status gotelegram-bot
sudo systemctl restart gotelegram-bot
journalctl -u gotelegram-bot -f
```
# GoTelegram MTProxy Bot
Telegram-бот для управления MTProxy на сервере — те же функции, что и у CLI `gotelegram`, но через бота.
## Команды
| Команда | Описание |
|--------|----------|
| `/start`, `/help` | Справка |
| `/install` | Установить или обновить прокси (выбор домена и порта) |
| `/status` | Статус и данные подключения (IP, порт, secret, ссылка) |
| `/link` | Только ссылка `tg://proxy` |
| `/restart` | Перезапустить контейнер |
| `/logs` | Последние логи контейнера |
| `/remove` | Удалить прокси |
| `/promo` | Промо хостинга |
## Установка на сервер
### Публичный репозиторий (одной командой)
```bash
curl -sL https://raw.githubusercontent.com/anten-ka/gotelegram_pro/main/install_gotelegram_bot.sh -o /tmp/install_gotelegram_bot.sh && sudo bash /tmp/install_gotelegram_bot.sh
```
При установке скрипт запросит **BOT_TOKEN** (получить у [@BotFather](https://t.me/BotFather)).
### Закрытый репозиторий (установка по ключу)
Для **приватного** репо используется клонирование по **SSH-ключу** или по **токену (PAT)**. Подробно: **[INSTALL_PRIVATE.md](../INSTALL_PRIVATE.md)** в корне репозитория.
Кратко:
- **По SSH:** скопируйте `bootstrap_install.sh` на сервер, затем
`GIT_REPO_SSH=git@github.com:USER/REPO.git sudo bash bootstrap_install.sh`
- **По токену:**
`GITHUB_TOKEN=ghp_xxx GIT_REPO_HTTPS=https://github.com/USER/REPO.git sudo -E bash bootstrap_install.sh`
- Или клонируйте репо вручную и запустите:
`sudo ./install_gotelegram_bot.sh`
### Локально (файлы уже рядом со скриптом)
```bash
sudo ./install_gotelegram_bot.sh
```
## Конфигурация
Файл: `/opt/gotelegram-bot/.env`
- **BOT_TOKEN** — токен от @BotFather (обязательно).
- **ALLOWED_IDS** — опционально. Список ID пользователей через запятую; если не задан, бот доступен всем.
После изменения `.env` перезапуск сервиса:
```bash
sudo systemctl restart gotelegram-bot
```
## Требования на сервере
- Linux (systemd), Docker, Python 3.
- Перед использованием бота на сервере должен быть установлен Docker (бот сам поднимает контейнер `nineseconds/mtg:2` по команде `/install`).
## Управление сервисом
```bash
sudo systemctl status gotelegram-bot
sudo systemctl restart gotelegram-bot
journalctl -u gotelegram-bot -f
```