add infra

This commit is contained in:
YuraBombitel1
2026-08-12 14:37:31 +03:00
parent 3dbb105bbc
commit 2303515cb7
4 changed files with 102 additions and 0 deletions
+71
View File
@@ -0,0 +1,71 @@
# StreamHelp support bot
Telegram-бот поддержки: пересылает сообщения клиентов в чат поддержки, ответ
оператора реплаем на сообщение клиента копируется обратно клиенту. Маппинг
"сообщение в чате поддержки → чат клиента" хранится в SQLite.
## Деплой (systemd, Linux)
```bash
# 1. Системный пользователь без shell/home
sudo useradd --system --no-create-home --shell /usr/sbin/nologin support-bot
# 2. Код
sudo mkdir -p /opt/support-bot
sudo cp support_bot.py requirements.txt /opt/support-bot/
cd /opt/support-bot
sudo python3 -m venv .venv
sudo ./.venv/bin/pip install -r requirements.txt
# 3. Конфиг — реальные значения, не то, что лежит в репозитории
sudo cp support-bot.env /etc/support-bot.env
sudo nano /etc/support-bot.env # BOT_TOKEN и SUPPORT_CHAT_ID
sudo chown support-bot:support-bot /etc/support-bot.env
sudo chmod 600 /etc/support-bot.env # там токен бота
# 4. Каталог под БД
sudo mkdir -p /var/lib/support-bot
sudo chown support-bot:support-bot /var/lib/support-bot
# 5. Владелец кода
sudo chown -R support-bot:support-bot /opt/support-bot
# 6. systemd
sudo cp support-bot.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now support-bot
```
## Проверка
```bash
sudo systemctl status support-bot
sudo journalctl -u support-bot -f
```
Отправь `/start` боту в личку — должен прийти шаблонный текст. Затем отправь
любое сообщение — оно должно появиться в чате поддержки (`SUPPORT_CHAT_ID`).
Ответь на него реплаем из чата поддержки — ответ должен прийти клиенту.
## Как получить SUPPORT_CHAT_ID
Добавь бота в чат поддержки, напиши туда любое сообщение и открой:
`https://api.telegram.org/bot<TOKEN>/getUpdates``chat.id` в ответе и есть
нужное значение (для групп обычно отрицательное число).
## Обновление кода
```bash
cd /opt/support-bot
sudo -u support-bot ./.venv/bin/pip install -r requirements.txt # если менялись зависимости
sudo systemctl restart support-bot
```
## Файлы
- `support_bot.py` — сам бот.
- `support-bot.env`**шаблон** конфига (в репозитории), реальный экземпляр
живёт в `/etc/support-bot.env` на сервере и в git не попадает.
- `support-bot.service` — systemd unit.
- `requirements.txt` — зависимости (`python-telegram-bot` — используется
async API v20+, более старые версии несовместимы с кодом).