| Краткое описание | Профессиональный Telegram-бот для автоматических уведомлений о новых сообщениях на форумах Discourse с AI-генерацией кратких резюме на базе OpenAI GPT-4.1-nano | |
| Ссылка на репозиторий | GitHub - DigneZzZ/webhook_tg_bot · GitHub | |
| Руководство по установке | README_EN.md |
Webhook Telegram Bot — Уведомления о Discourse с поддержкой ИИ
Примечание: Хотя это не традиционный плагин Discourse, а внешняя интеграционная служба, я не смог найти более подходящую категорию, чтобы поделиться этим полезным инструментом с сообществом Discourse. Этот бот работает в паре с вашим форумом Discourse, обеспечивая расширенные возможности уведомлений.
Возможности
Интеграция с Discourse
-
Обработка вебхуков для событий создания тем и сообщений
-
Поддержка всех типов контента Discourse
-
Объединение данных о темах и сообщениях в единые уведомления
-
Проверка подписи вебхука для безопасности (HMAC-SHA256)
Анализ контента с помощью ИИ
-
Интеграция с OpenAI GPT-4.1-nano для интеллектуального создания кратких резюме сообщений
-
Контекстно-зависимый анализ контента с очисткой HTML
-
Специальные шаблоны для различных типов контента
-
Автоматическая фильтрация и обработка контента
Расширенная доставка в Telegram
-
Отправка уведомлений в основной чат или в конкретные темы форума
-
Маппинг категорий — маршрутизация различных категорий Discourse в разные темы Telegram
-
Префиксы эмодзи для ролей пользователей (
Администратор,
Модератор,
Сотрудник и т.д.) -
Умное форматирование HTML-сообщений
Гибкая фильтрация и управление
-
Мониторинг конкретных категорий или всех категорий
-
Игнорирование нежелательных категорий с системой приоритетов
-
Блокировка пользователей ботов (discobot, chatbot, системные пользователи)
-
Уведомления о премиум-разделах с оповещениями о подписке
Готов к промышленной эксплуатации
-
Контейнеризация Docker с проверками работоспособности
-
Конвейер CI/CD GitHub Actions
-
Интеграция с systemd для автоматического запуска
-
Подробное логирование и мониторинг
-
Корректное завершение работы и обработка ошибок
Настройка
1. Настройка вебхука Discourse
-
Перейдите в Admin → API → Webhooks
-
Нажмите New Webhook
-
Настройте:
Payload URL: https://your-domain.com/webhook
Content Type: application/json
Secret: ваш_секрет_вебхука
Which events: Topic Event + Post Event
2. Настройка Telegram-бота
-
Создайте бота через @BotFather
-
Получите Chat ID для вашей группы/канала
-
При необходимости настройте темы форума для маршрутизации по категориям
3. Конфигурация окружения
Создайте файл .env с необходимыми настройками (полная конфигурация доступна в репозитории).
4. Развертывание через Docker
# Быстрая установка
curl -fsSL https://raw.githubusercontent.com/dignezzz/webhook_tg_bot/main/install.sh -o install.sh
chmod +x install.sh
./install.sh install
5. Настройка обратного прокси
Для поддержки вебхуков на вашем домене настройте обратный прокси (nginx/Apache) для перенаправления запросов вебхука в контейнер бота на порт 8080.
Пример конфигурации nginx:
location /webhook {
proxy_pass http://localhost:8080/webhook;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
Параметры
| Имя | Описание | Значение по умолчанию | Обязательно |
|---|---|---|---|
TELEGRAM_BOT_TOKEN |
Токен бота от @BotFather | - | |
TELEGRAM_CHAT_ID |
ID целевой группы/канала | - | |
TELEGRAM_THREAD_ID |
ID основной темы (0 = основной чат) | 0 | |
WEBHOOK_SECRET |
Секретный ключ для проверки подписи | - | |
WEBHOOK_PORT |
Порт сервера вебхука | 8080 | |
WEBHOOK_PATH |
Путь к конечной точке вебхука | /webhook | |
OPENAI_API_KEY |
API-ключ OpenAI для генерации резюме | - | |
OPENAI_MODEL |
Используемая модель GPT | gpt-4.1-nano | |
BASE_URL |
URL вашего форума Discourse | - | |
MONITORED_CATEGORIES |
ID категорий для мониторинга (через запятую) | all | |
IGNORED_CATEGORIES |
ID категорий для игнорирования (через запятую) | none | |
IGNORED_USERS |
ID пользователей для игнорирования (через запятую) | none | |
PREMIUM_CATEGORIES |
ID премиум-категорий (через запятую) | none |
Маппинг категорий на темы (опционально):
TELEGRAM_THREAD_ID_1=123456
THREAD_CATEGORIES_1=1,2,3
TELEGRAM_THREAD_ID_2=234567
THREAD_CATEGORIES_2=4,5
Пример формата сообщения
👤 👑 Administrator создал новое сообщение: Руководство по настройке Docker
📋 Автор делится решением проблемы с конфигурацией контейнера Docker и пошагово объясняет процесс исправления ошибок подключения к базе данных.
🔗 Ссылка на тему (https://forum.example.com/t/topic/123)
🏷 Теги: #docker, #database, #troubleshooting
💎 Этот раздел доступен только по подписке.
Установка и управление
Бот включает скрипт управления для удобства операций:
whtg status # Проверка статуса бота
whtg start # Запуск бота
whtg stop # Остановка бота
whtg restart # Перезапуск бота
whtg logs # Просмотр логов
whtg update # Обновление до последней версии
whtg uninstall # Удаление бота
Поддержка языков
Примечание: В настоящее время все сообщения интерфейса и документация доступны на русском языке, но поддержка английского языка будет добавлена в ближайшее время. Бот работает с любым форумом Discourse независимо от языка.
Технические требования
-
Docker и Docker Compose
-
Обратный прокси (nginx/Apache) для поддержки вебхуков на домене
-
API-ключ OpenAI (опционально, для генерации резюме с помощью ИИ)
-
HTTPS-сертификат (рекомендуется для промышленной эксплуатации)
Поддержка и вклад
-
Репозиторий GitHub: GitHub - DigneZzZ/webhook_tg_bot · GitHub
-
Обсуждения: Обсуждения сообщества
Лицензия: MIT License