diff --git a/README.md b/README.md index daf06685..bfcc3761 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,20 @@ # matterbridge -Simple bridge between mattermost and IRC. Uses the in/outgoing webhooks. -Relays public channel messages between mattermost and IRC. +Simple bridge between mattermost and IRC. -Requires mattermost 1.2.0+ +* Relays public channel messages between mattermost and IRC. +* Supports multiple mattermost and irc channels. +* Matterbridge -plus also works with private groups on your mattermost. -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. +## Requirements: +* [Mattermost] (https://github.com/mattermost/platform/) 3.x (stable, not a dev build) +### Webhooks version +* Configured incoming/outgoing [webhooks](https://www.mattermost.org/webhooks/) on your mattermost instance. +### Plus (API) version +* A dedicated user(bot) on your mattermost instance. ## binaries -Binaries can be found [here] (https://github.com/42wim/matterbridge/releases/tag/v0.4.2) +Binaries can be found [here] (https://github.com/42wim/matterbridge/releases/tag/v0.5) ## building 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) @@ -42,11 +48,6 @@ Usage of ./matterbridge: show version ``` -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 matterbridge looks for matterbridge.conf in current directory. (use -conf to specify another file) @@ -54,7 +55,8 @@ matterbridge looks for matterbridge.conf in current directory. (use -conf to spe Look at [matterbridge.conf.sample] (https://github.com/42wim/matterbridge/blob/master/matterbridge.conf.sample) for an example. ### mattermost -You'll have to configure the incoming en outgoing webhooks. +#### webhooks version +You'll have to configure the incoming and outgoing webhooks. * incoming webhooks Go to "account settings" - integrations - "incoming webhooks". @@ -65,5 +67,8 @@ This URL should be set in the matterbridge.conf in the [mattermost] section (see 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. -e.g. http://192.168.1.1:9999 (9999 is the port specified in [mattermost] section of matterbridge.conf) +e.g. http://192.168.1.1:9999 (192.168.1.1:9999 is the BindAddress specified in [mattermost] section of matterbridge.conf) +#### plus version +You'll have to create a new dedicated user on your mattermost instance. +Specify the login and password in [mattermost] section of matterbridge.conf diff --git a/matterbridge.conf.sample b/matterbridge.conf.sample index ed0c76b5..8af6fc97 100644 --- a/matterbridge.conf.sample +++ b/matterbridge.conf.sample @@ -3,24 +3,36 @@ #IRC section ################################################################### [IRC] -#irc server to connect to. REQUIRED +#irc server to connect to. +#REQUIRED Server="irc.freenode.net:6667" -#Enable to use TLS connection to your irc server. OPTIONAL (default false) +#Enable to use TLS connection to your irc server. +#OPTIONAL (default false) UseTLS=false -#Enable to not verify the certificate on your irc server. OPTIONAL (default false) +#Enable to not verify the certificate on your irc server. i #e.g. when using selfsigned certificates +#OPTIONAL (default false) SkipTLSVerify=true -#Your nick on irc. REQUIRED +#Your nick on irc. +#REQUIRED Nick="matterbot" -#If you registered your bot with a service like Nickserv on freenode. OPTIONAL +#If you registered your bot with a service like Nickserv on freenode. +#OPTIONAL NickServNick="nickserv" NickServPassword="secret" -#Nicks you want to ignore. Messages from those users will not be sent to mattermost. OPTIONAL +#RemoteNickFormat defines how Mattermost users appear on irc +#The string "{NICK}" (case sensitive) will be replaced by the actual nick / username. +#OPTIONAL (default NICK:) +RemoteNickFormat="{NICK}: " + +#Nicks you want to ignore. +#Messages from those users will not be sent to mattermost. +#OPTIONAL IgnoreNicks="ircspammer1 ircspammer2" ################################################################### @@ -29,64 +41,88 @@ IgnoreNicks="ircspammer1 ircspammer2" [mattermost] #### Settings for webhook matterbridge. -#### These settings will not be used when using -plus switch which doesn't use webhooks. +#### These settings will not be used when using -plus switch which doesn't use +#### webhooks. -#Url is your incoming webhook url as specified in mattermost. REQUIRED +#Url is your incoming webhook url as specified in mattermost. #See account settings - integrations - incoming webhooks on mattermost. +#REQUIRED URL="https://yourdomain/hooks/yourhookkey" -#Address to listen on for outgoing webhook requests from mattermost. REQUIRED +#Address to listen on for outgoing webhook requests from mattermost. #See account settings - integrations - outgoing webhooks on mattermost. -#This setting will not be used when using -plus switch which doesn't use webhooks +#This setting will not be used when using -plus switch which doesn't use +#webhooks +#REQUIRED BindAddress="0.0.0.0:9999" -#Icon that will be showed in mattermost. OPTIONAL -#This setting will not be used when using -plus switch which doesn't use webhooks +#Icon that will be showed in mattermost. +#OPTIONAL IconURL="http://youricon.png" #### Settings for matterbridge -plus #### Thse settings will only be used when using the -plus switch. -#The mattermost hostname. REQUIRED +#The mattermost hostname. +#REQUIRED Server="yourmattermostserver.domain" -#Your team on mattermost. REQUIRED +#Your team on mattermost. +#REQUIRED Team="yourteam" -#login/pass of your bot. Use a dedicated user for this and not your own! REQUIRED +#login/pass of your bot. +#Use a dedicated user for this and not your own! +#REQUIRED Login="yourlogin" Password="yourpass" -#https by default. Disable to make a http connection to your mattermost. OPTIONAL (default false) +#Disable to make a http connection to your mattermost. +#OPTIONAL (default false) NoTLS=false #### Shared settings for matterbridge and -plus -#Enable to not verify the certificate on your mattermost server. OPTIONAL (default false) +#Enable to not verify the certificate on your mattermost server. #e.g. when using selfsigned certificates +#OPTIONAL (default false) SkipTLSVerify=true -#Enable to show IRC joins/parts in mattermost. OPTIONAL (default false) +#Enable to show IRC joins/parts in mattermost. +#OPTIONAL (default false) ShowJoinPart=false -#Whether to prefix messages from IRC to mattermost with the sender's nick. OPTIONAL (default false) -#Useful if username overrides for incoming webhooks isn't enabled on the mattermost server +#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. If you set PrefixMessagesWithNick to true, each message +#from IRC to Mattermost will by default be prefixed by "irc-" + nick. You can, +#however, modify how the messages appear, by setting (and modifying) RemoteNickFormat +#OPTIONAL (default false) PrefixMessagesWithNick=false -#how to format the list of IRC nicks when displayed in mattermost. OPTIONAL (default plain) +#RemoteNickFormat defines how IRC users appear on Mattermost. +#The string "{NICK}" (case sensitive) will be replaced by the actual nick / username. +#OPTIONAL (default irc-NICK) +RemoteNickFormat="irc-{NICK}" + +#how to format the list of IRC nicks when displayed in mattermost. #Possible options are "table" and "plain" +#OPTIONAL (default plain) NickFormatter=plain -#How many nicks to list per row for formatters that support this. OPTIONAL (default 4) +#How many nicks to list per row for formatters that support this. +#OPTIONAL (default 4) NicksPerRow=4 -#Nicks you want to ignore. Messages from those users will not be sent to IRC. OPTIONAL +#Nicks you want to ignore. Messages from those users will not be sent to IRC. +#OPTIONAL IgnoreNicks="mmbot spammer2" ################################################################### #multiple channel config ################################################################### -#You can specify multiple channels. REQUIRED (at least 1 channel) +#You can specify multiple channels. #The name is just an identifier for you. +#REQUIRED (at least 1 channel) [Channel "channel1"] #Choose the IRC channel to send mattermost messages to. IRC="#off-topic" @@ -101,5 +137,6 @@ mattermost="testing" #general ################################################################### [general] -#request your API key on https://github.com/giphy/GiphyAPI. This is a public beta key. OPTIONAL +#request your API key on https://github.com/giphy/GiphyAPI. This is a public beta key. +#OPTIONAL GiphyApiKey="dc6zaTOxFJmzC"