Service mis en place
Motivation
Depuis longtemps Telegram s'est imposé comme outil de communication officieux, bien que l'officiel restant IRC.
Histoire de pouvoir faire discuter tout le monde ensemble, après avoir testé et abandonné Matrix, on a décidé à la réunion technique du 21 juillet de mettre en place en bridge entre les deux.
Fonctionnalités
Chaque message sur Télégram est écrit sur irc par le bot 'egdirbBot' sous la forme " message". Si l'utilisateur n'a pas définit de pseudo sur Télégram, ça sera sous la forme " message".
Chaque message sur irc est écrit sur Télégram par le bot sous la forme " message".
Si un utilisateur Télégram envoie un document, une photo, une musique, etc..., le bot va hoster le fichier sur un serveur web (auto hébergé) et envoyer un lien de téléchargement sur irc.
Si un utilisateur Télégram répond à un message ou forwarde un message, le bot va afficher sur irc l'utilisateur du message initial (y compris s'il s'agit d'un message provenant d'IRC) puis la réponse ou le message forwardé.
Le bot n'envoit pas sur Télégram les annonces de join et quit d'IRC pour éviter le flood.
Sur Télégram il y a quelques commandes pour le bot :
-
/names
: affiche la liste des utilisateurs connectés à IRC -
/topic
: affiche le topic du canal irc -
/me
: simule la commande /me d'IRC et envoie un message sans le pseudo -
/command
: permet d'envoyer une commande sur IRC via le bot, pour un autre bot sur irc par exemple. En fait ça affiche le message sans le pseudo de la personne qui l'a envoyé pratique pour commander un eggdrop depuis telegram par exemple.
Configuration & Implémentation
Bridge sur neko
Le bot est un fork du projet teleirc (https://github.com/FruitieX/teleirc) un peu modifié.
Le code est sur la vm neko, avec un utilisateur "teleirc", cloné dans le dossier /srv/teleirc/git
.
La config du service est dans /srv/teleirc/config.js
Cf /srv/teleirc/README.md pour plus d'infos techniques.
Il y a un script d'init (/etc/init.d/teleirc), on peut lancer et arrêter le service via "service teleirc (start|stop)"
Les logs sont dispos dans /var/log/teleirc.log
Le service permet de transférer les fichiers de Telegram vers IRC, pour ça il met en place en serveur web pour télécharger les fichier en http. Le service écoute sur neko : neko.adm-pub.resel.fr:9090
Reverse proxy sur cyric
Dans la conf d'Apache sur cyric, conf du reverse proxy dans /etc/apache2/sites-available/proxys/teleirc-data.resel.fr
- Vhost
https://teleirc-data.resel.fr
versneko.adm-pub.resel.fr
port 9090 en https - Vhost http qui rewrite vers le https.
Entrées dans le DNS sur saymyname
Dans la vue Brest et internet (/etc/bind/master/view/internet/zone.resel.fr et /etc/bind/master/view/Brest/zone.resel.fr) j'ai rajouté une ligne pour teleirc-data.resel.fr avec un CNAME vers cyric. J'ia màj le serial et restart le DNS (service bind9 restart et rdnc reload)
Compte IRC
Pour assurer que le bot est le bon pseudo sur IRC, il a un compte auprès du NickServ de rezosup, le nom est egdirbBot et le mot de passe est dans le keepass Président.