Telegram боты¶
ShivaVPN использует четыре бота:
| Бот | Назначение | Статус |
|---|---|---|
| User Bot | Клиентский (~279K пользователей) | Активен (screen sessions, Docker готовится) |
| Audit Bot v2 | DevOps диагностика | Активен (Docker, 10.99.87.5) |
| Alert Bot | Алерты инфраструктуры | Активен (Grafana Alerting) |
| Speedtest Bot | Мониторинг скорости VPN | Активен (88.210.53.146) |
User Bot¶
Репозиторий: telegram-user-bot/ | GitLab: project #58
Функции: управление подпиской, скачивание конфигов, тикеты поддержки (forum threads), промокоды, реферальная программа, оплата (YooKassa, Heleket, Revolut, Telegram Stars, NowPayments).
Stack: Python 3.12, aiogram 3.22, 3K LOC, 17 роутеров.
Production (текущий, screen sessions)¶
Сервер: 212.70.189.68:2255 (karmann2), пользователь kadmin
# SSH
ssh -J root@212.70.189.60:2255 -p 2255 -i ~/.ssh/id_ed25519_shivavpn root@212.70.189.68
# Статус
su - kadmin -c 'screen -ls'
ps aux | grep bot.py
# Перезапуск RU бота
kill $(pgrep -f 'shivavpn/src/shivavpn/bot.py')
su - kadmin -c 'cd /home/kadmin/telegram_bots/shivavpn/src/shivavpn && \
screen -S shiva_bot -X stuff "python3 bot.py\n"'
# Логи
su - kadmin -c 'screen -S shiva_bot -X hardcopy /tmp/bot.txt' && tail -50 /tmp/bot.txt
Инстансы: RU (shiva_bot) и EN (en_shivavpn) в отдельных screen-сессиях.
Docker (тестовый, в подготовке)¶
# CI/CD: push → auto build → manual deploy-test
cd telegram-user-bot && ./deploy-test.sh
# Target: 212.70.189.68:/opt/shivavpn-userbot-test/
После успешного тестирования — раскомментировать deploy_prod в .gitlab-ci.yml.
Audit Bot v2¶
Репозиторий: telegram-audit-bot/ | GitLab: project #56
Сервер: 10.99.87.5 (Docker, /opt/shivavpn-bot/)
Доступ: whitelist — 3 Telegram ID.
Функции:
/audit <account_id>— полный аудит: MySQL + VPN конфиги + VUSA + devices + cached configs- Детальные кнопки: Devices, VUSA Status, Configs, Backend Logs, VLESS Keys
- Resync — принудительный sync аккаунта на всех серверах
- Автодетект рассинхрона XRAY/VUSA/Configs
- Статус серверов по странам
- Дневные метрики: выручка, регистрации, активные пользователи
# Деплой
cd telegram-audit-bot
nano .env # Bot token, user IDs, ADMIN_PASSWORD
./deploy.sh # Деплой на 10.99.87.5 через jump host
Alert Bot (Grafana Alerting)¶
Управляется через Grafana UI, не отдельный процесс.
URL: https://monitor.karmann.tech/alerting/notifications
Contact Points¶
| Имя | Chat ID | Назначение |
|---|---|---|
tg |
-1003053411512 | Общий канал (infra алерты, repeat 4h) |
tg-vpn |
28795547 (zardes DM) | VPN алерты (repeat 1h) |
tg-kumo |
-5021213637 | Uptime Shiva группа (все алерты, repeat 1h) |
Routing¶
Алерт правила¶
| Категория | Алерты |
|---|---|
| VPN Config Service | Worker Unhealthy, Servers DOWN, Config Service Down, Sync Too Slow |
| Backend | Backend Down, Account Pool Low |
| Infra | RAM, CPU, DISK, Inodes |
| Sync | Sync Stale, Online Sync Age |
Speedtest Bot¶
Сервер: 88.210.53.146 | Chat ID: -5091990619
Запускает speed tests каждый час по 23 странам. Результаты в vpn_health.json.
Deprecated¶
alertmanager-bot — отключён с Feb 2023, заменён Grafana Alerting. Конфиг остался на km-proxy01 (212.70.189.60), но не запущен.