287 lines
11 KiB
TOML
287 lines
11 KiB
TOML
#This is configuration for matterbridge.
|
|
#WARNING: as this file contains credentials, be sure to set correct file permissions
|
|
###################################################################
|
|
#IRC section
|
|
###################################################################
|
|
#REQUIRED to start IRC section
|
|
[irc]
|
|
|
|
#You can configure multiple servers "[irc.name]" or "[irc.name2]"
|
|
#In this example we use [irc.freenode]
|
|
#REQUIRED
|
|
[irc.freenode]
|
|
#irc server to connect to.
|
|
#REQUIRED
|
|
Server="irc.esper.net:6697"
|
|
|
|
#Password for irc server (if necessary)
|
|
#OPTIONAL (default "")
|
|
Password=""
|
|
|
|
#Enable to use TLS connection to your irc server.
|
|
#OPTIONAL (default false)
|
|
UseTLS=true
|
|
|
|
#Enable SASL (PLAIN) authentication. (freenode 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. i
|
|
#e.g. when using selfsigned certificates
|
|
#OPTIONAL (default false)
|
|
SkipTLSVerify=true
|
|
|
|
#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"
|
|
|
|
#If you registered your bot with a service like Nickserv on freenode.
|
|
#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"
|
|
|
|
#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.
|
|
#<message clipped> 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
|
|
#<message clipped> will be add to the message.
|
|
#OPTIONAL (default 400)
|
|
MessageLength=400
|
|
|
|
#Split messages on MessageLength instead of showing the <message clipped>
|
|
#WARNING: this could lead to flooding
|
|
#OPTIONAL (default false)
|
|
MessageSplit=false
|
|
|
|
#Delay in seconds to rejoin a channel when kicked
|
|
#OPTIONAL (default 0)
|
|
RejoinDelay=0
|
|
|
|
#Nicks you want to ignore.
|
|
#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"] ]
|
|
|
|
#RemoteNickFormat defines how remote users appear on this bridge
|
|
#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 "{PROTOCOL}" (case sensitive) will be replaced by the protocol used by the bridge
|
|
#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
|
|
#OPTIONAL (default empty)
|
|
RemoteNickFormat="[{PROTOCOL}.{BRIDGE}] <{NOPINGNICK}> "
|
|
|
|
#Enable to show users joins/parts from other bridges
|
|
#Currently works for messages from the following bridges: irc, mattermost, slack
|
|
#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.minecraft]
|
|
#REQUIRED
|
|
|
|
[api.minecraft]
|
|
#Address to listen on for API
|
|
#REQUIRED
|
|
BindAddress="127.0.0.1:4242"
|
|
|
|
#Amount of messages to keep in memory
|
|
Buffer=1000
|
|
|
|
#Bearer token used for authentication
|
|
#curl -H "Authorization: Bearer token" http://localhost:4242/api/messages
|
|
#OPTIONAL (no authorization if token is empty)
|
|
Token=""
|
|
|
|
#RemoteNickFormat defines how remote users appear on this bridge
|
|
#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 "{PROTOCOL}" (case sensitive) will be replaced by the protocol used by the bridge
|
|
#OPTIONAL (default empty)
|
|
RemoteNickFormat="{NICK}"
|
|
|
|
|
|
|
|
###################################################################
|
|
#General configuration
|
|
###################################################################
|
|
# Settings here are defaults that each protocol can override
|
|
[general]
|
|
#RemoteNickFormat defines how remote users appear on this bridge
|
|
#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 "{PROTOCOL}" (case sensitive) will be replaced by the protocol used by the bridge
|
|
#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 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
|
|
#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-%5Badvanced%5D
|
|
#OPTIONAL (default empty)
|
|
MediaServerUpload="https://user:pass@yourserver.com/upload"
|
|
#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
|
|
|
|
###################################################################
|
|
#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="minecraft"
|
|
#Enable enables this gateway
|
|
##OPTIONAL (default false)
|
|
enable=true
|
|
|
|
#API example
|
|
[[gateway.inout]]
|
|
account="api.minecraft"
|
|
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
|
|
|
|
|
|
#[[gateway.in]] specifies the account and channels we will receive messages from.
|
|
#The following example bridges between mattermost and irc
|
|
[[gateway.in]]
|
|
account="irc.freenode"
|
|
channel="#matterlink"
|
|
|
|
# #OPTIONAL - only used for IRC protocol at the moment
|
|
# [gateway.in.options]
|
|
# #OPTIONAL - your irc 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="irc.freenode"
|
|
channel="#matterlink-testing"
|
|
|
|
# #OPTIONAL - only used for IRC protocol at the moment
|
|
# [gateway.out.options]
|
|
# #OPTIONAL - your irc channel key
|
|
# key="yourkey"
|
|
|
|
# [[gateway.inout]]
|
|
# account="discord.game"
|
|
# channel="mygreatgame"
|
|
#
|
|
# #OPTIONAL - webhookurl only works for discord (it needs a different URL for each cahnnel)
|
|
# [gateway.inout.options]
|
|
# webhookurl=""https://discordapp.com/api/webhooks/123456789123456789/C9WPqExYWONPDZabcdef-def1434FGFjstasJX9pYht73y"
|
|
|
|
|
|
|
|
##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"] |