Files
streamhelp-bot/README.md
T
2026-08-12 14:48:42 +03:00

64 lines
3.6 KiB
Markdown

# StreamHelp support bot
Telegram-бот поддержки: пересылает сообщения клиентов в чат поддержки, ответ
оператора реплаем на сообщение клиента копируется обратно клиенту. Маппинг
"сообщение в чате поддержки → чат клиента" хранится в SQLite.
## Быстрый деплой (screen)
Один скрипт: качает репозиторий прямо в `/opt/support-bot` (без вложенных
папок), ставит зависимости в venv, поднимает бота в screen-сессии.
```bash
curl -fsSL https://git.twitchmagic.pro/AdministratorEbaka1337/streamhelp-bot/raw/main/deploy.sh | bash
```
Первый запуск остановится на заполнении `/etc/support-bot.env` — впиши туда
`BOT_TOKEN` и `SUPPORT_CHAT_ID` (см. ниже, как достать) и прогони скрипт ещё
раз. Каждый следующий запуск сам подтягивает свежий код и перезапускает
screen-сессию — этим же скриптом обновляешь бота при новом деплое.
```bash
screen -r support-bot # посмотреть логи/вывод бота
# Ctrl+A, D — выйти из сессии, не убивая бота
```
## Как получить SUPPORT_CHAT_ID
Добавь бота в чат поддержки, напиши туда любое сообщение и открой:
`https://api.telegram.org/bot<TOKEN>/getUpdates``chat.id` в ответе и есть
нужное значение (для групп обычно отрицательное число).
## Проверка
Отправь `/start` боту в личку — должен прийти шаблонный текст. Затем отправь
любое сообщение — оно должно появиться в чате поддержки (`SUPPORT_CHAT_ID`).
Ответь на него реплаем из чата поддержки — ответ должен прийти клиенту.
## Альтернатива: systemd
Для постоянной эксплуатации (автозапуск при перезагрузке, автоперезапуск при
падении, отдельный системный пользователь) в репозитории есть готовый unit —
`support-bot.service`. Тот же `deploy.sh` кладёт код и venv в `/opt/support-bot`,
дальше:
```bash
sudo useradd --system --no-create-home --shell /usr/sbin/nologin support-bot
sudo chown -R support-bot:support-bot /opt/support-bot /var/lib/support-bot
sudo chown support-bot:support-bot /etc/support-bot.env
sudo cp /opt/support-bot/support-bot.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now support-bot
sudo journalctl -u support-bot -f
```
## Файлы
- `support_bot.py` — сам бот.
- `support-bot.env`**шаблон** конфига (в репозитории), реальный экземпляр
живёт в `/etc/support-bot.env` на сервере и в git не попадает.
- `deploy.sh` — деплой в screen (клонирует/обновляет, venv, зависимости, запуск).
- `support-bot.service` — systemd unit, для постоянной эксплуатации.
- `requirements.txt` — зависимости (`python-telegram-bot` — используется
async API v20+, более старые версии несовместимы с кодом).