Chat bridges

This page documents the bridge services maintained by the FOSS@RIT Tech Team. Chat bridges are used to “bridge” different chat rooms together (e.g. a Telegram group to an IRC channel).

Matterbridge

Matterbridge is an open source chat bridge that supports various chat platforms. Currently, FOSS@RIT uses it to connect the RITlug Slack to IRC channels on Freenode (see IRC (Freenode)).

Maintenance

The FOSS@RIT Matterbridge instance is deployed on RITlug infrastructure hosted in RIT’s Institute Hall data center. Configuration and deployment details are managed in FOSSRIT/infrastructure as an Ansible Role. The upstream Ansible Role is maintained at jwflory/ansible-role-matterbridge.

Upgrading

Upgrading Matterbridge requires changing two variables in the Ansible Role:

  1. Version number (matterbridge_config.version)
  2. Binary checksum (matterbridge_config.binary_checksum)

Both the version and binary checksum are found on Matterbridge’s releases page. You can find the binary checksum in the checksums.txt file, attached as an artifact to Matterbridge releases. We use the hash for the linux-64bit compiled binary.

See the following pull requests for examples:

TeleIRC

TeleIRC is an open source chat bridge for connecting Telegram groups to IRC channels. It is maintained by the RIT Linux Users Group. Currently, FOSS@RIT uses it to connect various Telegram groups to IRC channels on Freenode (see Telegram, IRC (Freenode)).

Maintenance

All FOSS@RIT TeleIRC instances are deployed on RITlug infrastructure hosted in RIT’s Institute Hall data center. Configuration and deployment details are managed in FOSSRIT/infrastructure as an Ansible Role. The upstream Ansible Role is maintained at jwflory/ansible-role-teleirc.

Upgrading

There are two types of upgrades: TeleIRC and the Ansible Role.

TeleIRC

Only one variable in the Ansible Role needs to be changed in most cases: default_version. Change this variable to the targeted version and run the Ansible playbook to deploy the update.

See the following pull requests for examples:

Ansible Role

Occasionally the upstream Ansible Role will change. When this happens, the Ansible Role needs to be upgraded in the downstream repository, i.e. FOSSRIT/infrastructure. The upgrade can be done from the root directory of the repo with the following commands:

ansible-galaxy role install --force jwflory.teleirc
git checkout HEAD roles/jwflory.teleirc/vars/{main,vault}.yml

An example of an upgrade is found in FOSSRIT/infrastructure@75c0bbc.