forked from jshiffer/matterbridge
df4d76e466
Add configuration option "Bind" that is passed on to girc, allowing to choose which IP address to use on systems that have multiple ones.
1974 lines
76 KiB
Plaintext
1974 lines
76 KiB
Plaintext
#This is configuration for matterbridge.
|
|
#WARNING: as this file contains credentials, be sure to set correct file permissions
|
|
#See https://github.com/42wim/matterbridge/wiki/How-to-create-your-config for how to create your config
|
|
#See https://github.com/42wim/matterbridge/wiki/Settings for all settings
|
|
###################################################################
|
|
#IRC section
|
|
###################################################################
|
|
#REQUIRED to start IRC section
|
|
[irc]
|
|
|
|
#You can configure multiple servers "[irc.name]" or "[irc.name2]"
|
|
#In this example we use [irc.libera]
|
|
#REQUIRED
|
|
[irc.libera]
|
|
#irc server to connect to.
|
|
#REQUIRED
|
|
Server="irc.libera.chat:6667"
|
|
|
|
#Password for irc server (if necessary)
|
|
#OPTIONAL (default "")
|
|
Password=""
|
|
|
|
#Enable to use TLS connection to your irc server.
|
|
#OPTIONAL (default false)
|
|
UseTLS=false
|
|
|
|
#Enable SASL (PLAIN) authentication. (libera requires this from eg AWS hosts)
|
|
#It uses NickServNick and NickServPassword as login and password
|
|
#OPTIONAL (default false)
|
|
UseSASL=false
|
|
|
|
#Enable to not verify the certificate on your irc server.
|
|
#e.g. when using selfsigned certificates
|
|
#OPTIONAL (default false)
|
|
SkipTLSVerify=true
|
|
|
|
#Local address to use for server connection
|
|
#Note that Server and Bind must resolve to addresses of the same family.
|
|
#OPTIONAL (default "")
|
|
Bind=""
|
|
|
|
#If you know your charset, you can specify it manually.
|
|
#Otherwise it tries to detect this automatically. Select one below
|
|
# "iso-8859-2:1987", "iso-8859-9:1989", "866", "latin9", "iso-8859-10:1992", "iso-ir-109", "hebrew",
|
|
# "cp932", "iso-8859-15", "cp437", "utf-16be", "iso-8859-3:1988", "windows-1251", "utf16", "latin6",
|
|
# "latin3", "iso-8859-1:1987", "iso-8859-9", "utf-16le", "big5", "cp819", "asmo-708", "utf-8",
|
|
# "ibm437", "iso-ir-157", "iso-ir-144", "latin4", "850", "iso-8859-5", "iso-8859-5:1988", "l3",
|
|
# "windows-31j", "utf8", "iso-8859-3", "437", "greek", "iso-8859-8", "l6", "l9-iso-8859-15",
|
|
# "iso-8859-2", "latin2", "iso-ir-100", "iso-8859-6", "arabic", "iso-ir-148", "us-ascii", "x-sjis",
|
|
# "utf16be", "iso-8859-8:1988", "utf16le", "l4", "utf-16", "iso-ir-138", "iso-8859-7", "iso-8859-7:1987",
|
|
# "windows-1252", "l2", "koi8-r", "iso8859-1", "latin1", "ecma-114", "iso-ir-110", "elot-928",
|
|
# "iso-ir-126", "iso-8859-1", "iso-ir-127", "cp850", "cyrillic", "greek8", "windows-1250", "iso-latin-1",
|
|
# "l5", "ibm866", "cp866", "ms-kanji", "ibm850", "ecma-118", "iso-ir-101", "ibm819", "l1", "iso-8859-6:1987",
|
|
# "latin5", "ascii", "sjis", "iso-8859-10", "iso-8859-4", "iso-8859-4:1988", "shift-jis
|
|
# The select charset will be converted to utf-8 when sent to other bridges.
|
|
#OPTIONAL (default "")
|
|
Charset=""
|
|
|
|
#Your nick on irc.
|
|
#REQUIRED
|
|
Nick="matterbot"
|
|
|
|
#Real name/gecos displayed in e.g. /WHOIS and /WHO
|
|
#OPTIONAL (defaults to the nick)
|
|
RealName="Matterbridge instance on IRC"
|
|
|
|
#IRC username/ident preceding the hostname in hostmasks and /WHOIS
|
|
#OPTIONAL (defaults to the nick)
|
|
UserName="bridge"
|
|
|
|
#If you registered your bot with a service like Nickserv on libera.
|
|
#Also being used when UseSASL=true
|
|
#
|
|
#Note: if you want do to quakenet auth, set NickServNick="Q@CServe.quakenet.org"
|
|
#OPTIONAL
|
|
NickServNick="nickserv"
|
|
NickServPassword="secret"
|
|
|
|
#OPTIONAL only used for quakenet auth
|
|
NickServUsername="username"
|
|
|
|
## RELOADABLE SETTINGS
|
|
## Settings below can be reloaded by editing the file
|
|
|
|
#Flood control
|
|
#Delay in milliseconds between each message send to the IRC server
|
|
#OPTIONAL (default 1300)
|
|
MessageDelay=1300
|
|
|
|
#Maximum amount of messages to hold in queue. If queue is full
|
|
#messages will be dropped.
|
|
#<clipped message> will be add to the message that fills the queue.
|
|
#OPTIONAL (default 30)
|
|
MessageQueue=30
|
|
|
|
#Maximum length of message sent to irc server. If it exceeds
|
|
#<clipped message> will be add to the message.
|
|
#OPTIONAL (default 400)
|
|
MessageLength=400
|
|
|
|
#Split messages on MessageLength instead of showing the <clipped message>
|
|
#WARNING: this could lead to flooding
|
|
#OPTIONAL (default false)
|
|
MessageSplit=false
|
|
|
|
#Message to show when a message is too big
|
|
#Default "<clipped message>"
|
|
MessageClipped="<clipped message>"
|
|
|
|
#Delay in seconds to rejoin a channel when kicked
|
|
#OPTIONAL (default 0)
|
|
RejoinDelay=0
|
|
|
|
#ColorNicks will show each nickname in a different color.
|
|
#Only works in IRC right now.
|
|
ColorNicks=false
|
|
|
|
#RunCommands allows you to send RAW irc commands after connection
|
|
#Array of strings
|
|
#OPTIONAL (default empty)
|
|
RunCommands=["PRIVMSG user hello","PRIVMSG chanserv something"]
|
|
|
|
#PingDelay specifies how long to wait to send a ping to the irc server.
|
|
#You can use s for second, m for minute
|
|
#String
|
|
#OPTIONAL (default 1m)
|
|
PingDelay="1m"
|
|
|
|
#StripMarkdown strips markdown from messages
|
|
#OPTIONAL (default false)
|
|
StripMarkdown=false
|
|
|
|
#Nicks you want to ignore.
|
|
#Regular expressions supported
|
|
#Messages from those users will not be sent to other bridges.
|
|
#OPTIONAL
|
|
IgnoreNicks="ircspammer1 ircspammer2"
|
|
|
|
#Messages you want to ignore.
|
|
#Messages matching these regexp will be ignored and not sent to other bridges
|
|
#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
|
|
#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
|
|
IgnoreMessages="^~~ badword"
|
|
|
|
#messages you want to replace.
|
|
#it replaces outgoing messages from the bridge.
|
|
#so you need to place it by the sending bridge definition.
|
|
#regular expressions supported
|
|
#some examples:
|
|
#this replaces cat => dog and sleep => awake
|
|
#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
|
|
#this replaces every number with number. 123 => numbernumbernumber
|
|
#replacemessages=[ ["[0-9]","number"] ]
|
|
#optional (default empty)
|
|
ReplaceMessages=[ ["cat","dog"] ]
|
|
|
|
#nicks you want to replace.
|
|
#see replacemessages for syntaxa
|
|
#optional (default empty)
|
|
ReplaceNicks=[ ["user--","user"] ]
|
|
|
|
#Extractnicks is used to for example rewrite messages from other relaybots
|
|
#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
|
|
#some examples:
|
|
#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
|
|
#you can use multiple entries for multiplebots
|
|
#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
|
|
#OPTIONAL (default empty)
|
|
ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
|
|
|
|
#extra label that can be used in the RemoteNickFormat
|
|
#optional (default empty)
|
|
Label=""
|
|
|
|
#RemoteNickFormat defines how remote users appear on this bridge
|
|
#See [general] config section for default options
|
|
#The string "{NOPINGNICK}" (case sensitive) will be replaced by the actual nick / username, but with a ZWSP inside the nick, so the irc user with the same nick won't get pinged. See https://github.com/42wim/matterbridge/issues/175 for more information
|
|
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
|
|
|
|
#Enable to show users joins/parts from other bridges
|
|
#Currently works for messages from the following bridges: irc, mattermost, slack, discord
|
|
#OPTIONAL (default false)
|
|
ShowJoinPart=false
|
|
|
|
#Enable to show verbose users joins/parts (ident@host) from other bridges
|
|
#Currently works for messages from the following bridges: irc
|
|
#OPTIONAL (default false)
|
|
VerboseJoinPart=false
|
|
|
|
#Do not send joins/parts to other bridges
|
|
#Currently works for messages from the following bridges: irc, mattermost, slack
|
|
#OPTIONAL (default false)
|
|
NoSendJoinPart=false
|
|
|
|
#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
|
|
#It will strip other characters from the nick
|
|
#OPTIONAL (default false)
|
|
StripNick=false
|
|
|
|
#Enable to show topic changes from other bridges
|
|
#Only works hiding/show topic changes from slack bridge for now
|
|
#OPTIONAL (default false)
|
|
ShowTopicChange=false
|
|
|
|
#Delay in milliseconds between channel joins
|
|
#Only useful when you have a LOT of channels to join
|
|
#See https://github.com/42wim/matterbridge/issues/1084
|
|
#OPTIONAL (default 0)
|
|
JoinDelay=0
|
|
|
|
#Use the optional RELAYMSG extension for username spoofing on IRC.
|
|
#This requires an IRCd that supports the draft/relaymsg specification: currently this includes
|
|
#Oragono 2.4.0+ and InspIRCd 3 with the m_relaymsg contrib module.
|
|
#See https://github.com/42wim/matterbridge/issues/667#issuecomment-634214165 for more details.
|
|
#Spoofed nicks will use the configured RemoteNickFormat, replacing reserved IRC characters
|
|
#(!+%@&#$:'"?*,.) with a hyphen (-).
|
|
#On most configurations, the RemoteNickFormat must include a separator character such as "/".
|
|
#You should make sure that the settings here match your IRCd.
|
|
#This option overrides ColorNicks.
|
|
#OPTIONAL (default false)
|
|
UseRelayMsg=false
|
|
#RemoteNickFormat="{NICK}/{PROTOCOL}"
|
|
|
|
###################################################################
|
|
#XMPP section
|
|
###################################################################
|
|
[xmpp]
|
|
|
|
#You can configure multiple servers "[xmpp.name]" or "[xmpp.name2]"
|
|
#In this example we use [xmpp.jabber]
|
|
#REQUIRED
|
|
[xmpp.jabber]
|
|
#xmpp server to connect to.
|
|
#REQUIRED
|
|
Server="jabber.example.com:5222"
|
|
|
|
#Use anonymous MUC login
|
|
#OPTIONAL (default false)
|
|
Anonymous=false
|
|
|
|
#Jid
|
|
#REQUIRED if Anonymous=false
|
|
Jid="user@example.com"
|
|
|
|
#Password
|
|
#REQUIRED if Anonymous=false
|
|
Password="yourpass"
|
|
|
|
#MUC
|
|
#REQUIRED
|
|
Muc="conference.jabber.example.com"
|
|
|
|
#Your nick in the rooms
|
|
#REQUIRED
|
|
Nick="xmppbot"
|
|
|
|
#Enable to not verify the certificate on your xmpp server.
|
|
#e.g. when using selfsigned certificates
|
|
#OPTIONAL (default false)
|
|
SkipTLSVerify=true
|
|
|
|
#Enable to use plaintext connection to your XMPP server.
|
|
#OPTIONAL (default false)
|
|
NoTLS=true
|
|
|
|
## RELOADABLE SETTINGS
|
|
## Settings below can be reloaded by editing the file
|
|
|
|
#Nicks you want to ignore.
|
|
#Regular expressions supported
|
|
#Messages from those users will not be sent to other bridges.
|
|
#OPTIONAL
|
|
IgnoreNicks="ircspammer1 ircspammer2"
|
|
|
|
#Messages you want to ignore.
|
|
#Messages matching these regexp will be ignored and not sent to other bridges
|
|
#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
|
|
#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
|
|
IgnoreMessages="^~~ badword"
|
|
|
|
#Messages you want to replace.
|
|
#It replaces outgoing messages from the bridge.
|
|
#So you need to place it by the sending bridge definition.
|
|
#Regular expressions supported
|
|
#Some examples:
|
|
#This replaces cat => dog and sleep => awake
|
|
#ReplaceMessages=[ ["cat","dog"], ["sleep","awake"] ]
|
|
#This Replaces every number with number. 123 => numbernumbernumber
|
|
#ReplaceMessages=[ ["[0-9]","number"] ]
|
|
#OPTIONAL (default empty)
|
|
ReplaceMessages=[ ["cat","dog"] ]
|
|
|
|
#Nicks you want to replace.
|
|
#See ReplaceMessages for syntaxA
|
|
#OPTIONAL (default empty)
|
|
ReplaceNicks=[ ["user--","user"] ]
|
|
|
|
#Extractnicks is used to for example rewrite messages from other relaybots
|
|
#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
|
|
#some examples:
|
|
#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
|
|
#you can use multiple entries for multiplebots
|
|
#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
|
|
#OPTIONAL (default empty)
|
|
ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
|
|
|
|
#extra label that can be used in the RemoteNickFormat
|
|
#optional (default empty)
|
|
Label=""
|
|
|
|
#RemoteNickFormat defines how remote users appear on this bridge
|
|
#See [general] config section for default options
|
|
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
|
|
|
|
#Enable to show users joins/parts from other bridges
|
|
#Currently works for messages from the following bridges: irc, mattermost, slack, discord
|
|
#OPTIONAL (default false)
|
|
ShowJoinPart=false
|
|
|
|
#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
|
|
#It will strip other characters from the nick
|
|
#OPTIONAL (default false)
|
|
StripNick=false
|
|
|
|
#Enable to show topic changes from other bridges
|
|
#Only works hiding/show topic changes from slack bridge for now
|
|
#OPTIONAL (default false)
|
|
ShowTopicChange=false
|
|
|
|
#Enable sending messages using a webhook instead of regular MUC messages.
|
|
#Only works with a prosody server using mod_slack_webhook. Does not support editing.
|
|
#OPTIONAL (default "")
|
|
WebhookURL="https://yourdomain/prosody/msg/someid"
|
|
|
|
###################################################################
|
|
#mattermost section
|
|
###################################################################
|
|
[mattermost]
|
|
#You can configure multiple servers "[mattermost.name]" or "[mattermost.name2]"
|
|
#In this example we use [mattermost.work]
|
|
#REQUIRED
|
|
|
|
[mattermost.work]
|
|
#The mattermost hostname. (do not prefix it with http or https)
|
|
#REQUIRED (when not using webhooks)
|
|
Server="yourmattermostserver.domain"
|
|
|
|
#Your team on mattermost.
|
|
#REQUIRED (when not using webhooks)
|
|
Team="yourteam"
|
|
|
|
#login/pass of your bot.
|
|
#Use a dedicated user for this and not your own!
|
|
#REQUIRED (when not using webhooks)
|
|
Login="yourlogin"
|
|
Password="yourpass"
|
|
|
|
#personal access token of the bot.
|
|
#new feature since mattermost 4.1. See https://docs.mattermost.com/developer/personal-access-tokens.html
|
|
#OPTIONAL (you can use token instead of login/password)
|
|
#Token="abcdefghijklm"
|
|
|
|
#Enable this to make a http connection (instead of https) to your mattermost.
|
|
#OPTIONAL (default false)
|
|
NoTLS=false
|
|
|
|
#### Settings for webhook matterbridge.
|
|
#NOT RECOMMENDED TO USE INCOMING/OUTGOING WEBHOOK. USE DEDICATED BOT USER WHEN POSSIBLE!
|
|
#You don't need to configure this, if you have configured the settings
|
|
#above.
|
|
|
|
#Url is your incoming webhook url as specified in mattermost.
|
|
#See account settings - integrations - incoming webhooks on mattermost.
|
|
#If specified, messages will be sent to mattermost using this URL
|
|
#OPTIONAL
|
|
WebhookURL="https://yourdomain/hooks/yourhookkey"
|
|
|
|
#Address to listen on for outgoing webhook requests from mattermost.
|
|
#See account settings - integrations - outgoing webhooks on mattermost.
|
|
#If specified, messages will be received from mattermost on this ip:port
|
|
#(this will only work if WebhookURL above is also configured)
|
|
#OPTIONAL
|
|
WebhookBindAddress="0.0.0.0:9999"
|
|
|
|
#Icon that will be showed in mattermost.
|
|
#This only works when WebhookURL is configured
|
|
#OPTIONAL
|
|
IconURL="http://youricon.png"
|
|
|
|
#### End settings for webhook matterbridge.
|
|
|
|
#Enable to not verify the certificate on your mattermost server.
|
|
#e.g. when using selfsigned certificates
|
|
#OPTIONAL (default false)
|
|
SkipTLSVerify=true
|
|
|
|
## RELOADABLE SETTINGS
|
|
## Settings below can be reloaded by editing the file
|
|
|
|
#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)
|
|
NicksPerRow=4
|
|
|
|
#Skip the Mattermost server version checks that are normally done when connecting.
|
|
#The usage scenario for this feature would be when the Mattermost instance is hosted behind a
|
|
#reverse proxy that suppresses "non-standard" response headers in flight.
|
|
#OPTIONAL (default false)
|
|
SkipVersionCheck=false
|
|
|
|
#Whether to prefix messages from other bridges 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 bridge to Mattermost will by default be prefixed by "bridge-" + nick. You can,
|
|
#however, modify how the messages appear, by setting (and modifying) RemoteNickFormat
|
|
#OPTIONAL (default false)
|
|
PrefixMessagesWithNick=false
|
|
|
|
#Disable sending of edits to other bridges
|
|
#OPTIONAL (default false)
|
|
EditDisable=false
|
|
|
|
#Message to be appended to every edited message
|
|
#OPTIONAL (default empty)
|
|
EditSuffix=" (edited)"
|
|
|
|
#Nicks you want to ignore.
|
|
#Regular expressions supported
|
|
#Messages from those users will not be sent to other bridges.
|
|
#OPTIONAL
|
|
IgnoreNicks="ircspammer1 ircspammer2"
|
|
|
|
#Messages you want to ignore.
|
|
#Messages matching these regexp will be ignored and not sent to other bridges
|
|
#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
|
|
#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
|
|
IgnoreMessages="^~~ badword"
|
|
|
|
#messages you want to replace.
|
|
#it replaces outgoing messages from the bridge.
|
|
#so you need to place it by the sending bridge definition.
|
|
#regular expressions supported
|
|
#some examples:
|
|
#this replaces cat => dog and sleep => awake
|
|
#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
|
|
#this replaces every number with number. 123 => numbernumbernumber
|
|
#replacemessages=[ ["[0-9]","number"] ]
|
|
#optional (default empty)
|
|
ReplaceMessages=[ ["cat","dog"] ]
|
|
|
|
#nicks you want to replace.
|
|
#see replacemessages for syntaxa
|
|
#optional (default empty)
|
|
ReplaceNicks=[ ["user--","user"] ]
|
|
|
|
#Extractnicks is used to for example rewrite messages from other relaybots
|
|
#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
|
|
#some examples:
|
|
#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
|
|
#you can use multiple entries for multiplebots
|
|
#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
|
|
#OPTIONAL (default empty)
|
|
ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
|
|
|
|
#extra label that can be used in the RemoteNickFormat
|
|
#optional (default empty)
|
|
Label=""
|
|
|
|
#RemoteNickFormat defines how remote users appear on this bridge
|
|
#See [general] config section for default options
|
|
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
|
|
|
|
#Enable to show users joins/parts from other bridges
|
|
#Currently works for messages from the following bridges: irc, mattermost, slack, discord
|
|
#OPTIONAL (default false)
|
|
ShowJoinPart=false
|
|
|
|
#Do not send joins/parts to other bridges
|
|
#Currently works for messages from the following bridges: irc, mattermost, slack
|
|
#OPTIONAL (default false)
|
|
NoSendJoinPart=false
|
|
|
|
#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
|
|
#It will strip other characters from the nick
|
|
#OPTIONAL (default false)
|
|
StripNick=false
|
|
|
|
#Enable to show topic changes from other bridges
|
|
#Only works hiding/show topic changes from slack bridge for now
|
|
#OPTIONAL (default false)
|
|
ShowTopicChange=false
|
|
|
|
###################################################################
|
|
#Gitter section
|
|
#Best to make a dedicated gitter account for the bot.
|
|
###################################################################
|
|
|
|
[gitter]
|
|
|
|
#You can configure multiple servers "[gitter.name]" or "[gitter.name2]"
|
|
#In this example we use [gitter.myproject]
|
|
#REQUIRED
|
|
[gitter.myproject]
|
|
#Token to connect with Gitter API
|
|
#You can get your token by going to https://developer.gitter.im/docs/welcome and SIGN IN
|
|
#REQUIRED
|
|
Token="Yourtokenhere"
|
|
|
|
## RELOADABLE SETTINGS
|
|
## Settings below can be reloaded by editing the file
|
|
|
|
#Nicks you want to ignore.
|
|
#Regular expressions supported
|
|
#Messages from those users will not be sent to other bridges.
|
|
#OPTIONAL
|
|
IgnoreNicks="ircspammer1 ircspammer2"
|
|
|
|
#Messages you want to ignore.
|
|
#Messages matching these regexp will be ignored and not sent to other bridges
|
|
#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
|
|
#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
|
|
IgnoreMessages="^~~ badword"
|
|
|
|
#messages you want to replace.
|
|
#it replaces outgoing messages from the bridge.
|
|
#so you need to place it by the sending bridge definition.
|
|
#regular expressions supported
|
|
#some examples:
|
|
#this replaces cat => dog and sleep => awake
|
|
#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
|
|
#this replaces every number with number. 123 => numbernumbernumber
|
|
#replacemessages=[ ["[0-9]","number"] ]
|
|
#optional (default empty)
|
|
ReplaceMessages=[ ["cat","dog"] ]
|
|
|
|
#nicks you want to replace.
|
|
#see replacemessages for syntaxa
|
|
#optional (default empty)
|
|
ReplaceNicks=[ ["user--","user"] ]
|
|
|
|
#Extractnicks is used to for example rewrite messages from other relaybots
|
|
#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
|
|
#some examples:
|
|
#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
|
|
#you can use multiple entries for multiplebots
|
|
#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
|
|
#OPTIONAL (default empty)
|
|
ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
|
|
|
|
#extra label that can be used in the RemoteNickFormat
|
|
#optional (default empty)
|
|
Label=""
|
|
|
|
#RemoteNickFormat defines how remote users appear on this bridge
|
|
#See [general] config section for default options
|
|
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
|
|
|
|
#Enable to show users joins/parts from other bridges
|
|
#Currently works for messages from the following bridges: irc, mattermost, slack, discord
|
|
#OPTIONAL (default false)
|
|
ShowJoinPart=false
|
|
|
|
#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
|
|
#It will strip other characters from the nick
|
|
#OPTIONAL (default false)
|
|
StripNick=false
|
|
|
|
#Enable to show topic changes from other bridges
|
|
#Only works hiding/show topic changes from slack bridge for now
|
|
#OPTIONAL (default false)
|
|
ShowTopicChange=false
|
|
|
|
###################################################################
|
|
#
|
|
# Keybase
|
|
# You should have a separate bridge account on Keybase
|
|
# (it also needs to be logged in on the system you're running the bridge on)
|
|
#
|
|
###################################################################
|
|
|
|
[keybase.myteam]
|
|
|
|
# RemoteNickFormat defines how remote users appear on this bridge
|
|
# See [general] config section for default options
|
|
RemoteNickFormat="{NICK} ({PROTOCOL}): "
|
|
|
|
# extra label that can be used in the RemoteNickFormat
|
|
# optional (default empty)
|
|
Label=""
|
|
|
|
# Your team on Keybase.
|
|
# The bot user MUST be a member of this team
|
|
# REQUIRED
|
|
Team="myteam"
|
|
|
|
###################################################################
|
|
# Microsoft teams section
|
|
# See https://github.com/42wim/matterbridge/wiki/MS-Teams-setup
|
|
###################################################################
|
|
|
|
[msteams.myteam]
|
|
|
|
# TenantID
|
|
# See https://github.com/42wim/matterbridge/wiki/MS-Teams-setup#get-necessary-ids-for-matterbridge
|
|
TenantID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
|
|
|
# ClientID
|
|
# See https://github.com/42wim/matterbridge/wiki/MS-Teams-setup#get-necessary-ids-for-matterbridge
|
|
ClientID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
|
|
|
# TeamID
|
|
# See https://github.com/42wim/matterbridge/wiki/MS-Teams-setup#get-necessary-ids-for-matterbridge
|
|
TeamID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
|
|
|
## RELOADABLE SETTINGS
|
|
## Settings below can be reloaded by editing the file
|
|
|
|
#Nicks you want to ignore.
|
|
#Regular expressions supported
|
|
#Messages from those users will not be sent to other bridges.
|
|
#OPTIONAL
|
|
IgnoreNicks="ircspammer1 ircspammer2"
|
|
|
|
#Messages you want to ignore.
|
|
#Messages matching these regexp will be ignored and not sent to other bridges
|
|
#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
|
|
#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
|
|
IgnoreMessages="^~~ badword"
|
|
|
|
#messages you want to replace.
|
|
#it replaces outgoing messages from the bridge.
|
|
#so you need to place it by the sending bridge definition.
|
|
#regular expressions supported
|
|
#some examples:
|
|
#this replaces cat => dog and sleep => awake
|
|
#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
|
|
#this replaces every number with number. 123 => numbernumbernumber
|
|
#replacemessages=[ ["[0-9]","number"] ]
|
|
#optional (default empty)
|
|
ReplaceMessages=[ ["cat","dog"] ]
|
|
|
|
#nicks you want to replace.
|
|
#see replacemessages for syntaxa
|
|
#optional (default empty)
|
|
ReplaceNicks=[ ["user--","user"] ]
|
|
|
|
#Extractnicks is used to for example rewrite messages from other relaybots
|
|
#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
|
|
#some examples:
|
|
#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
|
|
#you can use multiple entries for multiplebots
|
|
#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
|
|
#OPTIONAL (default empty)
|
|
ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
|
|
|
|
#extra label that can be used in the RemoteNickFormat
|
|
#optional (default empty)
|
|
Label=""
|
|
|
|
#RemoteNickFormat defines how remote users appear on this bridge
|
|
#See [general] config section for default options
|
|
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
|
|
|
|
#Enable to show users joins/parts from other bridges
|
|
#Currently works for messages from the following bridges: irc, mattermost, slack, discord
|
|
#OPTIONAL (default false)
|
|
ShowJoinPart=false
|
|
|
|
#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
|
|
#It will strip other characters from the nick
|
|
#OPTIONAL (default false)
|
|
StripNick=false
|
|
|
|
#Enable to show topic changes from other bridges
|
|
#Only works hiding/show topic changes from slack bridge for now
|
|
#OPTIONAL (default false)
|
|
ShowTopicChange=false
|
|
|
|
#Opportunistically preserve threaded replies between bridges
|
|
#that support threading
|
|
#OPTIONAL (default false)
|
|
PreserveThreading=false
|
|
|
|
###################################################################
|
|
#slack section
|
|
###################################################################
|
|
[slack]
|
|
|
|
#You can configure multiple servers "[slack.name]" or "[slack.name2]"
|
|
#In this example we use [slack.hobby]
|
|
#REQUIRED
|
|
[slack.hobby]
|
|
#Token to connect with the Slack API
|
|
#You'll have to use a test/api-token using a dedicated user and not a bot token.
|
|
#See https://github.com/42wim/matterbridge/issues/75 for more info.
|
|
#Use https://api.slack.com/custom-integrations/legacy-tokens
|
|
#REQUIRED (when not using webhooks)
|
|
Token="yourslacktoken"
|
|
|
|
#Extra slack specific debug info, warning this generates a lot of output.
|
|
#OPTIONAL (default false)
|
|
Debug="false"
|
|
|
|
#### Settings for webhook matterbridge.
|
|
#NOT RECOMMENDED TO USE INCOMING/OUTGOING WEBHOOK. USE SLACK API
|
|
#AND DEDICATED BOT USER WHEN POSSIBLE!
|
|
#Url is your incoming webhook url as specified in slack
|
|
#See account settings - integrations - incoming webhooks on slack
|
|
#OPTIONAL
|
|
WebhookURL="https://hooks.slack.com/services/yourhook"
|
|
|
|
#NOT RECOMMENDED TO USE INCOMING/OUTGOING WEBHOOK. USE SLACK API
|
|
#AND DEDICATED BOT USER WHEN POSSIBLE!
|
|
#Address to listen on for outgoing webhook requests from slack
|
|
#See account settings - integrations - outgoing webhooks on slack
|
|
#webhooks
|
|
#OPTIONAL
|
|
WebhookBindAddress="0.0.0.0:9999"
|
|
|
|
#Icon that will be showed in slack
|
|
#The string "{NICK}" (case sensitive) will be replaced by the actual nick / username.
|
|
#The string "{BRIDGE}" (case sensitive) will be replaced by the sending bridge
|
|
#The string "{LABEL}" (case sensitive) will be replaced by label= field of the sending bridge
|
|
#The string "{PROTOCOL}" (case sensitive) will be replaced by the protocol used by the bridge
|
|
#OPTIONAL
|
|
IconURL="https://robohash.org/{NICK}.png?size=48x48"
|
|
|
|
## RELOADABLE SETTINGS
|
|
## Settings below can be reloaded by editing the file
|
|
|
|
#how to format the list of IRC nicks when displayed in slack
|
|
#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)
|
|
NicksPerRow=4
|
|
|
|
#Disable sending of edits to other bridges
|
|
#OPTIONAL (default false)
|
|
EditDisable=true
|
|
|
|
#Message to be appended to every edited message
|
|
#OPTIONAL (default empty)
|
|
EditSuffix=" (edited)"
|
|
|
|
#Whether to prefix messages from other bridges to mattermost with RemoteNickFormat
|
|
#Useful if username overrides for incoming webhooks isn't enabled on the
|
|
#slack server. If you set PrefixMessagesWithNick to true, each message
|
|
#from bridge to Slack will by default be prefixed by "bridge-" + nick. You can,
|
|
#however, modify how the messages appear, by setting (and modifying) RemoteNickFormat
|
|
#OPTIONAL (default false)
|
|
PrefixMessagesWithNick=false
|
|
|
|
#Nicks you want to ignore.
|
|
#Regular expressions supported
|
|
#Messages from those users will not be sent to other bridges.
|
|
#OPTIONAL
|
|
IgnoreNicks="ircspammer1 ircspammer2"
|
|
|
|
#Messages you want to ignore.
|
|
#Messages matching these regexp will be ignored and not sent to other bridges
|
|
#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
|
|
#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
|
|
IgnoreMessages="^~~ badword"
|
|
|
|
#messages you want to replace.
|
|
#it replaces outgoing messages from the bridge.
|
|
#so you need to place it by the sending bridge definition.
|
|
#regular expressions supported
|
|
#some examples:
|
|
#this replaces cat => dog and sleep => awake
|
|
#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
|
|
#this replaces every number with number. 123 => numbernumbernumber
|
|
#replacemessages=[ ["[0-9]","number"] ]
|
|
#optional (default empty)
|
|
ReplaceMessages=[ ["cat","dog"] ]
|
|
|
|
#nicks you want to replace.
|
|
#see replacemessages for syntaxa
|
|
#optional (default empty)
|
|
ReplaceNicks=[ ["user--","user"] ]
|
|
|
|
#Extractnicks is used to for example rewrite messages from other relaybots
|
|
#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
|
|
#some examples:
|
|
#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
|
|
#you can use multiple entries for multiplebots
|
|
#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
|
|
#OPTIONAL (default empty)
|
|
ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
|
|
|
|
#extra label that can be used in the RemoteNickFormat
|
|
#optional (default empty)
|
|
Label=""
|
|
|
|
#RemoteNickFormat defines how remote users appear on this bridge
|
|
#See [general] config section for default options
|
|
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
|
|
|
|
#Enable to show users joins/parts from other bridges
|
|
#Currently works for messages from the following bridges: irc, mattermost, slack, discord
|
|
#OPTIONAL (default false)
|
|
ShowJoinPart=false
|
|
|
|
#Do not send joins/parts to other bridges
|
|
#Currently works for messages from the following bridges: irc, mattermost, slack
|
|
#OPTIONAL (default false)
|
|
NoSendJoinPart=false
|
|
|
|
#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
|
|
#It will strip other characters from the nick
|
|
#OPTIONAL (default false)
|
|
StripNick=false
|
|
|
|
#Enable to show topic changes from other bridges
|
|
#Only works hiding/show topic changes from slack bridge for now
|
|
#OPTIONAL (default false)
|
|
ShowTopicChange=false
|
|
|
|
#Opportunistically preserve threaded replies between Slack channels.
|
|
#This only works if the parent message is still in the cache.
|
|
#Cache is flushed between restarts.
|
|
#Note: Not currently working on gateways with mixed bridges of
|
|
# both slack and slack-legacy type. Context in issue #624.
|
|
#OPTIONAL (default false)
|
|
PreserveThreading=false
|
|
|
|
#Enable showing "user_typing" events from across gateway when available.
|
|
#Protip: Set your bot/user's "Full Name" to be "Someone (over chat bridge)",
|
|
#and so the message will say "Someone (over chat bridge) is typing".
|
|
#OPTIONAL (default false)
|
|
ShowUserTyping=false
|
|
|
|
#Message to show when a message is too big
|
|
#Default "<clipped message>"
|
|
MessageClipped="<clipped message>"
|
|
|
|
###################################################################
|
|
#discord section
|
|
###################################################################
|
|
[discord]
|
|
|
|
# You can configure multiple servers "[discord.name]" or "[discord.name2]"
|
|
# In this example we use [discord.game]
|
|
#REQUIRED
|
|
[discord.game]
|
|
# Token (REQUIRED) is the token to connect with Discord API
|
|
# You can get your token by following the instructions on
|
|
# https://github.com/reactiflux/discord-irc/wiki/Creating-a-discord-bot-&-getting-a-token
|
|
# If you want roles/groups mentions to be shown with names instead of ID, you'll need to give your bot the "Manage Roles" permission.
|
|
Token="Yourtokenhere"
|
|
|
|
# Server (REQUIRED) is the ID or name of the guild to connect to, selected from the guilds the bot has been invited to
|
|
Server="yourservername"
|
|
|
|
## RELOADABLE SETTINGS
|
|
## All settings below can be reloaded by editing the file.
|
|
## They are also all optional.
|
|
|
|
# AllowMention controls which mentions are allowed. If not specified, all mentions are allowed.
|
|
# Note that even when a mention is not allowed, it will still be displayed nicely and be clickable. It just prevents the ping/notification.
|
|
#
|
|
# "everyone" allows @everyone and @here mentions
|
|
# "roles" allows @role mentions
|
|
# "users" allows @user mentions
|
|
AllowMention=["everyone", "roles", "users"]
|
|
|
|
# ShowEmbeds shows the title, description and URL of embedded messages (sent by other bots)
|
|
ShowEmbeds=false
|
|
|
|
# UseLocalAvatar specifies source bridges for which an avatar should be 'guessed' when an incoming message has no avatar.
|
|
# This works by comparing the username of the message to an existing Discord user, and using the avatar of the Discord user.
|
|
#
|
|
# This only works if WebhookURL is set (AND the message has no avatar).
|
|
# Example: ["irc"]
|
|
UseLocalAvatar=[]
|
|
|
|
# UseUserName shows the username instead of the server nickname
|
|
UseUserName=false
|
|
|
|
# UseDiscriminator appends the `#xxxx` discriminator when used with UseUserName
|
|
UseDiscriminator=false
|
|
|
|
# AutoWebhooks automatically configures message sending in the style of puppets.
|
|
# This is an easier alternative to manually configuring "WebhookURL" for each gateway,
|
|
# as turning this on will automatically load or create webhooks for each channel.
|
|
# This feature requires the "Manage Webhooks" permission (either globally or as per-channel).
|
|
AutoWebhooks=false
|
|
|
|
# EditDisable disables sending of edits to other bridges
|
|
EditDisable=false
|
|
|
|
# EditSuffix specifies the message to be appended to every edited message
|
|
# Example: " (edited)"
|
|
EditSuffix=""
|
|
|
|
# IgnoreNicks mutes outgoing messages from certain users.
|
|
# Messages from these users will not be transmitted to other bridges.
|
|
# Regular expressions are also supported.
|
|
# Example: "ircspammer1 ircspammer2"
|
|
IgnoreNicks=""
|
|
|
|
# IgnoreMessages mutes outgoing messages of a certain format.
|
|
# Messages matching this regular expression will not be transmitted sent to other bridges
|
|
# See https://regex-golang.appspot.com/assets/html/index.html for more regex info
|
|
#
|
|
# Example that ignores messages starting with ~~ or messages containing badword:
|
|
# IgnoreMessages="^~~ badword"
|
|
IgnoreMessages=""
|
|
|
|
# ReplaceMessages replaces substrings of messages in outgoing messages.
|
|
# Regular expressions are supported.
|
|
#
|
|
# Example that replaces 'cat' => 'dog' and 'sleep' => 'awake':
|
|
# ReplaceMessages=[ ["cat","dog"], ["sleep","awake"] ]
|
|
# Example that replaces all digits with the letter 'X', so 'hello123' becomes 'helloXXX':
|
|
# ReplaceMessages=[ ["[0-9]","X"] ]
|
|
ReplaceMessages=[]
|
|
|
|
# ReplaceNicks replaces substrings of usernames in outgoing messages.
|
|
# See the ReplaceMessages setting for examples.
|
|
# Example: [ ["user--","user"] ]
|
|
ReplaceNicks=[]
|
|
|
|
# ExtractNicks allows for interoperability with other bridge software by rewriting messages and extracting usernames.
|
|
#
|
|
# Recommended reading:
|
|
# - https://github.com/42wim/matterbridge/issues/466
|
|
# - https://github.com/42wim/matterbridge/issues/713
|
|
#
|
|
# This example translates the following message
|
|
# "Relaybot: <relayeduser> something interesting"
|
|
# into this message
|
|
# "relayeduser: something interesting"
|
|
# like so:
|
|
# ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
|
|
#
|
|
# This example translates the following message
|
|
# "otherbot: (relayeduser) something else"
|
|
# into this message
|
|
# "relayeduser: something else"
|
|
# like so:
|
|
# ExtractNicks=[ [ "otherbot","\\((.*?)\\)\\s+" ] ]
|
|
#
|
|
# This example combines both of the above examples into one:
|
|
# ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
|
|
#
|
|
ExtractNicks=[]
|
|
|
|
# Label is as an extra identifier for use in the RemoteNickFormat setting.
|
|
Label=""
|
|
|
|
# RemoteNickFormat formats how remote users appear on this bridge.
|
|
# See the [general] config section for default options
|
|
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
|
|
|
|
# ShowJoinPart emits messages that show joins/parts from other bridges
|
|
# Supported from the following bridges: irc, mattermost, slack, discord
|
|
ShowJoinPart=false
|
|
|
|
# StripNick strips non-alphanumeric characters from nicknames.
|
|
# Recommended reading: https://github.com/42wim/matterbridge/issues/285
|
|
StripNick=false
|
|
|
|
# ShowTopicChange emits messages that show topic/purpose updates from other bridges
|
|
# Supported from the following bridges: slack
|
|
ShowTopicChange=false
|
|
|
|
# SyncTopic synchronises topic/purpose updates from other bridges
|
|
# Supported from the following bridges: slack
|
|
SyncTopic=false
|
|
|
|
#Message to show when a message is too big
|
|
#Default "<clipped message>"
|
|
MessageClipped="<clipped message>"
|
|
|
|
###################################################################
|
|
#telegram section
|
|
###################################################################
|
|
[telegram]
|
|
|
|
#You can configure multiple servers "[telegram.name]" or "[telegram.name2]"
|
|
#In this example we use [telegram.secure]
|
|
#REQUIRED
|
|
[telegram.secure]
|
|
#Token to connect with telegram API
|
|
#See https://core.telegram.org/bots#6-botfather and https://www.linkedin.com/pulse/telegram-bots-beginners-marco-frau
|
|
#REQUIRED
|
|
Token="Yourtokenhere"
|
|
|
|
## RELOADABLE SETTINGS
|
|
## Settings below can be reloaded by editing the file
|
|
|
|
#OPTIONAL (default empty)
|
|
#Supported formats are:
|
|
#"HTML" https://core.telegram.org/bots/api#html-style
|
|
#"Markdown" https://core.telegram.org/bots/api#markdown-style - deprecated, doesn't display links with underscores correctly
|
|
#"MarkdownV2" https://core.telegram.org/bots/api#markdownv2-style
|
|
#"HTMLNick" - only allows HTML for the nick, the message itself will be html-escaped
|
|
MessageFormat=""
|
|
|
|
#OPTIONAL (default false)
|
|
#Disables link previews for links in messages
|
|
DisableWebPagePreview=false
|
|
|
|
#If enabled use the "First Name" as username. If this is empty use the Username
|
|
#If disabled use the "Username" as username. If this is empty use the First Name
|
|
#If all names are empty, username will be "unknown"
|
|
#OPTIONAL (default false)
|
|
UseFirstName=false
|
|
|
|
#WARNING! If enabled this will relay GIF/stickers/documents and other attachments as URLs
|
|
#Those URLs will contain your bot-token. This may not be what you want.
|
|
#For now there is no secure way to relay GIF/stickers/documents without seeing your token.
|
|
#OPTIONAL (default false)
|
|
UseInsecureURL=false
|
|
|
|
#Disable quoted/reply messages
|
|
#OPTIONAL (default false)
|
|
QuoteDisable=false
|
|
|
|
#Set the max. quoted length if 0 the whole message will be quoted
|
|
#OPTIONAL (default 0)
|
|
QuoteLengthLimit=0
|
|
|
|
#Format quoted/reply messages
|
|
#OPTIONAL (default "{MESSAGE} (re @{QUOTENICK}: {QUOTEMESSAGE})")
|
|
QuoteFormat="{MESSAGE} (re @{QUOTENICK}: {QUOTEMESSAGE})"
|
|
|
|
#Convert WebP images to PNG before upload.
|
|
#https://github.com/42wim/matterbridge/issues/398
|
|
#OPTIONAL (default false)
|
|
MediaConvertWebPToPNG=false
|
|
|
|
#Convert Tgs (Telegram animated sticker) images to PNG before upload.
|
|
#This is useful when your bridge also contains platforms that do not support animated WebP files, like Discord.
|
|
#This requires the external dependency `lottie`, which can be installed like this:
|
|
#`pip install lottie cairosvg`
|
|
#https://github.com/42wim/matterbridge/issues/874
|
|
#MediaConvertTgs="png"
|
|
|
|
#Disable sending of edits to other bridges
|
|
#OPTIONAL (default false)
|
|
EditDisable=false
|
|
|
|
#Message to be appended to every edited message
|
|
#OPTIONAL (default empty)
|
|
EditSuffix=" (edited)"
|
|
|
|
#Nicks you want to ignore.
|
|
#Regular expressions supported
|
|
#Messages from those users will not be sent to other bridges.
|
|
#OPTIONAL
|
|
IgnoreNicks="spammer1 spammer2"
|
|
|
|
#Messages you want to ignore.
|
|
#Messages matching these regexp will be ignored and not sent to other bridges
|
|
#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
|
|
#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
|
|
IgnoreMessages="^~~ badword"
|
|
|
|
#messages you want to replace.
|
|
#it replaces outgoing messages from the bridge.
|
|
#so you need to place it by the sending bridge definition.
|
|
#regular expressions supported
|
|
#some examples:
|
|
#this replaces cat => dog and sleep => awake
|
|
#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
|
|
#this replaces every number with number. 123 => numbernumbernumber
|
|
#replacemessages=[ ["[0-9]","number"] ]
|
|
#optional (default empty)
|
|
ReplaceMessages=[ ["cat","dog"] ]
|
|
|
|
#nicks you want to replace.
|
|
#see replacemessages for syntaxa
|
|
#optional (default empty)
|
|
ReplaceNicks=[ ["user--","user"] ]
|
|
|
|
#Extractnicks is used to for example rewrite messages from other relaybots
|
|
#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
|
|
#some examples:
|
|
#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
|
|
#you can use multiple entries for multiplebots
|
|
#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
|
|
#OPTIONAL (default empty)
|
|
ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
|
|
|
|
#extra label that can be used in the RemoteNickFormat
|
|
#optional (default empty)
|
|
Label=""
|
|
|
|
#RemoteNickFormat defines how remote users appear on this bridge
|
|
#See [general] config section for default options
|
|
#
|
|
#WARNING: if you have set MessageFormat="HTML" be sure that this format matches the guidelines
|
|
#on https://core.telegram.org/bots/api#html-style otherwise the message will not go through to
|
|
#telegram! eg <{NICK}> should be <{NICK}>
|
|
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
|
|
|
|
#Enable to show users joins/parts from other bridges
|
|
#Currently works for messages from the following bridges: irc, mattermost, slack, discord
|
|
#OPTIONAL (default false)
|
|
ShowJoinPart=false
|
|
|
|
#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
|
|
#It will strip other characters from the nick
|
|
#OPTIONAL (default false)
|
|
StripNick=false
|
|
|
|
#Enable to show topic changes from other bridges
|
|
#Only works hiding/show topic changes from slack bridge for now
|
|
#OPTIONAL (default false)
|
|
ShowTopicChange=false
|
|
|
|
###################################################################
|
|
#rocketchat section
|
|
###################################################################
|
|
[rocketchat]
|
|
#You can configure multiple servers "[rocketchat.name]" or "[rocketchat.name2]"
|
|
#In this example we use [rocketchat.work]
|
|
#REQUIRED
|
|
|
|
[rocketchat.rockme]
|
|
#The rocketchat hostname. (prefix it with http or https)
|
|
#REQUIRED (when not using webhooks)
|
|
Server="https://yourrocketchatserver.domain.com:443"
|
|
|
|
#login/pass of your bot.
|
|
#login needs to be the login with email address! user@domain.com
|
|
#Use a dedicated user for this and not your own!
|
|
#REQUIRED (when not using webhooks)
|
|
Login="yourlogin@domain.com"
|
|
Password="yourpass"
|
|
# When using access token set Login to the User ID associated with your token and Token to your token.
|
|
# When Token is set Password is ignored.
|
|
# Login="yOurUSerID"
|
|
# Token="YoUrUsER_toKEN"
|
|
|
|
|
|
#### Settings for webhook matterbridge.
|
|
#USE DEDICATED BOT USER WHEN POSSIBLE! This allows you to use advanced features like message editing/deleting and uploads
|
|
#You don't need to configure this, if you have configured the settings
|
|
#above.
|
|
|
|
#Url is your incoming webhook url as specified in rocketchat
|
|
#Read #https://rocket.chat/docs/administrator-guides/integrations/#how-to-create-a-new-incoming-webhook
|
|
#See administration - integrations - new integration - incoming webhook
|
|
#REQUIRED
|
|
WebhookURL="https://yourdomain/hooks/yourhookkey"
|
|
|
|
#Address to listen on for outgoing webhook requests from rocketchat.
|
|
#See administration - integrations - new integration - outgoing webhook
|
|
#REQUIRED
|
|
WebhookBindAddress="0.0.0.0:9999"
|
|
|
|
#Your nick/username as specified in your incoming webhook "Post as" setting
|
|
#REQUIRED
|
|
Nick="matterbot"
|
|
|
|
#Enable this to make a http connection (instead of https) to your rocketchat
|
|
#OPTIONAL (default false)
|
|
NoTLS=false
|
|
|
|
#Enable to not verify the certificate on your rocketchat server.
|
|
#e.g. when using selfsigned certificates
|
|
#OPTIONAL (default false)
|
|
SkipTLSVerify=true
|
|
|
|
#### End settings for webhook matterbridge.
|
|
|
|
## RELOADABLE SETTINGS
|
|
## Settings below can be reloaded by editing the file
|
|
|
|
#Whether to prefix messages from other bridges to rocketchat with the sender's nick.
|
|
#Useful if username overrides for incoming webhooks isn't enabled on the
|
|
#rocketchat server. If you set PrefixMessagesWithNick to true, each message
|
|
#from bridge to rocketchat will by default be prefixed by the RemoteNickFormat setting. i
|
|
#if you're using login/pass you can better enable because of this bug:
|
|
#https://github.com/RocketChat/Rocket.Chat/issues/7549
|
|
#OPTIONAL (default false)
|
|
PrefixMessagesWithNick=false
|
|
|
|
#Nicks you want to ignore.
|
|
#Regular expressions supported
|
|
#Messages from those users will not be sent to other bridges.
|
|
#OPTIONAL
|
|
IgnoreNicks="ircspammer1 ircspammer2"
|
|
|
|
#Messages you want to ignore.
|
|
#Messages matching these regexp will be ignored and not sent to other bridges
|
|
#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
|
|
#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
|
|
IgnoreMessages="^~~ badword"
|
|
|
|
#messages you want to replace.
|
|
#it replaces outgoing messages from the bridge.
|
|
#so you need to place it by the sending bridge definition.
|
|
#regular expressions supported
|
|
#some examples:
|
|
#this replaces cat => dog and sleep => awake
|
|
#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
|
|
#this replaces every number with number. 123 => numbernumbernumber
|
|
#replacemessages=[ ["[0-9]","number"] ]
|
|
#optional (default empty)
|
|
ReplaceMessages=[ ["cat","dog"] ]
|
|
|
|
#nicks you want to replace.
|
|
#see replacemessages for syntaxa
|
|
#optional (default empty)
|
|
ReplaceNicks=[ ["user--","user"] ]
|
|
|
|
#Extractnicks is used to for example rewrite messages from other relaybots
|
|
#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
|
|
#some examples:
|
|
#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
|
|
#you can use multiple entries for multiplebots
|
|
#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
|
|
#OPTIONAL (default empty)
|
|
ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
|
|
|
|
#extra label that can be used in the RemoteNickFormat
|
|
#optional (default empty)
|
|
Label=""
|
|
|
|
#RemoteNickFormat defines how remote users appear on this bridge
|
|
#See [general] config section for default options
|
|
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
|
|
|
|
#Enable to show users joins/parts from other bridges
|
|
#Currently works for messages from the following bridges: irc, mattermost, slack, discord
|
|
#OPTIONAL (default false)
|
|
ShowJoinPart=false
|
|
|
|
#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
|
|
#It will strip other characters from the nick
|
|
#OPTIONAL (default false)
|
|
StripNick=false
|
|
|
|
#Enable to show topic changes from other bridges
|
|
#Only works hiding/show topic changes from slack bridge for now
|
|
#OPTIONAL (default false)
|
|
ShowTopicChange=false
|
|
|
|
###################################################################
|
|
#matrix section
|
|
###################################################################
|
|
[matrix]
|
|
#You can configure multiple servers "[matrix.name]" or "[matrix.name2]"
|
|
#In this example we use [matrix.neo]
|
|
#REQUIRED
|
|
|
|
[matrix.neo]
|
|
#Server is your homeserver (eg https://matrix.org)
|
|
#REQUIRED
|
|
Server="https://matrix.org"
|
|
|
|
#Authentication for your bot.
|
|
#You can use either login/password OR mxid/token. The latter will be preferred if found.
|
|
#Use a dedicated user for this and not your own!
|
|
#Messages sent from this user will not be relayed to avoid loops.
|
|
#REQUIRED
|
|
Login="yourlogin"
|
|
Password="yourpass"
|
|
#OR
|
|
MxID="@yourlogin:domain.tld"
|
|
Token="tokenforthebotuser"
|
|
|
|
#Whether to send the homeserver suffix. eg ":matrix.org" in @username:matrix.org
|
|
#to other bridges, or only send "username".(true only sends username)
|
|
#OPTIONAL (default false)
|
|
NoHomeServerSuffix=false
|
|
|
|
#Whether to disable sending of HTML content to matrix
|
|
#See https://github.com/42wim/matterbridge/issues/1022
|
|
#OPTIONAL (default false)
|
|
HTMLDisable=false
|
|
|
|
## RELOADABLE SETTINGS
|
|
## Settings below can be reloaded by editing the file
|
|
|
|
# UseUserName shows the username instead of the server nickname
|
|
UseUserName=false
|
|
|
|
#Nicks you want to ignore.
|
|
#Regular expressions supported
|
|
#Messages from those users will not be sent to other bridges.
|
|
#OPTIONAL
|
|
IgnoreNicks="spammer1 spammer2"
|
|
|
|
#Messages you want to ignore.
|
|
#Messages matching these regexp will be ignored and not sent to other bridges
|
|
#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
|
|
#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
|
|
IgnoreMessages="^~~ badword"
|
|
|
|
#messages you want to replace.
|
|
#it replaces outgoing messages from the bridge.
|
|
#so you need to place it by the sending bridge definition.
|
|
#regular expressions supported
|
|
#some examples:
|
|
#this replaces cat => dog and sleep => awake
|
|
#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
|
|
#this replaces every number with number. 123 => numbernumbernumber
|
|
#replacemessages=[ ["[0-9]","number"] ]
|
|
#optional (default empty)
|
|
ReplaceMessages=[ ["cat","dog"] ]
|
|
|
|
#nicks you want to replace.
|
|
#see replacemessages for syntaxa
|
|
#optional (default empty)
|
|
ReplaceNicks=[ ["user--","user"] ]
|
|
|
|
#Extractnicks is used to for example rewrite messages from other relaybots
|
|
#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
|
|
#some examples:
|
|
#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
|
|
#you can use multiple entries for multiplebots
|
|
#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
|
|
#OPTIONAL (default empty)
|
|
ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
|
|
|
|
#extra label that can be used in the RemoteNickFormat
|
|
#optional (default empty)
|
|
Label=""
|
|
|
|
#RemoteNickFormat defines how remote users appear on this bridge
|
|
#See [general] config section for default options
|
|
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
|
|
|
|
#Enable to show users joins/parts from other bridges
|
|
#Currently works for messages from the following bridges: irc, mattermost, slack, discord
|
|
#OPTIONAL (default false)
|
|
ShowJoinPart=false
|
|
|
|
#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
|
|
#It will strip other characters from the nick
|
|
#OPTIONAL (default false)
|
|
StripNick=false
|
|
|
|
#Enable to show topic changes from other bridges
|
|
#Only works hiding/show topic changes from slack bridge for now
|
|
#OPTIONAL (default false)
|
|
ShowTopicChange=false
|
|
|
|
###################################################################
|
|
#steam section
|
|
###################################################################
|
|
[steam]
|
|
#You can configure multiple servers "[steam.name]" or "[steam.name2]"
|
|
#In this example we use [steam.gamechat]
|
|
#REQUIRED
|
|
|
|
[steam.gamechat]
|
|
#login/pass of your bot.
|
|
#Use a dedicated user for this and not your own account!
|
|
#REQUIRED
|
|
Login="yourlogin"
|
|
Password="yourpass"
|
|
|
|
#steamguard mail authcode (not the 2FA code)
|
|
#OPTIONAL
|
|
Authcode="ABCE12"
|
|
|
|
## RELOADABLE SETTINGS
|
|
## Settings below can be reloaded by editing the file
|
|
|
|
#Whether to prefix messages from other bridges to matrix with the sender's nick.
|
|
#Useful if username overrides for incoming webhooks isn't enabled on the
|
|
#matrix server. If you set PrefixMessagesWithNick to true, each message
|
|
#from bridge to matrix will by default be prefixed by the RemoteNickFormat setting. i
|
|
#OPTIONAL (default false)
|
|
PrefixMessagesWithNick=false
|
|
|
|
#Nicks you want to ignore.
|
|
#Regular expressions supported
|
|
#Messages from those users will not be sent to other bridges.
|
|
#OPTIONAL
|
|
IgnoreNicks="spammer1 spammer2"
|
|
|
|
#Messages you want to ignore.
|
|
#Messages matching these regexp will be ignored and not sent to other bridges
|
|
#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
|
|
#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
|
|
IgnoreMessages="^~~ badword"
|
|
|
|
#messages you want to replace.
|
|
#it replaces outgoing messages from the bridge.
|
|
#so you need to place it by the sending bridge definition.
|
|
#regular expressions supported
|
|
#some examples:
|
|
#this replaces cat => dog and sleep => awake
|
|
#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
|
|
#this replaces every number with number. 123 => numbernumbernumber
|
|
#replacemessages=[ ["[0-9]","number"] ]
|
|
#optional (default empty)
|
|
ReplaceMessages=[ ["cat","dog"] ]
|
|
|
|
#nicks you want to replace.
|
|
#see replacemessages for syntaxa
|
|
#optional (default empty)
|
|
ReplaceNicks=[ ["user--","user"] ]
|
|
|
|
#Extractnicks is used to for example rewrite messages from other relaybots
|
|
#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
|
|
#some examples:
|
|
#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
|
|
#you can use multiple entries for multiplebots
|
|
#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
|
|
#OPTIONAL (default empty)
|
|
ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
|
|
|
|
#extra label that can be used in the RemoteNickFormat
|
|
#optional (default empty)
|
|
Label=""
|
|
|
|
#RemoteNickFormat defines how remote users appear on this bridge
|
|
#See [general] config section for default options
|
|
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
|
|
|
|
#Enable to show users joins/parts from other bridges
|
|
#Currently works for messages from the following bridges: irc, mattermost, slack, discord
|
|
#OPTIONAL (default false)
|
|
ShowJoinPart=false
|
|
|
|
#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
|
|
#It will strip other characters from the nick
|
|
#OPTIONAL (default false)
|
|
StripNick=false
|
|
|
|
#Enable to show topic changes from other bridges
|
|
#Only works hiding/show topic changes from slack bridge for now
|
|
#OPTIONAL (default false)
|
|
ShowTopicChange=false
|
|
|
|
###################################################################
|
|
# NCTalk (Nextcloud Talk)
|
|
###################################################################
|
|
|
|
[nctalk.bridge]
|
|
|
|
# Url of your Nextcloud server
|
|
Server = "https://cloud.youdomain.me"
|
|
|
|
# Enable to not verify the certificate on your Nextcloud server.
|
|
# e.g. when using selfsigned certificates
|
|
# OPTIONAL (default false)
|
|
SkipTLSVerify=true
|
|
|
|
# Username of the bot
|
|
Login = "talkuser"
|
|
|
|
# Password of the bot
|
|
Password = "talkuserpass"
|
|
|
|
# Suffix for Guest Users
|
|
GuestSuffix = " (Guest)"
|
|
|
|
# Separate display name (Note: needs to be configured from Nextcloud Talk to work)
|
|
SeparateDisplayName=false
|
|
|
|
###################################################################
|
|
# Mumble
|
|
###################################################################
|
|
|
|
[mumble.bridge]
|
|
|
|
# Host and port of your Mumble server
|
|
Server = "mumble.yourdomain.me:64738"
|
|
|
|
# Nickname to log in as
|
|
Nick = "matterbridge"
|
|
|
|
# Some servers require a password
|
|
# OPTIONAL (default empty)
|
|
Password = "serverpasswordhere"
|
|
|
|
# User comment to set on the Mumble user, visible to other users.
|
|
# OPTIONAL (default empty)
|
|
UserComment="I am bridging text messages between this channel and #general on irc.yourdomain.me"
|
|
|
|
# Self-signed TLS client certificate + private key used to connect to
|
|
# Mumble. This is required if you want to register the matterbridge
|
|
# user on your Mumble server, so its nick becomes reserved.
|
|
# You can generate a keypair using e.g.
|
|
#
|
|
# openssl req -x509 -newkey rsa:2048 -nodes -days 10000 \
|
|
# -keyout mumble.key -out mumble.crt
|
|
#
|
|
# To actually register the matterbridege user, connect to Mumble as an
|
|
# admin, right click on the user and click "Register".
|
|
#
|
|
# OPTIONAL (default empty)
|
|
TLSClientCertificate="mumble.crt"
|
|
TLSClientKey="mumble.key"
|
|
|
|
# TLS CA certificate used to validate the Mumble server.
|
|
# OPTIONAL (defaults to Go system CA)
|
|
TLSCACertificate=mumble-ca.crt
|
|
|
|
# Enable to not verify the certificate on your Mumble server.
|
|
# e.g. when using selfsigned certificates
|
|
# OPTIONAL (default false)
|
|
SkipTLSVerify=false
|
|
|
|
#Message to show when a message is too big
|
|
#Default "<clipped message>"
|
|
MessageClipped="<clipped message>"
|
|
|
|
###################################################################
|
|
#VK
|
|
###################################################################
|
|
#
|
|
[vk.myvk]
|
|
#Group access token
|
|
#See https://vk.com/dev/bots_docs
|
|
Token="Yourtokenhere"
|
|
|
|
#Group ID
|
|
#For example in URL https://vk.com/public168963511 group ID is 168963511
|
|
GroupID=123456789
|
|
|
|
###################################################################
|
|
# WhatsApp
|
|
###################################################################
|
|
|
|
[whatsapp.bridge]
|
|
|
|
# Number you will use as a relay bot. Tip: Get some disposable sim card, don't rely on your own number.
|
|
Number="+48111222333"
|
|
|
|
# First time that you login you will need to scan QR code, then credentials willl be saved in a session file
|
|
# If you won't set SessionFile then you will need to scan QR code on every restart
|
|
# optional (by default the session is stored only in memory, till restarting matterbridge)
|
|
SessionFile="session-48111222333.gob"
|
|
|
|
# If your terminal is white we need to invert QR code in order for it to be scanned properly
|
|
# optional (default false)
|
|
QrOnWhiteTerminal=true
|
|
|
|
# Messages will be seen by other WhatsApp contacts as coming from the bridge. Original nick will be part of the message.
|
|
RemoteNickFormat="@{NICK}: "
|
|
|
|
# extra label that can be used in the RemoteNickFormat
|
|
# optional (default empty)
|
|
Label="Organization"
|
|
|
|
|
|
|
|
###################################################################
|
|
# zulip
|
|
###################################################################
|
|
|
|
[zulip]
|
|
|
|
#You can configure multiple servers "[zulip.name]" or "[zulip.name2]"
|
|
#In this example we use [zulip.streamchat]
|
|
#REQUIRED
|
|
|
|
[zulip.streamchat]
|
|
#Token to connect with zulip API (called bot API key in Settings - Your bots)
|
|
#REQUIRED
|
|
Token="Yourtokenhere"
|
|
|
|
#Username of the bot, normally called yourbot-bot@yourserver.zulipchat.com
|
|
#See username in Settings - Your bots
|
|
#REQUIRED
|
|
Login="yourbot-bot@yourserver.zulipchat.com"
|
|
|
|
#Servername of your zulip instance
|
|
#REQUIRED
|
|
Server="https://yourserver.zulipchat.com"
|
|
|
|
## RELOADABLE SETTINGS
|
|
## Settings below can be reloaded by editing the file
|
|
|
|
#Nicks you want to ignore.
|
|
#Regular expressions supported
|
|
#Messages from those users will not be sent to other bridges.
|
|
#OPTIONAL
|
|
IgnoreNicks="spammer1 spammer2"
|
|
|
|
#Messages you want to ignore.
|
|
#Messages matching these regexp will be ignored and not sent to other bridges
|
|
#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
|
|
#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
|
|
IgnoreMessages="^~~ badword"
|
|
|
|
#messages you want to replace.
|
|
#it replaces outgoing messages from the bridge.
|
|
#so you need to place it by the sending bridge definition.
|
|
#regular expressions supported
|
|
#some examples:
|
|
#this replaces cat => dog and sleep => awake
|
|
#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
|
|
#this replaces every number with number. 123 => numbernumbernumber
|
|
#replacemessages=[ ["[0-9]","number"] ]
|
|
#optional (default empty)
|
|
ReplaceMessages=[ ["cat","dog"] ]
|
|
|
|
#nicks you want to replace.
|
|
#see replacemessages for syntaxa
|
|
#optional (default empty)
|
|
ReplaceNicks=[ ["user--","user"] ]
|
|
|
|
#Extractnicks is used to for example rewrite messages from other relaybots
|
|
#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
|
|
#some examples:
|
|
#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
|
|
#you can use multiple entries for multiplebots
|
|
#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
|
|
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
|
|
#OPTIONAL (default empty)
|
|
ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
|
|
|
|
#extra label that can be used in the RemoteNickFormat
|
|
#optional (default empty)
|
|
Label=""
|
|
|
|
#RemoteNickFormat defines how remote users appear on this bridge
|
|
#See [general] config section for default options
|
|
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
|
|
|
|
#Enable to show users joins/parts from other bridges
|
|
#Currently works for messages from the following bridges: irc, mattermost, slack, discord
|
|
#OPTIONAL (default false)
|
|
ShowJoinPart=false
|
|
|
|
#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
|
|
#It will strip other characters from the nick
|
|
#OPTIONAL (default false)
|
|
StripNick=false
|
|
|
|
#Enable to show topic changes from other bridges
|
|
#Only works hiding/show topic changes from slack bridge for now
|
|
#OPTIONAL (default false)
|
|
ShowTopicChange=false
|
|
|
|
###################################################################
|
|
#API
|
|
###################################################################
|
|
[api]
|
|
#You can configure multiple API hooks
|
|
#In this example we use [api.local]
|
|
#REQUIRED
|
|
|
|
[api.local]
|
|
#Address to listen on for API
|
|
#REQUIRED
|
|
BindAddress="127.0.0.1:4242"
|
|
|
|
#Amount of messages to keep in memory
|
|
#OPTIONAL (library default 10)
|
|
Buffer=1000
|
|
|
|
#Bearer token used for authentication
|
|
#curl -H "Authorization: Bearer token" http://localhost:4242/api/messages
|
|
# https://github.com/vi/websocat
|
|
# websocat -H="Authorization: Bearer token" ws://127.0.0.1:4242/api/websocket
|
|
#OPTIONAL (no authorization if token is empty)
|
|
Token="mytoken"
|
|
|
|
#extra label that can be used in the RemoteNickFormat
|
|
#optional (default empty)
|
|
Label=""
|
|
|
|
#RemoteNickFormat defines how remote users appear on this bridge
|
|
#See [general] config section for default options
|
|
RemoteNickFormat="{NICK}"
|
|
|
|
|
|
|
|
###################################################################
|
|
#General configuration
|
|
###################################################################
|
|
# Settings here are defaults that each protocol can override
|
|
[general]
|
|
|
|
## RELOADABLE SETTINGS
|
|
## Settings below can be reloaded by editing the file
|
|
|
|
#RemoteNickFormat defines how remote users appear on this bridge
|
|
#The string "{NICK}" (case sensitive) will be replaced by the actual nick.
|
|
#The string "{USERID}" (case sensitive) will be replaced by the user ID.
|
|
#The string "{BRIDGE}" (case sensitive) will be replaced by the sending bridge
|
|
#The string "{LABEL}" (case sensitive) will be replaced by label= field of the sending bridge
|
|
#The string "{PROTOCOL}" (case sensitive) will be replaced by the protocol used by the bridge
|
|
#The string "{GATEWAY}" (case sensitive) will be replaced by the origin gateway name that is replicating the message.
|
|
#The string "{CHANNEL}" (case sensitive) will be replaced by the origin channel name used by the bridge
|
|
#The string "{TENGO}" (case sensitive) will be replaced by the output of the RemoteNickFormat script under [tengo]
|
|
#OPTIONAL (default empty)
|
|
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
|
|
|
|
#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
|
|
#It will strip other characters from the nick
|
|
#OPTIONAL (default false)
|
|
StripNick=false
|
|
|
|
|
|
#MediaServerUpload (or MediaDownloadPath) and MediaServerDownload are used for uploading
|
|
#images/files/video to a remote "mediaserver" (a webserver like caddy for example).
|
|
#When configured images/files uploaded on bridges like mattermost, slack, telegram will be
|
|
#downloaded and uploaded again to MediaServerUpload URL
|
|
#MediaDownloadPath is the filesystem path where the media file will be placed, instead of uploaded,
|
|
#for if Matterbridge has write access to the directory your webserver is serving.
|
|
#It is an alternative to MediaServerUpload.
|
|
#The MediaServerDownload will be used so that bridges without native uploading support:
|
|
#gitter, irc and xmpp will be shown links to the files on MediaServerDownload
|
|
#
|
|
#More information https://github.com/42wim/matterbridge/wiki/Mediaserver-setup-%28advanced%29
|
|
#OPTIONAL (default empty)
|
|
MediaServerUpload="https://user:pass@yourserver.com/upload"
|
|
#OPTIONAL (default empty)
|
|
MediaDownloadPath="/srv/http/yourserver.com/public/download"
|
|
#OPTIONAL (default empty)
|
|
MediaServerDownload="https://youserver.com/download"
|
|
|
|
#MediaDownloadSize is the maximum size of attachments, videos, images
|
|
#matterbridge will download and upload this file to bridges that also support uploading files.
|
|
#eg downloading from slack to upload it to mattermost
|
|
#
|
|
#It will only download from bridges that don't have public links available, which are for the moment
|
|
#slack, telegram, matrix and mattermost
|
|
#
|
|
#OPTIONAL (default 1000000 (1 megabyte))
|
|
MediaDownloadSize=1000000
|
|
|
|
#MediaDownloadBlacklist allows you to blacklist specific files from being downloaded.
|
|
#Filenames matching these regexp will not be download/uploaded to the mediaserver
|
|
#You can use regex for this, see https://regex-golang.appspot.com/assets/html/index.html for more regex info
|
|
#OPTIONAL (default empty)
|
|
MediaDownloadBlacklist=[".html$",".htm$"]
|
|
|
|
#IgnoreFailureOnStart allows you to ignore failing bridges on startup.
|
|
#Matterbridge will disable the failed bridge and continue with the other ones.
|
|
#Context: https://github.com/42wim/matterbridge/issues/455
|
|
#OPTIONAL (default false)
|
|
IgnoreFailureOnStart=false
|
|
|
|
#LogFile defines the location of a file to write logs into, rather
|
|
#than stdout.
|
|
#Logging will still happen on stdout if the file cannot be open for
|
|
#writing, or if the value is empty. Note that the log won't roll, so
|
|
#you might want to use logrotate(8) with this feature.
|
|
#OPTIONAL (default empty)
|
|
LogFile="/var/log/matterbridge.log"
|
|
|
|
###################################################################
|
|
#Tengo configuration
|
|
###################################################################
|
|
#More information about tengo on: https://github.com/d5/tengo/blob/master/docs/tutorial.md and
|
|
#https://github.com/d5/tengo/blob/master/docs/stdlib.md
|
|
|
|
[tengo]
|
|
#InMessage allows you to specify the location of a tengo (https://github.com/d5/tengo/) script.
|
|
#This script will receive every incoming message and can be used to modify the Username and the Text of that message.
|
|
#The script will have the following global variables:
|
|
#to modify: msgUsername and msgText
|
|
#to read: msgUserID, msgChannel, msgAccount
|
|
#
|
|
#The script is reloaded on every message, so you can modify the script on the fly.
|
|
#
|
|
#Example script can be found in https://github.com/42wim/matterbridge/tree/master/gateway/bench.tengo
|
|
#and https://github.com/42wim/matterbridge/tree/master/contrib/example.tengo
|
|
#
|
|
#The example below will check if the text contains blah and if so, it'll replace the text and the username of that message.
|
|
#text := import("text")
|
|
#if text.re_match("blah",msgText) {
|
|
# msgText="replaced by this"
|
|
# msgUsername="fakeuser"
|
|
#}
|
|
#OPTIONAL (default empty)
|
|
InMessage="example.tengo"
|
|
|
|
#OutMessage allows you to specify 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, inEvent
|
|
#outAccount, outProtocol, outChannel, outGateway, outEvent
|
|
#msgUserID
|
|
#
|
|
#read-write:
|
|
#msgText, msgUsername, msgDrop
|
|
#
|
|
#msgDrop is a bool which is default false, when set true this message will be dropped
|
|
#
|
|
#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.
|
|
#OPTIONAL (default empty)
|
|
OutMessage="example.tengo"
|
|
|
|
|
|
#RemoteNickFormat allows you to specify the location of a tengo (https://github.com/d5/tengo/) script.
|
|
#The script will have the following global variables:
|
|
#to modify: result
|
|
#to read: channel, bridge, gateway, protocol, nick, msgUserID
|
|
#
|
|
#The result will be set in {TENGO} in the RemoteNickFormat key of every bridge where {TENGO} is specified
|
|
#
|
|
#The script is reloaded on every message, so you can modify the script on the fly.
|
|
#
|
|
#Example script can be found in https://github.com/42wim/matterbridge/tree/master/contrib/remotenickformat.tengo
|
|
#
|
|
#OPTIONAL (default empty)
|
|
RemoteNickFormat="remotenickformat.tengo"
|
|
|
|
###################################################################
|
|
#Gateway configuration
|
|
###################################################################
|
|
|
|
#You can specify multiple gateways using [[gateway]]
|
|
#Each gateway has a [[gateway.in]] and a [[gateway.out]]
|
|
#[[gateway.in]] specifies the account and channels we will receive messages from.
|
|
#[[gateway.out]] specifies the account and channels we will send the messages
|
|
#from [[gateway.in]] to.
|
|
#
|
|
#Most of the time [[gateway.in]] and [[gateway.out]] are the same if you
|
|
#want bidirectional bridging. You can then use [[gateway.inout]]
|
|
#
|
|
|
|
[[gateway]]
|
|
#REQUIRED and UNIQUE
|
|
name="gateway1"
|
|
#Enable enables this gateway
|
|
##OPTIONAL (default false)
|
|
enable=true
|
|
|
|
# [[gateway.in]] specifies the account and channels we will receive messages from.
|
|
# The following example bridges between mattermost and irc
|
|
[[gateway.in]]
|
|
|
|
# account specified above
|
|
# REQUIRED
|
|
account="irc.libera"
|
|
|
|
# The channel key in each gateway is mapped to a similar group chat ID on the chat platform
|
|
# To find the group chat ID for different platforms, refer to the table below
|
|
#
|
|
# Platform | Identifier name | Example | Description
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# | channel | general | Do not include the # symbol
|
|
# discord | channel id | ID:123456789 | See https://github.com/42wim/matterbridge/issues/57
|
|
# | category/channel | Media/gaming | Without # symbol. If you're using discord categories to group your channels
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# gitter | username/room | general | As seen in the gitter.im URL
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# hipchat | id_channel | example needed | See https://www.hipchat.com/account/xmpp for the correct channel
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# irc | channel | #general | The # symbol is required and should be lowercase!
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# mattermost | channel | general | This is the channel name as seen in the URL, not the display name
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# matrix | #channel:server | #yourchannel:matrix.org | Encrypted rooms are not supported in matrix
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# msteams | threadId | 19:82abcxx@thread.skype | You'll find the threadId in the URL
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# mumble | channel id | 42 | The channel ID, as shown in the channel's "Edit" window
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# rocketchat | channel | #channel | # is required for private channels too
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# slack | channel name | general | Do not include the # symbol
|
|
# | channel id | ID:C123456 | The underlying ID of a channel. This doesn't work with webhooks.
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# steam | chatid | example needed | The number in the URL when you click "enter chat room" in the browser
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# nctalk | token | xs25tz5y | The token in the URL when you are in a chat. It will be the last part of the URL.
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# telegram | chatid | -123456789 | A large negative number. see https://www.linkedin.com/pulse/telegram-bots-beginners-marco-frau
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# vk | peerid | 2000000002 | A number that starts form 2000000000. Use --debug and send any message in chat to get PeerID in the logs
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# whatsapp | group JID | 48111222333-123455678999@g.us | A unique group JID. If you specify an empty string, bridge will list all the possibilities
|
|
# | "Group Name" | "Family Chat" | if you specify a group name, the bridge will find hint the JID to specify. Names can change over time and are not stable.
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# xmpp | channel | general | The room name
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
# zulip | stream/topic:topic | general/off-topic:food | Do not use the # when specifying a topic
|
|
# -------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
#
|
|
# REQUIRED
|
|
channel="#testing"
|
|
|
|
#OPTIONAL - only used for IRC and XMPP protocols at the moment
|
|
[gateway.in.options]
|
|
#OPTIONAL - your irc / xmpp channel key
|
|
key="yourkey"
|
|
|
|
|
|
#[[gateway.out]] specifies the account and channels we will sent messages to.
|
|
[[gateway.out]]
|
|
account="irc.libera"
|
|
channel="#testing"
|
|
|
|
#OPTIONAL - only used for IRC and XMPP protocols at the moment
|
|
[gateway.out.options]
|
|
#OPTIONAL - your irc / xmpp channel key
|
|
key="yourkey"
|
|
|
|
#[[gateway.inout]] can be used when then channel will be used to receive from
|
|
#and send messages to
|
|
[[gateway.inout]]
|
|
account="mattermost.work"
|
|
channel="off-topic"
|
|
|
|
#OPTIONAL - only used for IRC and XMPP protocols at the moment
|
|
[gateway.inout.options]
|
|
#OPTIONAL - your irc / xmpp channel key
|
|
key="yourkey"
|
|
|
|
# Discord specific gateway options
|
|
[[gateway.inout]]
|
|
account="discord.game"
|
|
channel="mygreatgame"
|
|
|
|
[gateway.inout.options]
|
|
# WebhookURL sends messages in the style of "puppets". You must configure a webhook URL for each channel you want to bridge.
|
|
# If you have more than one channel and don't wnat to configure each channel manually, see the "AutoWebhooks" option in the gateway config.
|
|
# Example: "https://discord.com/api/webhooks/1234/abcd_xyzw"
|
|
WebhookURL=""
|
|
|
|
[[gateway.inout]]
|
|
account="zulip.streamchat"
|
|
channel="general/topic:mytopic"
|
|
|
|
#API example
|
|
#[[gateway.inout]]
|
|
#account="api.local"
|
|
#channel="api"
|
|
#To send data to the api:
|
|
#curl -XPOST -H 'Content-Type: application/json' -d '{"text":"test","username":"randomuser","gateway":"gateway1"}' http://localhost:4242/api/message
|
|
#To read from the api:
|
|
#curl http://localhost:4242/api/messages
|
|
|
|
#If you want to do a 1:1 mapping between protocols where the channelnames are the same
|
|
#e.g. slack and mattermost you can use the samechannelgateway configuration
|
|
#the example configuration below send messages from channel testing on mattermost to
|
|
#channel testing on slack and vice versa. (and for the channel testing2 and testing3)
|
|
|
|
[[samechannelgateway]]
|
|
name="samechannel1"
|
|
enable = false
|
|
accounts = [ "mattermost.work","slack.hobby" ]
|
|
channels = [ "testing","testing2","testing3"]
|