2d277a15f5
Adds a new key OutMessage under [tengo] table, which specifies the location of the script that will be invoked on each message being sent to a bridge and can be used to modify the Username and the Text of that message. The script will have the following global variables: read-only: inAccount, inProtocol, inChannel, inGateway outAccount, outProtocol, outChannel, outGateway read-write: msgText, msgUsername The script is reloaded on every message, so you can modify the script on the fly. The default script in https://github.com/42wim/matterbridge/tree/master/internal/tengo/outmessage.tengo is compiled in and will be executed if no script is specified. |
||
---|---|---|
.github | ||
bridge | ||
ci | ||
contrib | ||
docker/arm | ||
gateway | ||
hook/rockethook | ||
img | ||
internal | ||
matterclient | ||
matterhook | ||
vendor | ||
.golangci.yaml | ||
.goreleaser.yml | ||
.travis.yml | ||
changelog.md | ||
Dockerfile | ||
go.mod | ||
go.sum | ||
LICENSE | ||
matterbridge.go | ||
matterbridge.toml.sample | ||
matterbridge.toml.simple | ||
README.md |
matterbridge
A simple chat
bridge
Letting people be where they want to be.
Bridges between a growing number of protocols. Click below to demo
or join the development chat.
Gitter | IRC | Discord | Matrix | Slack | Mattermost | Rocket.Chat | XMPP | Twitch | WhatsApp | Zulip | Telegram | And more…
Note: Mattermost isn’t required to run matterbridge.
Table of Contents
- Features
- Chat with us
- Screenshots
- Installing
- Building
- Configuration
- Running
- Changelog
- FAQ
- Related projects
- Articles
- Thanks
Features
- Support bridging between any protocols
- Support multiple gateways(bridges) for your protocols
- Message edits and deletes
- Preserves threading when possible
- Attachment / files handling
- Username and avatar spoofing
- Private groups
- API
Natively supported
- Mattermost 4.x, 5.x
- IRC
- XMPP
- Gitter
- Slack
- Discord
- Telegram
- Rocket.chat
- Matrix
- Steam
- Twitch
- Ssh-chat
- Zulip
3rd party via matterbridge api
API
The API is basic at the moment. More info and examples on the wiki.
Used by the projects below. Feel free to make a PR to add your project to this list.
- MatterLink (Matterbridge link for Minecraft Server chat)
- pyCord (crossplatform chatbot)
- Mattereddit (Reddit chat support)
- fbridge (Facebook messenger support)
- matterbabble (Discourse support)
Chat with us
Questions or want to test on your favorite platform? Join below:
- Gitter
- IRC
- Discord
- Matrix
- Slack
- Mattermost
- Rocket.Chat
- XMPP (matterbridge@conference.jabber.de)
- Twitch
- Zulip
- Telegram
Screenshots
See https://github.com/42wim/matterbridge/wiki
Installing
Binaries
Packages
Building
Go 1.9+ is required. Make sure you have Go properly installed, including setting up your GOPATH.
After Go is setup, download matterbridge to your $GOPATH directory.
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.
Settings
All possible settings for each bridge.
Advanced configuration
- matterbridge.toml.sample for documentation and an example.
Examples
Bridge mattermost (off-topic) - irc (#testing)
[irc]
[irc.freenode]
Server="irc.freenode.net:6667"
Nick="yourbotname"
[mattermost]
[mattermost.work]
Server="yourmattermostserver.tld"
Team="yourteam"
Login="yourlogin"
Password="yourpass"
PrefixMessagesWithNick=true
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
[[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]
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
See howto for a step by step walkthrough for creating your configuration.
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
See FAQ
Related projects
- FOSSRIT/infrastructure - roles/matterbridge (Ansible role used to automate deployments of Matterbridge)
- matterbridge autoconfig
- matterbridge config viewer
- matterbridge-heroku
- mattereddit
- matterlink
- mattermost-plugin - Run matterbridge as a plugin in mattermost
- pyCord (crossplatform chatbot)
- fbridge (Facebook messenger support)
- isla (Bot for Discord-Telegram groups used alongside matterbridge)
- matterbabble (Connect Discourse threads to Matterbridge)
Articles
- matterbridge on kubernetes
- https://mattermost.com/blog/connect-irc-to-mattermost/
- https://blog.valvin.fr/2016/09/17/mattermost-et-un-channel-irc-cest-possible/
- https://blog.brightscout.com/top-10-mattermost-integrations/
- http://bencey.co.nz/2018/09/17/bridge/
- https://www.algoo.fr/blog/2018/01/19/recouvrez-votre-liberte-en-quittant-slack-pour-un-mattermost-auto-heberge/
- https://kopano.com/blog/matterbridge-bridging-mattermost-chat/
- https://www.stitcher.com/s/?eid=52382713
- https://daniele.tech/2019/02/how-to-use-matterbridge-to-connect-2-different-slack-workspaces/
Thanks
This project is supported by:
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 * gops - https://github.com/google/gops * gozulipbot - https://github.com/ifo/gozulipbot * irc - https://github.com/lrstanley/girc * mattermost - https://github.com/mattermost/mattermost-server * matrix - https://github.com/matrix-org/gomatrix * sshchat - https://github.com/shazow/ssh-chat * 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 * whatsapp - https://github.com/Rhymen/go-whatsapp/ * zulip - https://github.com/ifo/gozulipbot * tengo - https://github.com/d5/tengo