bridge between mattermost, IRC, gitter, xmpp, slack, discord, telegram, rocketchat, twitch, ssh-chat, zulip, whatsapp, keybase, matrix, microsoft teams, nextcloud, mumble, vk and more with REST API (mattermost not required!)
Go to file
Wim 7886f05e88 Download (and upload) avatar images from mattermost and telegram when mediaserver is configured. Closes #362
An extra avatarMap (cache) is created for mattermost and telegram.
If MediaServerUpload is configured, the avatar images of users are downloaded the first time a
user sends a message.
If this download succeeds a message with EVENT_AVATAR_DOWNLOAD is sent to the originating protocol.
This message also contains a SHA field (in msg.Extra["file"]), if this is not empty, the sha will
be added to the avatarMap. (so we now have a userid-sha cache)

Next time this user sends a message, the MediaServerUpload/sha/userid.png URL will be used as the
avatar field.
2018-02-20 01:15:25 +01:00
.github Update issue template 2018-02-15 22:35:29 +01:00
bridge Download (and upload) avatar images from mattermost and telegram when mediaserver is configured. Closes #362 2018-02-20 01:15:25 +01:00
ci Add darwin-amd64 to nightly builds 2017-09-09 14:42:45 +02:00
contrib Add systemd service file (#291) 2017-11-03 20:42:50 +01:00
docker/arm Use cmosh/alpine-arm to build arm docker images (#347) 2018-01-27 13:49:13 +01:00
gateway Download (and upload) avatar images from mattermost and telegram when mediaserver is configured. Closes #362 2018-02-20 01:15:25 +01:00
hook/rockethook Fix megacheck / go vet issues 2017-07-14 00:35:01 +02:00
matterclient Fix mattermost API change 2018-02-09 00:11:20 +01:00
matterhook Add props 2017-09-18 23:43:21 +02:00
vendor Fix role replace 2018-02-14 23:05:16 +01:00
.travis.yml Update travis to go 1.9 2017-08-29 20:34:32 +02:00
changelog.md Release v1.7.1 2018-01-29 12:35:35 +01:00
Dockerfile Add githash to docker builds 2017-02-17 22:32:42 +01:00
LICENSE Initial commit 2015-10-23 17:07:05 +02:00
matterbridge.go Bump version 2018-01-29 12:41:35 +01:00
matterbridge.toml.sample Add ShowTopicChange option. Allow/disable topic change messages (currently only from slack). Closes #353 2018-02-02 21:08:13 +01:00
matterbridge.toml.simple remove useAPI from sample configuration (#250) 2017-09-04 15:16:29 +02:00
README.md Update readme 2018-02-04 16:07:37 +01:00

matterbridge

Click on one of the badges below to join the chat

Gitter Join the IRC chat at https://webchat.freenode.net/?channels=matterbridgechat Discord Matrix Slack Mattermost Xmpp Twitch

Download stable Download dev

matterbridge.gif

Simple bridge between Mattermost, IRC, XMPP, Gitter, Slack, Discord, Telegram, Rocket.Chat, Hipchat(via xmpp), Matrix and Steam. Has a REST API.
Minecraft server chat support via MatterLink

Table of Contents

Features

API

The API is very basic at the moment and rather undocumented.

Used by at least 2 projects. Feel free to make a PR to add your project to this list.

  • MatterLink (Matterbridge link for Minecraft Server chat)
  • pyCord (crossplatform chatbot)

Requirements

Accounts to one of the supported bridges

Screenshots

See https://github.com/42wim/matterbridge/wiki

Installing

Binaries

  • Latest stable release v1.7.1
  • Development releases (follows master) can be downloaded here

Building

Go 1.8+ is required. Make sure you have Go properly installed, including setting up your [GOPATH] (https://golang.org/doc/code.html#GOPATH)

cd $GOPATH
go get github.com/42wim/matterbridge

You should now have matterbridge binary in the bin directory:

$ ls bin/
matterbridge

Configuration

Basic configuration

See howto for a step by step walkthrough for creating your configuration.

Advanced configuration

Examples

Bridge mattermost (off-topic) - irc (#testing)

[irc]
    [irc.freenode]
    Server="irc.freenode.net:6667"
    Nick="yourbotname"

[mattermost]
    [mattermost.work]
    Server="yourmattermostserver.tld"
    Team="yourteam"
    Login="yourlogin"
    Password="yourpass"
    PrefixMessagesWithNick=true
    RemoteNickFormat="[{PROTOCOL}] <{NICK}> "

[[gateway]]
name="mygateway"
enable=true
    [[gateway.inout]]
    account="irc.freenode"
    channel="#testing"

    [[gateway.inout]]
    account="mattermost.work"
    channel="off-topic"

Bridge slack (#general) - discord (general)

[slack]
[slack.test]
Token="yourslacktoken"
PrefixMessagesWithNick=true

[discord]
[discord.test]
Token="yourdiscordtoken"
Server="yourdiscordservername"

[general]
RemoteNickFormat="[{PROTOCOL}/{BRIDGE}] <{NICK}> "

[[gateway]]
    name = "mygateway"
    enable=true

    [[gateway.inout]]
    account = "discord.test"
    channel="general"

    [[gateway.inout]]
    account ="slack.test"
    channel = "general"

Running

See howto for a step by step walkthrough for creating your configuration.

Usage of ./matterbridge:
  -conf string
        config file (default "matterbridge.toml")
  -debug
        enable debug
  -gops
        enable gops agent
  -version
        show version

Docker

Create your matterbridge.toml file locally eg in /tmp/matterbridge.toml

docker run -ti -v /tmp/matterbridge.toml:/matterbridge.toml 42wim/matterbridge

Changelog

See changelog.md

FAQ

See FAQ

Want to tip ?

  • eth: 0xb3f9b5387c66ad6be892bcb7bbc67862f3abc16f
  • btc: 1N7cKHj5SfqBHBzDJ6kad4BzeqUBBS2zhs

Thanks

Matterbridge wouldn't exist without these libraries: