.github | ||
bridge | ||
gateway | ||
hook/rockethook | ||
matterclient | ||
matterhook | ||
vendor | ||
changelog.md | ||
Dockerfile | ||
LICENSE | ||
matterbridge.go | ||
matterbridge.toml.sample | ||
matterbridge.toml.simple | ||
migration.md | ||
README-0.6.md | ||
README.md |
matterbridge
Simple bridge between Mattermost, IRC, XMPP, Gitter, Slack, Discord, Telegram, Rocket.Chat, Hipchat(via xmpp) and Matrix with REST API.
Table of Contents
Features
- Relays public channel messages between multiple mattermost, IRC, XMPP, Gitter, Slack, Discord, Telegram, Rocket.Chat, Hipchat (via xmpp) and Matrix. Pick and mix.
- Matterbridge can also work with private groups on your mattermost/slack.
- Allow for bridging the same bridges, which means you can eg bridge between multiple mattermosts.
- The bridge is now a gateway which has support multiple in and out bridges. (and supports multiple gateways).
- REST API to read/post messages to bridges (WIP).
Requirements
Accounts to one of the supported bridges
- Mattermost 3.5.x - 3.7.x
- IRC
- XMPP
- Gitter
- Slack
- Discord
- Telegram
- Hipchat
- Rocket.chat
- Matrix
Installing
Binaries
Binaries can be found [here] (https://github.com/42wim/matterbridge/releases/)
- Latest release v0.9.3
Building
Go 1.6+ 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
- matterbridge.toml.sample for documentation and an example.
- matterbridge.toml.simple for a simple example.
Examples
Bridge mattermost (off-topic) - irc (#testing)
[irc]
[irc.freenode]
Server="irc.freenode.net:6667"
Nick="yourbotname"
[mattermost]
[mattermost.work]
useAPI=true
Server="yourmattermostserver.tld"
Team="yourteam"
Login="yourlogin"
Password="yourpass"
PrefixMessagesWithNick=true
[[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.test]
Token="yourslacktoken"
PrefixMessagesWithNick=true
[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
- Copy the matterbridge.toml.sample to matterbridge.toml in the same directory as the matterbridge binary.
- Edit matterbridge.toml with the settings for your environment.
- Now you can run matterbridge. (
./matterbridge
)
Usage of ./matterbridge:
-conf string
config file (default "matterbridge.toml")
-debug
enable debug
-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
Please look at matterbridge.toml.sample for more information first.
Mattermost doesn't show the IRC nicks
If you're running the webhooks version, this can be fixed by either:
- enabling "override usernames". See mattermost documentation
- setting
PrefixMessagesWithNick
totrue
inmattermost
section of your matterbridge.toml.
If you're running the API version you'll need to:
- setting
PrefixMessagesWithNick
totrue
inmattermost
section of your matterbridge.toml.
Also look at the RemoteNickFormat
setting.
Thanks
Matterbridge wouldn't exist without these libraries:
- discord - https://github.com/bwmarrin/discordgo
- echo - https://github.com/labstack/echo
- gitter - https://github.com/sromku/go-gitter
- irc - https://github.com/thoj/go-ircevent
- mattermost - https://github.com/mattermost/platform
- matrix - https://github.com/matrix-org/gomatrix
- slack - https://github.com/nlopes/slack
- telegram - https://github.com/go-telegram-bot-api/telegram-bot-api
- xmpp - https://github.com/mattn/go-xmpp