Telegram-бот Webhook — уведомления Discourse на базе ИИ

:information_source: Краткое описание Профессиональный Telegram-бот для автоматических уведомлений о новых сообщениях на форумах Discourse с AI-генерацией кратких резюме на базе OpenAI GPT-4.1-nano
:hammer_and_wrench: Ссылка на репозиторий GitHub - DigneZzZ/webhook_tg_bot · GitHub
:open_book: Руководство по установке README_EN.md

Webhook Telegram Bot — Уведомления о Discourse с поддержкой ИИ

Примечание: Хотя это не традиционный плагин Discourse, а внешняя интеграционная служба, я не смог найти более подходящую категорию, чтобы поделиться этим полезным инструментом с сообществом Discourse. Этот бот работает в паре с вашим форумом Discourse, обеспечивая расширенные возможности уведомлений.

Возможности

:link: Интеграция с Discourse

  • Обработка вебхуков для событий создания тем и сообщений

  • Поддержка всех типов контента Discourse

  • Объединение данных о темах и сообщениях в единые уведомления

  • Проверка подписи вебхука для безопасности (HMAC-SHA256)

:robot: Анализ контента с помощью ИИ

  • Интеграция с OpenAI GPT-4.1-nano для интеллектуального создания кратких резюме сообщений

  • Контекстно-зависимый анализ контента с очисткой HTML

  • Специальные шаблоны для различных типов контента

  • Автоматическая фильтрация и обработка контента

:mobile_phone: Расширенная доставка в Telegram

  • Отправка уведомлений в основной чат или в конкретные темы форума

  • Маппинг категорий — маршрутизация различных категорий Discourse в разные темы Telegram

  • Префиксы эмодзи для ролей пользователей (:crown: Администратор, :shield: Модератор, :star: Сотрудник и т.д.)

  • Умное форматирование HTML-сообщений

:bullseye: Гибкая фильтрация и управление

  • Мониторинг конкретных категорий или всех категорий

  • Игнорирование нежелательных категорий с системой приоритетов

  • Блокировка пользователей ботов (discobot, chatbot, системные пользователи)

  • Уведомления о премиум-разделах с оповещениями о подписке

:rocket: Готов к промышленной эксплуатации

  • Контейнеризация Docker с проверками работоспособности

  • Конвейер CI/CD GitHub Actions

  • Интеграция с systemd для автоматического запуска

  • Подробное логирование и мониторинг

  • Корректное завершение работы и обработка ошибок

Настройка

1. Настройка вебхука Discourse

  1. Перейдите в Admin → API → Webhooks

  2. Нажмите New Webhook

  3. Настройте:


Payload URL: https://your-domain.com/webhook

Content Type: application/json

Secret: ваш_секрет_вебхука

Which events: Topic Event + Post Event

2. Настройка Telegram-бота

  1. Создайте бота через @BotFather

  2. Получите Chat ID для вашей группы/канала

  3. При необходимости настройте темы форума для маршрутизации по категориям

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 - :white_check_mark:
TELEGRAM_CHAT_ID ID целевой группы/канала - :white_check_mark:
TELEGRAM_THREAD_ID ID основной темы (0 = основной чат) 0 :cross_mark:
WEBHOOK_SECRET Секретный ключ для проверки подписи - :white_check_mark:
WEBHOOK_PORT Порт сервера вебхука 8080 :cross_mark:
WEBHOOK_PATH Путь к конечной точке вебхука /webhook :cross_mark:
OPENAI_API_KEY API-ключ OpenAI для генерации резюме - :cross_mark:
OPENAI_MODEL Используемая модель GPT gpt-4.1-nano :cross_mark:
BASE_URL URL вашего форума Discourse - :cross_mark:
MONITORED_CATEGORIES ID категорий для мониторинга (через запятую) all :cross_mark:
IGNORED_CATEGORIES ID категорий для игнорирования (через запятую) none :cross_mark:
IGNORED_USERS ID пользователей для игнорирования (через запятую) none :cross_mark:
PREMIUM_CATEGORIES ID премиум-категорий (через запятую) none :cross_mark:

Маппинг категорий на темы (опционально):


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-сертификат (рекомендуется для промышленной эксплуатации)

Поддержка и вклад

Лицензия: MIT License

2 лайка