Новый релиз бота технической поддержки: интеграция с ВКонтакте и docker-compose сборка с мониторингом
Привет, Хабр!
Месяц назад я выложил в открытый доступ проект бота для технической поддержки. За это время он собрал более 100 клонирований и 40+ звёзд на GitHub. В Issues начали появляться предложения по доработкам — большое спасибо всем, кто откликнулся. Это дало мощную мотивацию развивать проект дальше.
GitHub - https://github.com/prog-time/tg-support-bot
Если понравится — буду рад вашей ⭐!
В этом посте — кратко о ключевых изменениях последнего релиза.
📡 Подключение ВКонтакте как нового источника трафика
Теперь Telegram-группа может объединять сообщения сразу из двух источников — Telegram-бота и бота сообщества ВКонтакте. Все сообщения, приходящие в группу ВК, автоматически транслируются в Telegram.
Поддерживаются основные типы сообщений:
📄 текст, 📎 файлы, 🖼 изображения, 🎤 голосовые, 👤 контакты и др.
Некоторые форматы пришлось унифицировать. Например, контакты из Telegram преобразуются в текстовый вид:
Имя: Иван Иванов
Телефон: +7 900 123-45-67
Как подключить ВКонтакте
Перейдите в настройки сообщества ВК → Работа с API
Создайте ключ доступа с правами:
Сообщения сообщества
Фотографии
Документы
В разделе Callback API:
Укажите адрес: https://<ваш-домен>/api/vk/bot
Установите секретный ключ
В разделе Типы событий активируйте:
Входящие сообщения
Исходящие сообщения
В .env-файле проекта пропишите:
VK_TOKEN=your_token
VK_CONFIRM_CODE=your_code
VK_SECRET_CODE=your_secret
🐳 Docker-compose сборка: сервер, БД, мониторинг
Теперь проект поставляется с готовой docker-compose.yml. Это упрощает развёртывание на сервере и делает систему более модульной.
В сборку входят:
nginx — прокси-сервер
php-fpm — обработка запросов
PostgreSQL — СУБД
PgAdmin — веб-интерфейс для работы с БД
Grafana + Loki — мониторинг и централизованное логирование
Что логируется:
все входящие и исходящие запросы
ошибки и исключения
В будущем планирую расширить количество метрик. Пока что есть базовый мониторинг по трафику и ошибкам — этого достаточно, чтобы понять поведение системы в продакшене.
🔄 Что дальше
Эти доработки были предложены сообществом. Благодаря вам проект стал заметно сильнее. Спасибо за участие!
Следующая цель — 80 звёзд на GitHub. Как только наберём, начну работу над подключением нового канала трафика.
Если у вас есть идеи, баг-репорты или фичи — создавайте Issue. Каждое предложение внимательно читаю.
Проект доступен здесь: GitHub.
Буду рад звезде ⭐ и фидбеку.
Спасибо за внимание!