| Résumé | Bot Telegram professionnel pour les notifications automatiques sur les nouveaux messages des forums Discourse avec des résumés générés par l’IA à l’aide d’OpenAI GPT-4.1-nano | |
| Lien du dépôt | GitHub - DigneZzZ/webhook_tg_bot | |
| Guide d’installation | README_EN.md |
Bot Telegram Webhook - Notifications Discourse alimentées par l’IA
Note : Bien qu’il ne s’agisse pas d’un plugin Discourse traditionnel mais plutôt d’un service d’intégration externe, je n’ai pas trouvé de catégorie plus appropriée pour partager cet outil utile avec la communauté Discourse. Ce bot fonctionne aux côtés de votre forum Discourse pour offrir des capacités de notification améliorées.
Fonctionnalités
Intégration Discourse
-
Traite les webhooks pour les événements de création de sujet et de message
-
Prend en charge tous les types de contenu Discourse
-
Combine les données de sujet et de message dans des messages unifiés
-
Vérification de la signature du webhook pour la sécurité (HMAC-SHA256)
Analyse de contenu par IA
-
Intégration OpenAI GPT-4.1-nano pour des résumés de messages intelligents
-
Analyse de contenu contextuelle avec nettoyage HTML
-
Modèles spéciaux pour différents types de contenu
-
Filtrage et traitement automatique du contenu
Diffusion avancée sur Telegram
-
Envoi de notifications au chat principal ou à des sujets de forum spécifiques
-
Mappage de catégories - achemine différentes catégories Discourse vers différents sujets Telegram
-
Préfixes d’émojis de rôles d’utilisateur (
Admin,
Modérateur,
Staff, etc.) -
Mise en forme intelligente des messages HTML
Filtrage et contrôle flexibles
-
Surveille des catégories spécifiques ou toutes les catégories
-
Ignore les catégories indésirables avec un système de priorité
-
Bloque les utilisateurs du bot (discobot, chatbot, utilisateurs système)
-
Notifications de section premium avec alertes d’abonnement
Prêt pour la production
-
Conteneurisation Docker avec vérifications de l’état de santé
-
Pipeline CI/CD GitHub Actions
-
Intégration Systemd pour le démarrage automatique
-
Journalisation et surveillance complètes
-
Arrêt et gestion des erreurs en douceur
Configuration
1. Configuration du webhook Discourse
-
Accédez à Admin → API → Webhooks
-
Cliquez sur Nouveau Webhook
-
Configurez :
URL du payload : https://your-domain.com/webhook
Type de contenu : application/json
Secret : your_webhook_secret
Quels événements : Événement de sujet + Événement de message
2. Configuration du bot Telegram
-
Créez un bot via @BotFather
-
Obtenez l’ID du chat pour votre groupe/canal
-
Configurez éventuellement des sujets de forum pour le routage des catégories
3. Configuration de l’environnement
Créez un fichier .env avec les paramètres requis (voir la configuration complète dans le dépôt).
4. Déploiement Docker
# Installation rapide
curl -fsSL https://raw.githubusercontent.com/dignezzz/webhook_tg_bot/main/install.sh -o install.sh
chmod +x install.sh
./install.sh install
5. Configuration du proxy inverse
Pour la prise en charge des webhooks sur votre domaine, configurez un proxy inverse (nginx/Apache) pour achemine les requêtes de webhook vers le conteneur du bot sur le port 8080.
Exemple de configuration nginx :
location /webhook {
proxy_pass http://localhost:8080/webhook;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
Paramètres
| Nom | Description | Défaut | Requis |
|---|---|---|---|
TELEGRAM_BOT_TOKEN |
Jeton du bot de @BotFather | - | |
TELEGRAM_CHAT_ID |
ID du groupe/canal cible | - | |
TELEGRAM_THREAD_ID |
ID du sujet principal (0 = chat principal) | 0 | |
WEBHOOK_SECRET |
Clé secrète pour la vérification de la signature | - | |
WEBHOOK_PORT |
Port du serveur webhook | 8080 | |
WEBHOOK_PATH |
Chemin du point d’accès webhook | /webhook | |
OPENAI_API_KEY |
Clé API OpenAI pour les résumés | - | |
OPENAI_MODEL |
Modèle GPT à utiliser | gpt-4.1-nano | |
BASE_URL |
URL de votre forum Discourse | - | |
MONITORED_CATEGORIES |
IDs des catégories à surveiller (séparés par des virgules) | all | |
IGNORED_CATEGORIES |
IDs des catégories à ignorer (séparés par des virgules) | none | |
IGNORED_USERS |
IDs des utilisateurs à ignorer (séparés par des virgules) | none | |
PREMIUM_CATEGORIES |
IDs des catégories premium (séparés par des virgules) | none |
Mappage Catégorie-Sujet (Facultatif) :
TELEGRAM_THREAD_ID_1=123456
THREAD_CATEGORIES_1=1,2,3
TELEGRAM_THREAD_ID_2=234567
THREAD_CATEGORIES_2=4,5
Exemple de format de message
👤 👑 Administrator a créé un nouveau message : Guide de configuration Docker
📋 L'auteur partage une solution au problème de configuration du conteneur Docker et explique le processus étape par étape pour résoudre les erreurs de connexion à la base de données.
🔗 Lien du sujet (https://forum.example.com/t/topic/123)
🏷 Tags : #docker, #database, #troubleshooting
💎 Cette section est disponible uniquement sur abonnement.
Installation et gestion
Le bot comprend un script de gestion pour des opérations faciles :
whtg status # Vérifier l'état du bot
whtg start # Démarrer le bot
whtg stop # Arrêter le bot
whtg restart # Redémarrer le bot
whtg logs # Afficher les journaux
whtg update # Mettre à jour vers la dernière version
whtg uninstall # Supprimer le bot
Prise en charge linguistique
Note : Actuellement, tous les messages de l’interface et la documentation sont en russe, mais la prise en charge de la langue anglaise sera ajoutée dans un avenir proche. Le bot fonctionne avec n’importe quel forum Discourse, quelle que soit la langue.
Exigences techniques
-
Docker et Docker Compose
-
Proxy inverse (nginx/Apache) pour la prise en charge du domaine webhook
-
Clé API OpenAI (facultatif, pour les résumés IA)
-
Certificat HTTPS (recommandé pour la production)
Support et contributions
-
Dépôt GitHub : GitHub - DigneZzZ/webhook_tg_bot
-
Problèmes : Signaler les bugs ou les demandes de fonctionnalités
-
Discussions : Discussions communautaires
Licence : Licence MIT