Skip to content

Commit 658b701

Browse files
author
Tony Olagbaiye
committed
Various changes and rebase
1 parent fe3d734 commit 658b701

File tree

189 files changed

+12994
-6801
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

189 files changed

+12994
-6801
lines changed

.github/ISSUE_TEMPLATE.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
If you have a configuration problem, please first try to create a basic configuration following the instructions on [the wiki](https://github.com/Subluminal/matterbridge/wiki/How-to-create-your-config) before filing an issue.
2+
13
Please answer the following questions.
24

35
### Which version of matterbridge are you using?

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@ RUN apk update && apk add go git gcc musl-dev ca-certificates \
66
&& cd /go/src/github.com/Subluminal/matterbridge \
77
&& export GOPATH=/go \
88
&& go get \
9-
&& go build -o /bin/matterbridge \
9+
&& go build -x -ldflags "-X main.githash=$(git log --pretty=format:'%h' -n 1)" -o /bin/matterbridge \
1010
&& rm -rf /go \
1111
&& apk del --purge git go gcc musl-dev

README.md

Lines changed: 141 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,43 @@
11
# matterbridge
2-
![matterbridge.gif](https://s15.postimg.org/qpjhp6y3f/matterbridge.gif)
2+
Click on one of the badges below to join the chat
33

4-
Simple bridge between mattermost, IRC, XMPP, Gitter, Slack, Discord, Telegram, Rocket.Chat and Hipchat(via xmpp).
4+
[![Gitter](https://img.shields.io/gitter/room/nwjs/nw.js.svg?colorB=42f4242)](https://gitter.im/Subluminal/matterbridge) [![Join the IRC chat at https://webchat.freenode.net/?channels=matterbridgechat](https://img.shields.io/badge/IRC-matterbridgechat-green.svg?colorB=42f4242)](https://webchat.freenode.net/?channels=matterbridgechat) [![Discord](https://img.shields.io/badge/discord-matterbridge-green.svg?colorB=42f4242)](https://discord.gg/AkKPtrQ) [![Matrix](https://img.shields.io/badge/matrix-matterbridge-green.svg?colorB=42f4242)](https://riot.im/app/#/room/#matterbridge:matrix.org) [![Slack](https://img.shields.io/badge/slack-matterbridgechat-green.svg?colorB=42f4242)](https://join.slack.com/matterbridgechat/shared_invite/MjEwODMxNjU1NDMwLTE0OTk2MTU3NTMtMzZkZmRiNDZhOA) [![Mattermost](https://img.shields.io/badge/mattermost-matterbridge-green.svg?colorB=42f4242)](https://framateam.org/signup_user_complete/?id=tfqm33ggop8x3qgu4boeieta6e) ![Xmpp](https://img.shields.io/badge/[email protected]?colorB=42f4242)
55

6-
* Relays public channel messages between multiple mattermost, IRC, XMPP, Gitter, Slack, Discord, Telegram, Rocket.Chat and Hipchat (via xmpp). Pick and mix.
7-
* Supports multiple channels.
8-
* Matterbridge can also work with private groups on your mattermost.
9-
* Allow for bridging the same bridges, which means you can eg bridge between multiple mattermosts.
10-
* The bridge is now a gateway which has support multiple in and out bridges. (and supports multiple gateways).
11-
12-
Look at [matterbridge.toml.sample](https://github.com/Subluminal/matterbridge/blob/master/matterbridge.toml.sample) for documentation and an example.
13-
Look at [matterbridge.toml.simple](https://github.com/Subluminal/matterbridge/blob/master/matterbridge.toml.simple) for a simple example.
6+
[![Download stable](https://img.shields.io/github/release/Subluminal/matterbridge.svg?label=download%20stable)](https://github.com/Subluminal/matterbridge/releases/latest) [![Download dev](https://img.shields.io/bintray/v/Subluminal/nightly/Matterbridge.svg?label=download%20dev&colorB=007ec6)](https://bintray.com/Subluminal/nightly/Matterbridge/_latestVersion)
147

8+
![matterbridge.gif](https://s15.postimg.org/qpjhp6y3f/matterbridge.gif)
159

16-
## Changelog
17-
Since v0.7.0 the configuration has changed. More details in [changelog.md](https://github.com/Subluminal/matterbridge/blob/master/changelog.md)
10+
Simple bridge between Mattermost, IRC, XMPP, Gitter, Slack, Discord, Telegram, Rocket.Chat, Hipchat(via xmpp), Matrix and Steam.
11+
Has a REST API.
12+
13+
# Table of Contents
14+
* [Features](#features)
15+
* [Requirements](#requirements)
16+
* [Screenshots](https://github.com/Subluminal/matterbridge/wiki/)
17+
* [Installing](#installing)
18+
* [Binaries](#binaries)
19+
* [Building](#building)
20+
* [Configuration](#configuration)
21+
* [Howto](https://github.com/Subluminal/matterbridge/wiki/How-to-create-your-config)
22+
* [Examples](#examples)
23+
* [Running](#running)
24+
* [Docker](#docker)
25+
* [Changelog](#changelog)
26+
* [FAQ](#faq)
27+
* [Thanks](#thanks)
28+
29+
# Features
30+
* Relays public channel messages between multiple mattermost, IRC, XMPP, Gitter, Slack, Discord, Telegram, Rocket.Chat, Hipchat (via xmpp), Matrix and Steam.
31+
Pick and mix.
32+
* Support private groups on your mattermost/slack.
33+
* Allow for bridging the same bridges, which means you can eg bridge between multiple mattermosts.
34+
* The bridge is now a gateway which has support multiple in and out bridges. (and supports multiple gateways).
35+
* Edits and delete messages across bridges that support it (mattermost,slack,discord,gitter,telegram)
36+
* REST API to read/post messages to bridges (WIP).
1837

19-
## Requirements
38+
# Requirements
2039
Accounts to one of the supported bridges
21-
* [Mattermost](https://github.com/mattermost/platform/)
40+
* [Mattermost](https://github.com/mattermost/platform/) 3.8.x - 3.10.x, 4.x
2241
* [IRC](http://www.mirc.com/servers.html)
2342
* [XMPP](https://jabber.org)
2443
* [Gitter](https://gitter.im)
@@ -27,35 +46,19 @@ Accounts to one of the supported bridges
2746
* [Telegram](https://telegram.org)
2847
* [Hipchat](https://www.hipchat.com)
2948
* [Rocket.chat](https://rocket.chat)
49+
* [Matrix](https://matrix.org)
50+
* [Steam](https://store.steampowered.com/)
3051

31-
## Docker
32-
Create your matterbridge.toml file locally eg in ```/tmp/matterbridge.toml```
33-
```
34-
docker run -ti -v /tmp/matterbridge.toml:/matterbridge.toml Subluminal/matterbridge
35-
```
36-
37-
## binaries
38-
Binaries can be found [here](https://github.com/Subluminal/matterbridge/releases/)
39-
* For use with mattermost 3.5.0+ [v0.9.0](https://github.com/Subluminal/matterircd/releases/tag/v0.9.0)
40-
* For use with mattermost 3.3.0 - 3.4.0 [v0.7.1](https://github.com/Subluminal/matterircd/releases/tag/v0.7.1)
41-
* For use with mattermost 3.0.0 - 3.2.0 [v0.5.0](https://github.com/Subluminal/matterircd/releases/tag/v0.5.0) (not maintained anymore)
42-
43-
## Compatibility
44-
### Mattermost
45-
* Matterbridge v0.9.0 works with mattermost 3.5.0+ [3.5.1 release](https://github.com/mattermost/platform/releases/tag/v3.5.1)
46-
* Matterbridge v0.7.1 works with mattermost 3.3.0 - 3.4.0 [3.4.0 release](https://github.com/mattermost/platform/releases/tag/v3.4.0)
47-
* Matterbridge v0.5.0 works with mattermost 3.0.0 - 3.2.0 [3.2.0 release](https://github.com/mattermost/platform/releases/tag/v3.2.0)
48-
52+
# Screenshots
53+
See https://github.com/Subluminal/matterbridge/wiki
4954

50-
#### Webhooks version
51-
* Configured incoming/outgoing [webhooks](https://www.mattermost.org/webhooks/) on your mattermost instance.
55+
# Installing
56+
## Binaries
57+
* Latest stable release [v1.3.1](https://github.com/Subluminal/matterbridge/releases/latest)
58+
* Development releases (follows master) can be downloaded [here](https://dl.bintray.com/Subluminal/nightly/)
5259

53-
#### API version
54-
* A dedicated user(bot) on your mattermost instance.
55-
56-
57-
## building
58-
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)
60+
## Building
61+
Go 1.7+ 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)
5962

6063
```
6164
cd $GOPATH
@@ -69,50 +72,113 @@ $ ls bin/
6972
matterbridge
7073
```
7174

72-
## running
73-
1) Copy the matterbridge.conf.sample to matterbridge.conf in the same directory as the matterbridge binary.
74-
2) Edit matterbridge.conf with the settings for your environment. See below for more config information.
75-
3) Now you can run matterbridge.
75+
# Configuration
76+
## Basic configuration
77+
See [howto](https://github.com/Subluminal/matterbridge/wiki/How-to-create-your-config) for a step by step walkthrough for creating your configuration.
78+
79+
## Advanced configuration
80+
* [matterbridge.toml.sample](https://github.com/Subluminal/matterbridge/blob/master/matterbridge.toml.sample) for documentation and an example.
81+
82+
## Examples
83+
### Bridge mattermost (off-topic) - irc (#testing)
84+
```
85+
[irc]
86+
[irc.freenode]
87+
Server="irc.freenode.net:6667"
88+
Nick="yourbotname"
89+
90+
[mattermost]
91+
[mattermost.work]
92+
Server="yourmattermostserver.tld"
93+
Team="yourteam"
94+
Login="yourlogin"
95+
Password="yourpass"
96+
PrefixMessagesWithNick=true
97+
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
98+
99+
[[gateway]]
100+
name="mygateway"
101+
enable=true
102+
[[gateway.inout]]
103+
account="irc.freenode"
104+
channel="#testing"
105+
106+
[[gateway.inout]]
107+
account="mattermost.work"
108+
channel="off-topic"
109+
```
110+
111+
### Bridge slack (#general) - discord (general)
112+
```
113+
[slack]
114+
[slack.test]
115+
Token="yourslacktoken"
116+
PrefixMessagesWithNick=true
117+
118+
[discord]
119+
[discord.test]
120+
Token="yourdiscordtoken"
121+
Server="yourdiscordservername"
122+
123+
[general]
124+
RemoteNickFormat="[{PROTOCOL}/{BRIDGE}] <{NICK}> "
125+
126+
[[gateway]]
127+
name = "mygateway"
128+
enable=true
129+
130+
[[gateway.inout]]
131+
account = "discord.test"
132+
channel="general"
133+
134+
[[gateway.inout]]
135+
account ="slack.test"
136+
channel = "general"
137+
```
138+
139+
# Running
140+
141+
See [howto](https://github.com/Subluminal/matterbridge/wiki/How-to-create-your-config) for a step by step walkthrough for creating your configuration.
76142

77143
```
78144
Usage of ./matterbridge:
79145
-conf string
80146
config file (default "matterbridge.toml")
81147
-debug
82148
enable debug
149+
-gops
150+
enable gops agent
83151
-version
84152
show version
85153
```
86154

87-
## config
88-
### matterbridge
89-
matterbridge looks for matterbridge.toml in current directory. (use -conf to specify another file)
90-
91-
Look at [matterbridge.toml.sample](https://github.com/Subluminal/matterbridge/blob/master/matterbridge.toml.sample) for an example.
92-
93-
### mattermost
94-
#### webhooks version
95-
You'll have to configure the incoming and outgoing webhooks.
96-
97-
* incoming webhooks
98-
Go to "account settings" - integrations - "incoming webhooks".
99-
Choose a channel at "Add a new incoming webhook", this will create a webhook URL right below.
100-
This URL should be set in the matterbridge.conf in the [mattermost] section (see above)
101-
102-
* outgoing webhooks
103-
Go to "account settings" - integrations - "outgoing webhooks".
104-
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.
105-
106-
e.g. http://192.168.1.1:9999 (192.168.1.1:9999 is the BindAddress specified in [mattermost] section of matterbridge.conf)
107-
108-
## FAQ
109-
Please look at [matterbridge.toml.sample](https://github.com/Subluminal/matterbridge/blob/master/matterbridge.toml.sample) for more information first.
110-
### Mattermost doesn't show the IRC nicks
111-
If you're running the webhooks version, this can be fixed by either:
112-
* enabling "override usernames". See [mattermost documentation](http://docs.mattermost.com/developer/webhooks-incoming.html#enabling-incoming-webhooks)
113-
* setting ```PrefixMessagesWithNick``` to ```true``` in ```mattermost``` section of your matterbridge.toml.
114-
115-
If you're running the plus version you'll need to:
116-
* setting ```PrefixMessagesWithNick``` to ```true``` in ```mattermost``` section of your matterbridge.toml.
155+
## Docker
156+
Create your matterbridge.toml file locally eg in ```/tmp/matterbridge.toml```
157+
```
158+
docker run -ti -v /tmp/matterbridge.toml:/matterbridge.toml Subluminal/matterbridge
159+
```
117160

118-
Also look at the ```RemoteNickFormat``` setting.
161+
# Changelog
162+
See [changelog.md](https://github.com/Subluminal/matterbridge/blob/master/changelog.md)
163+
164+
# FAQ
165+
166+
See [FAQ](https://github.com/Subluminal/matterbridge/wiki/FAQ)
167+
168+
Want to tip ?
169+
* eth: 0xb3f9b5387c66ad6be892bcb7bbc67862f3abc16f
170+
* btc: 1N7cKHj5SfqBHBzDJ6kad4BzeqUBBS2zhs
171+
172+
# Thanks
173+
Matterbridge wouldn't exist without these libraries:
174+
* discord - https://github.com/bwmarrin/discordgo
175+
* echo - https://github.com/labstack/echo
176+
* gitter - https://github.com/sromku/go-gitter
177+
* gops - https://github.com/google/gops
178+
* irc - https://github.com/thoj/go-ircevent
179+
* mattermost - https://github.com/mattermost/platform
180+
* matrix - https://github.com/matrix-org/gomatrix
181+
* slack - https://github.com/nlopes/slack
182+
* steam - https://github.com/Philipp15b/go-steam
183+
* telegram - https://github.com/go-telegram-bot-api/telegram-bot-api
184+
* xmpp - https://github.com/mattn/go-xmpp

0 commit comments

Comments
 (0)