| 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 | |
| Enlace al Repositorio | GitHub - DigneZzZ/webhook_tg_bot | |
| 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
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)
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
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 (
Admin,
Moderador,
Staff, etc.) -
Formateo inteligente de mensajes HTML
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
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
-
Navega a Admin → API → Webhooks
-
Haz clic en Nuevo Webhook
-
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
-
Crea un bot a través de @BotFather
-
Obtén el ID del Chat para tu grupo/canal
-
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 | - | |
TELEGRAM_CHAT_ID |
ID del grupo/canal de destino | - | |
TELEGRAM_THREAD_ID |
ID del tema principal (0 = chat principal) | 0 | |
WEBHOOK_SECRET |
Clave secreta para la verificación de firma | - | |
WEBHOOK_PORT |
Puerto del servidor webhook | 8080 | |
WEBHOOK_PATH |
Ruta del endpoint del webhook | /webhook | |
OPENAI_API_KEY |
Clave API de OpenAI para resúmenes | - | |
OPENAI_MODEL |
Modelo GPT a usar | gpt-4.1-nano | |
BASE_URL |
URL de tu foro de Discourse | - | |
MONITORED_CATEGORIES |
IDs de categorías a monitorizar (separadas por comas) | all | |
IGNORED_CATEGORIES |
IDs de categorías a ignorar (separadas por comas) | none | |
IGNORED_USERS |
IDs de usuarios a ignorar (separadas por comas) | none | |
PREMIUM_CATEGORIES |
IDs de categorías premium (separadas por comas) | none |
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
-
Repositorio de GitHub: GitHub - DigneZzZ/webhook_tg_bot
-
Discusiones: Discusiones de la comunidad
Licencia: Licencia MIT