Webhook Telegram Bot - Notificaciones de Discourse con IA

:information_source: Resumen Bot profesional de Telegram para notificaciones automáticas sobre nuevas publicaciones de foros de Discourse con resúmenes generados por IA utilizando OpenAI GPT-4.1-nano
:hammer_and_wrench: Enlace al Repositorio GitHub - DigneZzZ/webhook_tg_bot
:open_book: Guía de Instalación README_EN.md

Bot de Telegram con Webhook - Notificaciones de Discourse con IA

Nota: Aunque esto no es un plugin tradicional de Discourse, sino un servicio de integración externo, no pude encontrar una categoría más adecuada para compartir esta útil herramienta con la comunidad de Discourse. Este bot funciona junto con tu foro de Discourse para proporcionar capacidades de notificación mejoradas.

Características

:link: Integración con Discourse

  • Procesa webhooks para eventos de creación de temas y publicaciones

  • Soporta todo tipo de contenido de Discourse

  • Combina datos de temas y publicaciones en mensajes unificados

  • Verificación de firma de webhook para seguridad (HMAC-SHA256)

:robot: Análisis de Contenido con IA

  • Integración con OpenAI GPT-4.1-nano para resúmenes inteligentes de publicaciones

  • Análisis de contenido consciente del contexto con limpieza de HTML

  • Plantillas especiales para diferentes tipos de contenido

  • Filtrado y procesamiento automático de contenido

:mobile_phone: Entrega Avanzada en Telegram

  • Envía notificaciones al chat principal o a temas específicos del foro

  • Mapeo de categorías: dirige diferentes categorías de Discourse a diferentes temas de Telegram

  • Prefijos de emoji de roles de usuario (:crown: Admin, :shield: Moderador, :star: Staff, etc.)

  • Formateo inteligente de mensajes HTML

:bullseye: Filtrado y Control Flexible

  • Monitoriza categorías específicas o todas las categorías

  • Ignora categorías no deseadas con un sistema de prioridad

  • Bloquea usuarios del bot (discobot, chatbot, usuarios del sistema)

  • Notificaciones de sección premium con alertas de suscripción

:rocket: Listo para Producción

  • Contenerización con Docker y comprobaciones de estado

  • Pipeline CI/CD de GitHub Actions

  • Integración con Systemd para inicio automático

  • Registro y monitorización completos

  • Cierre elegante y manejo de errores

Configuración

1. Configuración del Webhook de Discourse

  1. Navega a Admin → API → Webhooks

  2. Haz clic en Nuevo Webhook

  3. Configura:

URL del Payload: https://your-domain.com/webhook
Tipo de Contenido: application/json
Secreto: your_webhook_secret
¿Qué eventos?: Evento de Tema + Evento de Publicación

2. Configuración del Bot de Telegram

  1. Crea un bot a través de @BotFather

  2. Obtén el ID del Chat para tu grupo/canal

  3. Opcionalmente, configura temas del foro para el enrutamiento de categorías

3. Configuración del Entorno

Crea un archivo .env con la configuración requerida (ver configuración completa en el repositorio).

4. Despliegue con Docker

# Instalación rápida
curl -fsSL https://raw.githubusercontent.com/dignezzz/webhook_tg_bot/main/install.sh -o install.sh
chmod +x install.sh
./install.sh install

5. Configuración del Proxy Inverso

Para soporte de webhooks en tu dominio, configura un proxy inverso (nginx/Apache) para dirigir las solicitudes de webhook al contenedor del bot en el puerto 8080.

Ejemplo de configuración de nginx:

location /webhook {
proxy_pass http://localhost:8080/webhook;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}

Ajustes

Nombre Descripción Por defecto Requerido
TELEGRAM_BOT_TOKEN Token del bot de @BotFather - :white_check_mark:
TELEGRAM_CHAT_ID ID del grupo/canal de destino - :white_check_mark:
TELEGRAM_THREAD_ID ID del tema principal (0 = chat principal) 0 :cross_mark:
WEBHOOK_SECRET Clave secreta para la verificación de firma - :white_check_mark:
WEBHOOK_PORT Puerto del servidor webhook 8080 :cross_mark:
WEBHOOK_PATH Ruta del endpoint del webhook /webhook :cross_mark:
OPENAI_API_KEY Clave API de OpenAI para resúmenes - :cross_mark:
OPENAI_MODEL Modelo GPT a usar gpt-4.1-nano :cross_mark:
BASE_URL URL de tu foro de Discourse - :cross_mark:
MONITORED_CATEGORIES IDs de categorías a monitorizar (separadas por comas) all :cross_mark:
IGNORED_CATEGORIES IDs de categorías a ignorar (separadas por comas) none :cross_mark:
IGNORED_USERS IDs de usuarios a ignorar (separadas por comas) none :cross_mark:
PREMIUM_CATEGORIES IDs de categorías premium (separadas por comas) none :cross_mark:

Mapeo de Categoría a Tema (Opcional):

TELEGRAM_THREAD_ID_1=123456
THREAD_CATEGORIES_1=1,2,3
TELEGRAM_THREAD_ID_2=234567
THREAD_CATEGORIES_2=4,5

Ejemplo de Formato de Mensaje

👤 👑 Administrator creó una nueva publicación: Guía de Configuración de Docker
📋 El autor comparte una solución al problema de configuración de contenedores Docker y explica el proceso paso a paso para solucionar errores de conexión a la base de datos.
🔗 Enlace al tema (https://forum.example.com/t/topic/123)
🏷 Etiquetas: #docker, #database, #troubleshooting
💎 Esta sección solo está disponible mediante suscripción.

Instalación y Gestión

El bot incluye un script de gestión para operaciones sencillas:

whtg status # Comprobar estado del bot
whtg start # Iniciar el bot
whtg stop # Detener el bot
whtg restart # Reiniciar el bot
whtg logs # Ver registros
whtg update # Actualizar a la última versión
whtg uninstall # Eliminar el bot

Soporte de Idiomas

Nota: Actualmente, todos los mensajes de la interfaz y la documentación están en ruso, pero el soporte de idiomas en inglés se añadirá en un futuro próximo. El bot funciona con cualquier foro de Discourse independientemente del idioma.

Requisitos Técnicos

  • Docker y Docker Compose

  • Proxy inverso (nginx/Apache) para soporte de dominio de webhook

  • Clave API de OpenAI (opcional, para resúmenes de IA)

  • Certificado HTTPS (recomendado para producción)

Soporte y Contribuciones

Licencia: Licencia MIT

2 Me gusta