Gitter ist ein Gruppenchat mit ein paar netten Funktionen, ähnlich wie Slack. IRC ist das von vielen bevorzugte Chatsystem, auf jeden Fall mit Freenode im Bereich freier Software. Für das Portier-Projekt wollten wir beides zugleich nutzen. Also muss der IRC-Chatraum mit dem Gitter-Chatraum synchronisiert werden. Der große Vorteil davon ist, dass man dadurch ein persistentes Log samt Emailbenachrichtigungen bekommt, etwas, was IRC sonst fehlt (und wofür Bouncer eine schlechte Krücke sind).
Matterbridge kann diese Synchronisierung. Dem Namen nach ist es für mattermost gedacht, noch ein anderes Chatsystem, aber es funktioniert davon unabhängig. Dies sind die nötigen Schritte:
Gitter-Bot erstellen
Ein Gitterbot ist ein Nutzeraccount, der über sein Api-Token gesteuert wird. Zuerst muss ein neuer Nutzer auf Github erstellt werden. Der wird dann in Gitter eingeloggt. Um das API-Token zu sehen, muss die App-Seite im Entwicklerbereich aufgerufen werden. Ganz wichtiger letzter Schritt: Der Bot muss manuell dem Channel beitreten, also eingeloggt bleiben, den Channel aufrufen und auf "Join Channel" klicken. Matterbridge funktioniert sonst nicht, ohne Fehlermeldung. Das hat mich Stunden gekostet.
IRC-Bot erstellen
Kleiner Witz. Ein IRC-Bot muss natürlich nicht erstellt werden, schließlich hat IRC kein geschlossenes Nutzersystem. Matterbridge macht das automatisch.
Matterbridge starten
Matterbridge findet sich als Binary auf Github. Ich musste nur die fürs System passende Datei herunterladen und die Konfigurationsdatei conf.toml erstellen. Die sieht so aus:
[IRC]
[irc.freenode]
Server="chat.freenode.net:6667"
Nick="matterbridge"
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
[gitter]
[gitter.portier]
Token="GITTER-TOKEN"
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
ShowJoinPart=false
[[gateway]]
name="gateway1"
enable=true
[[gateway.in]]
account="irc.freenode"
channel="#channel"
[[gateway.out]]
account="irc.freenode"
channel="#channel"
[[gateway.in]]
account="gitter.portier"
channel="Projekt/Raum"
[[gateway.out]]
account="gitter.portier"
channel="Projekt/Raum"
[general]
Plus=true
Dann fehlte nur noch ein ./matterbridge-linux64 -conf conf.toml
. Wobei das natürlich dauerhaft laufen soll, daher erstellte ich auf dem Uberspace einen Eintrag mit den daemontools. Was direkt etwas problematisch war, denn svc -d
scheitert daran, die Matterbridge zu beenden. Das musste ich beim Neustarten also selbst machen. In der Praxis muss das aber kein großes Problem sein, solche Software startet man ja nicht oft neu.
onli blogging am : Riot: 1 verschlüsselnder Messenger, kein Desaster
Vorschau anzeigen