3
0
mirror of https://github.com/42wim/matterbridge.git synced 2024-12-22 03:02:39 +01:00
Go to file
2017-07-14 00:28:46 +02:00
.github Update issue template 2017-07-08 12:25:52 +02:00
bridge Lookup bot username (slack). 2017-07-10 21:58:43 +02:00
gateway Replace :emoji: with unicode chars. 2017-07-09 14:00:28 +02:00
hook/rockethook Add initial Rocket.Chat support 2016-12-03 00:10:29 +01:00
matterclient Add GetFileLinks, also get files if public links is disabled 2017-07-12 22:47:30 +02:00
matterhook Add ReadTimeout to close lingering connections (mattermost). See 2017-02-21 22:13:34 +01:00
vendor Replace :emoji: with unicode chars. 2017-07-09 14:00:28 +02:00
.travis.yml Update travis 2017-07-14 00:28:46 +02:00
changelog.md Release v0.16.0 2017-07-09 15:37:59 +02: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 2017-07-10 21:59:17 +02:00
matterbridge.toml.sample Add UseInsecureURL option (telegram) 2017-07-04 01:35:30 +02:00
matterbridge.toml.simple Add note about file permissions 2017-06-08 23:42:00 +02:00
migration.md Add migration info 2016-07-12 01:23:36 +02:00
README-0.6.md Update documentation 2016-09-18 21:04:28 +02:00
README.md Update readme 2017-07-10 22:21:11 +02: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

matterbridge.gif

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

Table of Contents

Features

  • Relays public channel messages between multiple mattermost, IRC, XMPP, Gitter, Slack, Discord, Telegram, Rocket.Chat, Hipchat (via xmpp), Matrix and Steam. 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.10.x, 4.0.x * IRC * XMPP * Gitter * Slack * Discord * Telegram * Hipchat * Rocket.chat * Matrix * Steam

Installing

Binaries

Binaries can be found [here] (https://github.com/42wim/matterbridge/releases/) * Latest stable release v0.16.0

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

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]
    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]
[slack.test]
useAPI=true
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

  1. Copy the matterbridge.toml.sample to matterbridge.toml
  2. Edit matterbridge.toml with the settings for your environment.
  3. Now you can run matterbridge. (./matterbridge)

(Matterbridge will only look for the config file in your current directory, if it isnt there specify -conf “/path/toyour/matterbridge.toml”)

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

Please look at matterbridge.toml.sample for more information first.

Mattermost doesnt show the IRC nicks

If youre running the webhooks version, this can be fixed by either: * enabling “override usernames”. See mattermost documentation * setting PrefixMessagesWithNick to true in mattermost section of your matterbridge.toml.

If youre running the API version youll need to: * setting PrefixMessagesWithNick to true in mattermost section of your matterbridge.toml.

Also look at the RemoteNickFormat setting.

Thanks

Matterbridge wouldnt exist without these libraries: * discord - https://github.com/bwmarrin/discordgo * echo - https://github.com/labstack/echo * gitter - https://github.com/sromku/go-gitter * gops - https://github.com/google/gops * 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 * steam - https://github.com/Philipp15b/go-steam * telegram - https://github.com/go-telegram-bot-api/telegram-bot-api * xmpp - https://github.com/mattn/go-xmpp