2015-10-23 13:34:37 -07:00
# matterbridge
2015-10-23 13:39:03 -07:00
Simple bridge between mattermost and IRC. Uses the in/outgoing webhooks.
Relays public channel messages between mattermost and IRC.
2015-10-23 13:34:37 -07:00
2015-12-08 15:42:50 -08:00
Requires mattermost 1.2.0+
2015-10-23 13:34:37 -07:00
2015-12-20 07:21:30 -08:00
There is also [matterbridge-plus] (https://github.com/42wim/matterbridge-plus) which uses the mattermost API and needs a dedicated user (bot). But requires no incoming/outgoing webhook setup.
2015-10-23 14:02:14 -07:00
## binaries
2016-06-23 11:31:12 -07:00
Binaries can be found [here] (https://github.com/42wim/matterbridge/releases/tag/v0.4.2)
2015-10-23 14:02:14 -07:00
2015-10-23 13:34:37 -07:00
## building
2016-04-25 12:40:26 -07:00
Go 1.6+ is required. Make sure you have [Go ](https://golang.org/doc/install ) properly installed, including setting up your [GOPATH] (https://golang.org/doc/code.html#GOPATH)
2015-10-23 13:34:37 -07:00
```
cd $GOPATH
2015-10-30 01:57:23 -07:00
go get github.com/42wim/matterbridge
2015-10-23 13:34:37 -07:00
```
You should now have matterbridge binary in the bin directory:
```
$ ls bin/
matterbridge
```
## running
2015-10-23 13:39:03 -07:00
1) Copy the matterbridge.conf.sample to matterbridge.conf in the same directory as the matterbridge binary.
2) Edit matterbridge.conf with the settings for your environment. See below for more config information.
2015-12-19 07:55:49 -08:00
3) Now you can run matterbridge.
```
Usage of matterbridge:
-conf="matterbridge.conf": config file
```
2015-10-23 13:34:37 -07:00
Matterbridge will:
* start a webserver listening on the port specified in the configuration.
* connect to specified irc server and channel.
* send messages from mattermost to irc and vice versa, messages in mattermost will appear with irc-nick
## config
### matterbridge
2015-12-19 07:55:49 -08:00
matterbridge looks for matterbridge.conf in current directory. (use -conf to specify another file)
2015-10-23 13:34:37 -07:00
Look at matterbridge.conf.sample for an example
```
[IRC]
server="irc.freenode.net"
port=6667
2016-07-11 13:55:58 -07:00
#default no TLS connection to irc server
2015-10-23 13:34:37 -07:00
UseTLS=false
2016-07-11 13:55:58 -07:00
#do not check the certificate if we use TLS (allows for selfsigned certificates)
2015-10-23 13:34:37 -07:00
SkipTLSVerify=true
nick="matterbot"
2016-06-16 12:01:46 -07:00
#Freenode nickserv
NickServNick="nickserv"
#Password for nickserv
NickServPassword="secret"
2016-05-21 07:03:19 -07:00
#Ignore the messages from these nicks. They will not be sent to mattermost
IgnoreNicks="ircspammer1 ircspammer2"
2015-10-23 13:34:37 -07:00
[mattermost]
#url is your incoming webhook url (account settings - integrations - incoming webhooks)
url="http://mattermost.yourdomain.com/hooks/incomingwebhookkey"
#port the bridge webserver will listen on
port=9999
2015-12-12 12:26:53 -08:00
#address the webserver will bind to
BindAddress="0.0.0.0"
2015-10-24 07:39:01 -07:00
showjoinpart=true #show irc users joining and parting
2016-07-11 13:55:58 -07:00
#the token you get from the outgoing webhook in mattermost.
Token="outgoingwebhooktoken1"
2015-10-24 16:00:19 -07:00
#disable certificate checking (selfsigned certificates)
#SkipTLSVerify=true
2016-03-18 12:54:14 -07:00
#whether to prefix messages from IRC to mattermost with the sender's nick. Useful if username overrides for incoming webhooks isn't enabled on the mattermost server
PrefixMessagesWithNick=false
#how to format the list of IRC nicks when displayed in mattermost. Possible options are "table" and "plain"
NickFormatter=plain
#how many nicks to list per row for formatters that support this
NicksPerRow=4
2016-05-21 07:03:19 -07:00
#Ignore the messages from these nicks. They will not be sent to irc
IgnoreNicks="mmbot spammer2"
2015-10-27 16:04:57 -07:00
2015-12-19 07:55:49 -08:00
#multiple channel config
2016-07-11 13:55:58 -07:00
[Channel "channel1"]
IRC="#off-topic"
mattermost="off-topic"
[Channel "testchannel"]
IRC="#testing"
mattermost="testing"
2015-12-19 07:55:49 -08:00
2015-10-27 16:04:57 -07:00
[general]
#request your API key on https://github.com/giphy/GiphyAPI. This is a public beta key
GiphyApiKey="dc6zaTOxFJmzC"
2015-10-23 13:34:37 -07:00
```
### mattermost
You'll have to configure the incoming en outgoing webhooks.
* incoming webhooks
2015-10-23 13:39:03 -07:00
Go to "account settings" - integrations - "incoming webhooks".
Choose a channel at "Add a new incoming webhook", this will create a webhook URL right below.
This URL should be set in the matterbridge.conf in the [mattermost] section (see above)
2015-10-23 13:34:37 -07:00
* outgoing webhooks
2015-10-23 13:39:03 -07:00
Go to "account settings" - integrations - "outgoing webhooks".
Choose a channel (the same as the one from incoming webhooks) and fill in the address and port of the server matterbridge will run on.
2015-10-23 13:34:37 -07:00
e.g. http://192.168.1.1:9999 (9999 is the port specified in [mattermost] section of matterbridge.conf)