Thumbnail

rani/matterbridge.git

Clone URL: https://git.buni.party/rani/matterbridge.git

Viewing file on branch master

1#This is configuration for matterbridge.
2#WARNING: as this file contains credentials, be sure to set correct file permissions
3#See https://github.com/42wim/matterbridge/wiki/How-to-create-your-config for how to create your config
4#See https://github.com/42wim/matterbridge/wiki/Settings for all settings
5###################################################################
6#IRC section
7###################################################################
8#REQUIRED to start IRC section
9[irc]
10
11#You can configure multiple servers "[irc.name]" or "[irc.name2]"
12#In this example we use [irc.libera]
13#REQUIRED
14[irc.libera]
15#irc server to connect to.
16#REQUIRED
17Server="irc.libera.chat:6667"
18
19#Password for irc server (if necessary)
20#OPTIONAL (default "")
21Password=""
22
23#Enable to use TLS connection to your irc server.
24#OPTIONAL (default false)
25UseTLS=false
26
27#Use client certificate - see CertFP https://libera.chat/guides/certfp.html
28#Specify filename which contains private key and cert
29#OPTIONAL (default "")
30#
31#TLSClientCertificate="cert.pem"
32TLSClientCertificate=""
33
34#Enable SASL (PLAIN) authentication. (libera requires this from eg AWS hosts)
35#It uses NickServNick and NickServPassword as login and password
36#OPTIONAL (default false)
37UseSASL=false
38
39#Enable to not verify the certificate on your irc server.
40#e.g. when using selfsigned certificates
41#OPTIONAL (default false)
42SkipTLSVerify=true
43
44#Local address to use for server connection
45#Note that Server and Bind must resolve to addresses of the same family.
46#OPTIONAL (default "")
47Bind=""
48
49#If you know your charset, you can specify it manually.
50#Otherwise it tries to detect this automatically. Select one below
51# "iso-8859-2:1987", "iso-8859-9:1989", "866", "latin9", "iso-8859-10:1992", "iso-ir-109", "hebrew",
52# "cp932", "iso-8859-15", "cp437", "utf-16be", "iso-8859-3:1988", "windows-1251", "utf16", "latin6",
53# "latin3", "iso-8859-1:1987", "iso-8859-9", "utf-16le", "big5", "cp819", "asmo-708", "utf-8",
54# "ibm437", "iso-ir-157", "iso-ir-144", "latin4", "850", "iso-8859-5", "iso-8859-5:1988", "l3",
55# "windows-31j", "utf8", "iso-8859-3", "437", "greek", "iso-8859-8", "l6", "l9-iso-8859-15",
56# "iso-8859-2", "latin2", "iso-ir-100", "iso-8859-6", "arabic", "iso-ir-148", "us-ascii", "x-sjis",
57# "utf16be", "iso-8859-8:1988", "utf16le", "l4", "utf-16", "iso-ir-138", "iso-8859-7", "iso-8859-7:1987",
58# "windows-1252", "l2", "koi8-r", "iso8859-1", "latin1", "ecma-114", "iso-ir-110", "elot-928",
59# "iso-ir-126", "iso-8859-1", "iso-ir-127", "cp850", "cyrillic", "greek8", "windows-1250", "iso-latin-1",
60# "l5", "ibm866", "cp866", "ms-kanji", "ibm850", "ecma-118", "iso-ir-101", "ibm819", "l1", "iso-8859-6:1987",
61# "latin5", "ascii", "sjis", "iso-8859-10", "iso-8859-4", "iso-8859-4:1988", "shift-jis
62# The select charset will be converted to utf-8 when sent to other bridges.
63#OPTIONAL (default "")
64Charset=""
65
66#Your nick on irc.
67#REQUIRED
68Nick="matterbot"
69
70#Real name/gecos displayed in e.g. /WHOIS and /WHO
71#OPTIONAL (defaults to the nick)
72RealName="Matterbridge instance on IRC"
73
74#IRC username/ident preceding the hostname in hostmasks and /WHOIS
75#OPTIONAL (defaults to the nick)
76UserName="bridge"
77
78#If you registered your bot with a service like Nickserv on libera.
79#Also being used when UseSASL=true
80#
81#Note: if you want do to quakenet auth, set NickServNick="Q@CServe.quakenet.org"
82#OPTIONAL
83NickServNick="nickserv"
84NickServPassword="secret"
85
86#OPTIONAL only used for quakenet auth
87NickServUsername="username"
88
89## RELOADABLE SETTINGS
90## Settings below can be reloaded by editing the file
91
92#Flood control
93#Delay in milliseconds between each message send to the IRC server
94#OPTIONAL (default 1300)
95MessageDelay=1300
96
97#Maximum amount of messages to hold in queue. If queue is full
98#messages will be dropped.
99#<clipped message> will be add to the message that fills the queue.
100#OPTIONAL (default 30)
101MessageQueue=30
102
103#Maximum length of message sent to irc server. If it exceeds
104#<clipped message> will be add to the message.
105#OPTIONAL (default 400)
106MessageLength=400
107
108#Split messages on MessageLength instead of showing the <clipped message>
109#WARNING: this could lead to flooding
110#OPTIONAL (default false)
111MessageSplit=false
112
113#Message to show when a message is too big
114#Default "<clipped message>"
115MessageClipped="<clipped message>"
116
117#Delay in seconds to rejoin a channel when kicked
118#OPTIONAL (default 0)
119RejoinDelay=0
120
121#ColorNicks will show each nickname in a different color.
122#Only works in IRC right now.
123ColorNicks=false
124
125#RunCommands allows you to send RAW irc commands after connection.
126#The string {BOTNICK} (case sensitive) will be replaced with the bot's current nickname.
127#Array of strings
128#OPTIONAL (default empty)
129RunCommands=["PRIVMSG user hello","PRIVMSG chanserv something", "MODE {BOTNICK} +B"]
130
131#PingDelay specifies how long to wait to send a ping to the irc server.
132#You can use s for second, m for minute
133#String
134#OPTIONAL (default 1m)
135PingDelay="1m"
136
137#StripMarkdown strips markdown from messages
138#OPTIONAL (default false)
139StripMarkdown=false
140
141#Nicks you want to ignore.
142#Regular expressions supported
143#Messages from those users will not be sent to other bridges.
144#OPTIONAL
145IgnoreNicks="ircspammer1 ircspammer2"
146
147#Messages you want to ignore.
148#Messages matching these regexp will be ignored and not sent to other bridges
149#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
150#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
151IgnoreMessages="^~~ badword"
152
153#messages you want to replace.
154#it replaces outgoing messages from the bridge.
155#so you need to place it by the sending bridge definition.
156#regular expressions supported
157#some examples:
158#this replaces cat => dog and sleep => awake
159#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
160#this replaces every number with number. 123 => numbernumbernumber
161#replacemessages=[ ["[0-9]","number"] ]
162#optional (default empty)
163ReplaceMessages=[ ["cat","dog"] ]
164
165#nicks you want to replace.
166#see replacemessages for syntax
167#optional (default empty)
168ReplaceNicks=[ ["user--","user"] ]
169
170#Extractnicks is used to for example rewrite messages from other relaybots
171#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
172#some examples:
173#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
174#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
175#you can use multiple entries for multiplebots
176#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
177#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
178#OPTIONAL (default empty)
179ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
180
181#extra label that can be used in the RemoteNickFormat
182#optional (default empty)
183Label=""
184
185#RemoteNickFormat defines how remote users appear on this bridge
186#See [general] config section for default options
187#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
188RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
189
190#Enable to show users joins/parts from other bridges
191#Currently works for messages from the following bridges: irc, mattermost, mumble, slack, discord
192#OPTIONAL (default false)
193ShowJoinPart=false
194
195#Enable to show verbose users joins/parts (ident@host) from other bridges
196#Currently works for messages from the following bridges: irc
197#OPTIONAL (default false)
198VerboseJoinPart=false
199
200#Do not send joins/parts to other bridges
201#Currently works for messages from the following bridges: irc, mattermost, mumble, slack, discord
202#OPTIONAL (default false)
203NoSendJoinPart=false
204
205#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
206#It will strip other characters from the nick
207#OPTIONAL (default false)
208StripNick=false
209
210#Enable to show topic changes from other bridges
211#Only works hiding/show topic changes from slack bridge for now
212#OPTIONAL (default false)
213ShowTopicChange=false
214
215#Delay in milliseconds between channel joins
216#Only useful when you have a LOT of channels to join
217#See https://github.com/42wim/matterbridge/issues/1084
218#OPTIONAL (default 0)
219JoinDelay=0
220
221#Use the optional RELAYMSG extension for username spoofing on IRC.
222#This requires an IRCd that supports the draft/relaymsg specification: currently this includes
223#Oragono 2.4.0+ and InspIRCd 3 with the m_relaymsg contrib module.
224#See https://github.com/42wim/matterbridge/issues/667#issuecomment-634214165 for more details.
225#Spoofed nicks will use the configured RemoteNickFormat, replacing reserved IRC characters
226#(!+%@&#$:'"?*,.) with a hyphen (-).
227#On most configurations, the RemoteNickFormat must include a separator character such as "/".
228#You should make sure that the settings here match your IRCd.
229#This option overrides ColorNicks.
230#OPTIONAL (default false)
231UseRelayMsg=false
232#RemoteNickFormat="{NICK}/{PROTOCOL}"
233
234###################################################################
235#XMPP section
236###################################################################
237[xmpp]
238
239#You can configure multiple servers "[xmpp.name]" or "[xmpp.name2]"
240#In this example we use [xmpp.jabber]
241#REQUIRED
242[xmpp.jabber]
243#xmpp server to connect to.
244#REQUIRED
245Server="jabber.example.com:5222"
246
247#Use anonymous MUC login
248#OPTIONAL (default false)
249Anonymous=false
250
251#Jid
252#REQUIRED if Anonymous=false
253Jid="user@example.com"
254
255#Password
256#REQUIRED if Anonymous=false
257Password="yourpass"
258
259#MUC
260#REQUIRED
261Muc="conference.jabber.example.com"
262
263#Your nick in the rooms
264#REQUIRED
265Nick="xmppbot"
266
267#Enable to not verify the certificate on your xmpp server.
268#e.g. when using selfsigned certificates
269#OPTIONAL (default false)
270SkipTLSVerify=true
271
272#Enable to use plaintext connection to your XMPP server.
273#OPTIONAL (default false)
274NoTLS=true
275
276## RELOADABLE SETTINGS
277## Settings below can be reloaded by editing the file
278
279#Nicks you want to ignore.
280#Regular expressions supported
281#Messages from those users will not be sent to other bridges.
282#OPTIONAL
283IgnoreNicks="ircspammer1 ircspammer2"
284
285#Messages you want to ignore.
286#Messages matching these regexp will be ignored and not sent to other bridges
287#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
288#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
289IgnoreMessages="^~~ badword"
290
291#Messages you want to replace.
292#It replaces outgoing messages from the bridge.
293#So you need to place it by the sending bridge definition.
294#Regular expressions supported
295#Some examples:
296#This replaces cat => dog and sleep => awake
297#ReplaceMessages=[ ["cat","dog"], ["sleep","awake"] ]
298#This Replaces every number with number. 123 => numbernumbernumber
299#ReplaceMessages=[ ["[0-9]","number"] ]
300#OPTIONAL (default empty)
301ReplaceMessages=[ ["cat","dog"] ]
302
303#Nicks you want to replace.
304#See ReplaceMessages for syntax
305#OPTIONAL (default empty)
306ReplaceNicks=[ ["user--","user"] ]
307
308#Extractnicks is used to for example rewrite messages from other relaybots
309#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
310#some examples:
311#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
312#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
313#you can use multiple entries for multiplebots
314#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
315#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
316#OPTIONAL (default empty)
317ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
318
319#extra label that can be used in the RemoteNickFormat
320#optional (default empty)
321Label=""
322
323#RemoteNickFormat defines how remote users appear on this bridge
324#See [general] config section for default options
325RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
326
327#Enable to show users joins/parts from other bridges
328#Currently works for messages from the following bridges: irc, mattermost, mumble, slack, discord
329#OPTIONAL (default false)
330ShowJoinPart=false
331
332#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
333#It will strip other characters from the nick
334#OPTIONAL (default false)
335StripNick=false
336
337#Enable to show topic changes from other bridges
338#Only works hiding/show topic changes from slack bridge for now
339#OPTIONAL (default false)
340ShowTopicChange=false
341
342#Enable sending messages using a webhook instead of regular MUC messages.
343#Only works with a prosody server using mod_slack_webhook. Does not support editing.
344#OPTIONAL (default "")
345WebhookURL="https://yourdomain/prosody/msg/someid"
346
347###################################################################
348#mattermost section
349###################################################################
350[mattermost]
351#You can configure multiple servers "[mattermost.name]" or "[mattermost.name2]"
352#In this example we use [mattermost.work]
353#REQUIRED
354
355[mattermost.work]
356#The mattermost hostname. (do not prefix it with http or https)
357#REQUIRED (when not using webhooks)
358Server="yourmattermostserver.domain"
359
360#Your team on mattermost.
361#REQUIRED (when not using webhooks)
362Team="yourteam"
363
364#login/pass of your bot.
365#Use a dedicated user for this and not your own!
366#REQUIRED (when not using webhooks)
367Login="yourlogin"
368Password="yourpass"
369
370#personal access token of the bot.
371#new feature since mattermost 4.1. See https://docs.mattermost.com/developer/personal-access-tokens.html
372#OPTIONAL (you can use token instead of login/password)
373#Token="abcdefghijklm"
374
375#Enable this to make a http connection (instead of https) to your mattermost.
376#OPTIONAL (default false)
377NoTLS=false
378
379#### Settings for webhook matterbridge.
380#NOT RECOMMENDED TO USE INCOMING/OUTGOING WEBHOOK. USE DEDICATED BOT USER WHEN POSSIBLE!
381#You don't need to configure this, if you have configured the settings
382#above.
383
384#Url is your incoming webhook url as specified in mattermost.
385#See account settings - integrations - incoming webhooks on mattermost.
386#If specified, messages will be sent to mattermost using this URL
387#OPTIONAL
388WebhookURL="https://yourdomain/hooks/yourhookkey"
389
390#Address to listen on for outgoing webhook requests from mattermost.
391#See account settings - integrations - outgoing webhooks on mattermost.
392#If specified, messages will be received from mattermost on this ip:port
393#(this will only work if WebhookURL above is also configured)
394#OPTIONAL
395WebhookBindAddress="0.0.0.0:9999"
396
397#Icon that will be showed in mattermost.
398#This only works when WebhookURL is configured
399#OPTIONAL
400IconURL="http://youricon.png"
401
402#### End settings for webhook matterbridge.
403
404#Enable to not verify the certificate on your mattermost server.
405#e.g. when using selfsigned certificates
406#OPTIONAL (default false)
407SkipTLSVerify=true
408
409## RELOADABLE SETTINGS
410## Settings below can be reloaded by editing the file
411
412# UseUserName shows the username instead of the server nickname
413# OPTIONAL (default false)
414UseUserName=false
415
416#how to format the list of IRC nicks when displayed in mattermost.
417#Possible options are "table" and "plain"
418#OPTIONAL (default plain)
419NickFormatter="plain"
420#How many nicks to list per row for formatters that support this.
421#OPTIONAL (default 4)
422NicksPerRow=4
423
424#Skip the Mattermost server version checks that are normally done when connecting.
425#The usage scenario for this feature would be when the Mattermost instance is hosted behind a
426#reverse proxy that suppresses "non-standard" response headers in flight.
427#OPTIONAL (default false)
428SkipVersionCheck=false
429
430#Whether to prefix messages from other bridges to mattermost with the sender's nick.
431#Useful if username overrides for incoming webhooks isn't enabled on the
432#mattermost server. If you set PrefixMessagesWithNick to true, each message
433#from bridge to Mattermost will by default be prefixed by "bridge-" + nick. You can,
434#however, modify how the messages appear, by setting (and modifying) RemoteNickFormat
435#OPTIONAL (default false)
436PrefixMessagesWithNick=false
437
438#Disable sending of edits to other bridges
439#OPTIONAL (default false)
440EditDisable=false
441
442#Message to be appended to every edited message
443#OPTIONAL (default empty)
444EditSuffix=" (edited)"
445
446#Nicks you want to ignore.
447#Regular expressions supported
448#Messages from those users will not be sent to other bridges.
449#OPTIONAL
450IgnoreNicks="ircspammer1 ircspammer2"
451
452#Messages you want to ignore.
453#Messages matching these regexp will be ignored and not sent to other bridges
454#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
455#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
456IgnoreMessages="^~~ badword"
457
458#messages you want to replace.
459#it replaces outgoing messages from the bridge.
460#so you need to place it by the sending bridge definition.
461#regular expressions supported
462#some examples:
463#this replaces cat => dog and sleep => awake
464#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
465#this replaces every number with number. 123 => numbernumbernumber
466#replacemessages=[ ["[0-9]","number"] ]
467#optional (default empty)
468ReplaceMessages=[ ["cat","dog"] ]
469
470#nicks you want to replace.
471#see replacemessages for syntax
472#optional (default empty)
473ReplaceNicks=[ ["user--","user"] ]
474
475#Extractnicks is used to for example rewrite messages from other relaybots
476#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
477#some examples:
478#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
479#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
480#you can use multiple entries for multiplebots
481#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
482#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
483#OPTIONAL (default empty)
484ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
485
486#extra label that can be used in the RemoteNickFormat
487#optional (default empty)
488Label=""
489
490#RemoteNickFormat defines how remote users appear on this bridge
491#See [general] config section for default options
492RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
493
494#Enable to show users joins/parts from other bridges
495#Currently works for messages from the following bridges: irc, mattermost, mumble, slack, discord
496#OPTIONAL (default false)
497ShowJoinPart=false
498
499#Do not send joins/parts to other bridges
500#Currently works for messages from the following bridges: irc, mattermost, mumble, slack, discord
501#OPTIONAL (default false)
502NoSendJoinPart=false
503
504#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
505#It will strip other characters from the nick
506#OPTIONAL (default false)
507StripNick=false
508
509#Enable to show topic changes from other bridges
510#Only works hiding/show topic changes from slack bridge for now
511#OPTIONAL (default false)
512ShowTopicChange=false
513
514###################################################################
515<<<<<<< HEAD
516#
517# Keybase
518# You should have a separate bridge account on Keybase
519# (it also needs to be logged in on the system you're running the bridge on)
520#
521###################################################################
522
523[keybase.myteam]
524
525# RemoteNickFormat defines how remote users appear on this bridge
526# See [general] config section for default options
527RemoteNickFormat="{NICK} ({PROTOCOL}): "
528
529# extra label that can be used in the RemoteNickFormat
530# optional (default empty)
531Label=""
532
533# Your team on Keybase.
534# The bot user MUST be a member of this team
535# REQUIRED
536Team="myteam"
537
538###################################################################
539#
540# Mastodon
541#
542###################################################################
543
544[mastodon]
545[mastodon.myaccount]
546
547# Your mastodon instance url.
548# REQUIRED
549Server="https://mastodon.social"
550
551# Application client key
552# REQUIRED
553ClientID="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
554
555# Application client secret
556# REQUIRED
557ClientSecret="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
558
559# Application access token
560# REQUIRED
561AccessToken="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
562
563###################################################################
564# Microsoft teams section
565# See https://github.com/42wim/matterbridge/wiki/MS-Teams-setup
566###################################################################
567
568[msteams.myteam]
569
570# TenantID
571# See https://github.com/42wim/matterbridge/wiki/MS-Teams-setup#get-necessary-ids-for-matterbridge
572TenantID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
573
574# ClientID
575# See https://github.com/42wim/matterbridge/wiki/MS-Teams-setup#get-necessary-ids-for-matterbridge
576ClientID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
577
578# TeamID
579# See https://github.com/42wim/matterbridge/wiki/MS-Teams-setup#get-necessary-ids-for-matterbridge
580TeamID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
581
582## RELOADABLE SETTINGS
583## Settings below can be reloaded by editing the file
584
585#Nicks you want to ignore.
586#Regular expressions supported
587#Messages from those users will not be sent to other bridges.
588#OPTIONAL
589IgnoreNicks="ircspammer1 ircspammer2"
590
591#Messages you want to ignore.
592#Messages matching these regexp will be ignored and not sent to other bridges
593#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
594#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
595IgnoreMessages="^~~ badword"
596
597#messages you want to replace.
598#it replaces outgoing messages from the bridge.
599#so you need to place it by the sending bridge definition.
600#regular expressions supported
601#some examples:
602#this replaces cat => dog and sleep => awake
603#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
604#this replaces every number with number. 123 => numbernumbernumber
605#replacemessages=[ ["[0-9]","number"] ]
606#optional (default empty)
607ReplaceMessages=[ ["cat","dog"] ]
608
609#nicks you want to replace.
610#see replacemessages for syntax
611#optional (default empty)
612ReplaceNicks=[ ["user--","user"] ]
613
614#Extractnicks is used to for example rewrite messages from other relaybots
615#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
616#some examples:
617#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
618#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
619#you can use multiple entries for multiplebots
620#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
621#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
622#OPTIONAL (default empty)
623ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
624
625#extra label that can be used in the RemoteNickFormat
626#optional (default empty)
627Label=""
628
629#RemoteNickFormat defines how remote users appear on this bridge
630#See [general] config section for default options
631RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
632
633#Enable to show users joins/parts from other bridges
634#Currently works for messages from the following bridges: irc, mattermost, mumble, slack, discord
635#OPTIONAL (default false)
636ShowJoinPart=false
637
638#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
639#It will strip other characters from the nick
640#OPTIONAL (default false)
641StripNick=false
642
643#Enable to show topic changes from other bridges
644#Only works hiding/show topic changes from slack bridge for now
645#OPTIONAL (default false)
646ShowTopicChange=false
647
648#Opportunistically preserve threaded replies between bridges
649#that support threading
650#OPTIONAL (default false)
651PreserveThreading=false
652
653###################################################################
654#slack section
655###################################################################
656[slack]
657
658#You can configure multiple servers "[slack.name]" or "[slack.name2]"
659#In this example we use [slack.hobby]
660#REQUIRED
661[slack.hobby]
662#Token to connect with the Slack API
663#You'll have to use a test/api-token using a dedicated user and not a bot token.
664#See https://github.com/42wim/matterbridge/issues/75 for more info.
665#Use https://api.slack.com/custom-integrations/legacy-tokens
666#REQUIRED (when not using webhooks)
667Token="yourslacktoken"
668
669#Extra slack specific debug info, warning this generates a lot of output.
670#OPTIONAL (default false)
671Debug="false"
672
673#### Settings for webhook matterbridge.
674#NOT RECOMMENDED TO USE INCOMING/OUTGOING WEBHOOK. USE SLACK API
675#AND DEDICATED BOT USER WHEN POSSIBLE!
676#Url is your incoming webhook url as specified in slack
677#See account settings - integrations - incoming webhooks on slack
678#OPTIONAL
679WebhookURL="https://hooks.slack.com/services/yourhook"
680
681#NOT RECOMMENDED TO USE INCOMING/OUTGOING WEBHOOK. USE SLACK API
682#AND DEDICATED BOT USER WHEN POSSIBLE!
683#Address to listen on for outgoing webhook requests from slack
684#See account settings - integrations - outgoing webhooks on slack
685#webhooks
686#OPTIONAL
687WebhookBindAddress="0.0.0.0:9999"
688
689#Icon that will be showed in slack
690#The string "{NICK}" (case sensitive) will be replaced by the actual nick / username.
691#The string "{BRIDGE}" (case sensitive) will be replaced by the sending bridge
692#The string "{LABEL}" (case sensitive) will be replaced by label= field of the sending bridge
693#The string "{PROTOCOL}" (case sensitive) will be replaced by the protocol used by the bridge
694#OPTIONAL
695IconURL="https://robohash.org/{NICK}.png?size=48x48"
696
697## RELOADABLE SETTINGS
698## Settings below can be reloaded by editing the file
699
700#how to format the list of IRC nicks when displayed in slack
701#Possible options are "table" and "plain"
702#OPTIONAL (default plain)
703NickFormatter="plain"
704#How many nicks to list per row for formatters that support this.
705#OPTIONAL (default 4)
706NicksPerRow=4
707
708#Disable sending of edits to other bridges
709#OPTIONAL (default false)
710EditDisable=true
711
712#Message to be appended to every edited message
713#OPTIONAL (default empty)
714EditSuffix=" (edited)"
715
716#Whether to prefix messages from other bridges to mattermost with RemoteNickFormat
717#Useful if username overrides for incoming webhooks isn't enabled on the
718#slack server. If you set PrefixMessagesWithNick to true, each message
719#from bridge to Slack will by default be prefixed by "bridge-" + nick. You can,
720#however, modify how the messages appear, by setting (and modifying) RemoteNickFormat
721#OPTIONAL (default false)
722PrefixMessagesWithNick=false
723
724#Nicks you want to ignore.
725#Regular expressions supported
726#Messages from those users will not be sent to other bridges.
727#OPTIONAL
728IgnoreNicks="ircspammer1 ircspammer2"
729
730#Messages you want to ignore.
731#Messages matching these regexp will be ignored and not sent to other bridges
732#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
733#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
734IgnoreMessages="^~~ badword"
735
736#messages you want to replace.
737#it replaces outgoing messages from the bridge.
738#so you need to place it by the sending bridge definition.
739#regular expressions supported
740#some examples:
741#this replaces cat => dog and sleep => awake
742#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
743#this replaces every number with number. 123 => numbernumbernumber
744#replacemessages=[ ["[0-9]","number"] ]
745#optional (default empty)
746ReplaceMessages=[ ["cat","dog"] ]
747
748#nicks you want to replace.
749#see replacemessages for syntax
750#optional (default empty)
751ReplaceNicks=[ ["user--","user"] ]
752
753#Extractnicks is used to for example rewrite messages from other relaybots
754#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
755#some examples:
756#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
757#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
758#you can use multiple entries for multiplebots
759#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
760#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
761#OPTIONAL (default empty)
762ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
763
764#extra label that can be used in the RemoteNickFormat
765#optional (default empty)
766Label=""
767
768#RemoteNickFormat defines how remote users appear on this bridge
769#See [general] config section for default options
770RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
771
772#Enable to show users joins/parts from other bridges
773#Currently works for messages from the following bridges: irc, mattermost, mumble, slack, discord
774#OPTIONAL (default false)
775ShowJoinPart=false
776
777#Do not send joins/parts to other bridges
778#Currently works for messages from the following bridges: irc, mattermost, mumble, slack, discord
779#OPTIONAL (default false)
780NoSendJoinPart=false
781
782#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
783#It will strip other characters from the nick
784#OPTIONAL (default false)
785StripNick=false
786
787#Enable to show topic changes from other bridges
788#Only works hiding/show topic changes from slack bridge for now
789#OPTIONAL (default false)
790ShowTopicChange=false
791
792#Opportunistically preserve threaded replies between Slack channels.
793#This only works if the parent message is still in the cache.
794#Cache is flushed between restarts.
795#Note: Not currently working on gateways with mixed bridges of
796# both slack and slack-legacy type. Context in issue #624.
797#OPTIONAL (default false)
798PreserveThreading=false
799
800#Enable showing "user_typing" events from across gateway when available.
801#Protip: Set your bot/user's "Full Name" to be "Someone (over chat bridge)",
802#and so the message will say "Someone (over chat bridge) is typing".
803#OPTIONAL (default false)
804ShowUserTyping=false
805
806#Message to show when a message is too big
807#Default "<clipped message>"
808MessageClipped="<clipped message>"
809
810#If enabled use the slack "Real Name" as username.
811#OPTIONAL (default false)
812UseFullName=false
813
814###################################################################
815#discord section
816###################################################################
817[discord]
818
819# You can configure multiple servers "[discord.name]" or "[discord.name2]"
820# In this example we use [discord.game]
821#REQUIRED
822[discord.game]
823# Token (REQUIRED) is the token to connect with Discord API
824# You can get your token by following the instructions on
825# https://github.com/reactiflux/discord-irc/wiki/Creating-a-discord-bot-&-getting-a-token
826# 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.
827Token="Yourtokenhere"
828
829# Server (REQUIRED) is the ID or name of the guild to connect to, selected from the guilds the bot has been invited to
830Server="yourservername"
831
832## RELOADABLE SETTINGS
833## All settings below can be reloaded by editing the file.
834## They are also all optional.
835
836# AllowMention controls which mentions are allowed. If not specified, all mentions are allowed.
837# Note that even when a mention is not allowed, it will still be displayed nicely and be clickable. It just prevents the ping/notification.
838#
839# "everyone" allows @everyone and @here mentions
840# "roles" allows @role mentions
841# "users" allows @user mentions
842AllowMention=["everyone", "roles", "users"]
843
844# ShowEmbeds shows the title, description and URL of embedded messages (sent by other bots)
845ShowEmbeds=false
846
847# UseLocalAvatar specifies source bridges for which an avatar should be 'guessed' when an incoming message has no avatar.
848# This works by comparing the username of the message to an existing Discord user, and using the avatar of the Discord user.
849#
850# This only works if WebhookURL is set (AND the message has no avatar).
851# Example: ["irc"]
852UseLocalAvatar=[]
853
854# UseUserName shows the username instead of the server nickname
855UseUserName=false
856
857# UseDiscriminator appends the `#xxxx` discriminator when used with UseUserName
858UseDiscriminator=false
859
860# AutoWebhooks automatically configures message sending in the style of puppets.
861# This is an easier alternative to manually configuring "WebhookURL" for each gateway,
862# as turning this on will automatically load or create webhooks for each channel.
863# This feature requires the "Manage Webhooks" permission (either globally or as per-channel).
864AutoWebhooks=false
865
866# EditDisable disables sending of edits to other bridges
867EditDisable=false
868
869# EditSuffix specifies the message to be appended to every edited message
870# Example: " (edited)"
871EditSuffix=""
872
873# IgnoreNicks mutes outgoing messages from certain users.
874# Messages from these users will not be transmitted to other bridges.
875# Regular expressions are also supported.
876# Example: "ircspammer1 ircspammer2"
877IgnoreNicks=""
878
879# IgnoreMessages mutes outgoing messages of a certain format.
880# Messages matching this regular expression will not be transmitted sent to other bridges
881# See https://regex-golang.appspot.com/assets/html/index.html for more regex info
882#
883# Example that ignores messages starting with ~~ or messages containing badword:
884# IgnoreMessages="^~~ badword"
885IgnoreMessages=""
886
887# ReplaceMessages replaces substrings of messages in outgoing messages.
888# Regular expressions are supported.
889#
890# Example that replaces 'cat' => 'dog' and 'sleep' => 'awake':
891# ReplaceMessages=[ ["cat","dog"], ["sleep","awake"] ]
892# Example that replaces all digits with the letter 'X', so 'hello123' becomes 'helloXXX':
893# ReplaceMessages=[ ["[0-9]","X"] ]
894ReplaceMessages=[]
895
896# ReplaceNicks replaces substrings of usernames in outgoing messages.
897# See the ReplaceMessages setting for examples.
898# Example: [ ["user--","user"] ]
899ReplaceNicks=[]
900
901# ExtractNicks allows for interoperability with other bridge software by rewriting messages and extracting usernames.
902#
903# Recommended reading:
904# - https://github.com/42wim/matterbridge/issues/466
905# - https://github.com/42wim/matterbridge/issues/713
906#
907# This example translates the following message
908# "Relaybot: <relayeduser> something interesting"
909# into this message
910# "relayeduser: something interesting"
911# like so:
912# ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
913#
914# This example translates the following message
915# "otherbot: (relayeduser) something else"
916# into this message
917# "relayeduser: something else"
918# like so:
919# ExtractNicks=[ [ "otherbot","\\((.*?)\\)\\s+" ] ]
920#
921# This example combines both of the above examples into one:
922# ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
923#
924ExtractNicks=[]
925
926# Label is as an extra identifier for use in the RemoteNickFormat setting.
927Label=""
928
929# RemoteNickFormat formats how remote users appear on this bridge.
930# See the [general] config section for default options
931RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
932
933# ShowJoinPart emits messages that show joins/parts from other bridges
934# Supported from the following bridges: irc, mattermost, slack, discord
935ShowJoinPart=false
936
937# StripNick strips non-alphanumeric characters from nicknames.
938# Recommended reading: https://github.com/42wim/matterbridge/issues/285
939StripNick=false
940
941# ShowTopicChange emits messages that show topic/purpose updates from other bridges
942# Supported from the following bridges: slack
943ShowTopicChange=false
944
945# SyncTopic synchronises topic/purpose updates from other bridges
946# Supported from the following bridges: slack
947SyncTopic=false
948
949# Message to show when a message is too big
950# Default "<clipped message>"
951MessageClipped="<clipped message>"
952
953#Disable quoted/reply messages
954#OPTIONAL (default false)
955QuoteDisable=false
956
957#Set the max. quoted length if 0 the whole message will be quoted
958#OPTIONAL (default 0)
959QuoteLengthLimit=0
960
961#Format quoted/reply messages
962#OPTIONAL (default "{MESSAGE} (re @{QUOTENICK}: {QUOTEMESSAGE})")
963QuoteFormat="{MESSAGE} (re @{QUOTENICK}: {QUOTEMESSAGE})"
964
965# Before clipping, try to split messages into at most this many parts. 0 is treated like 1.
966# Be careful with large numbers, as this might cause flooding.
967# Example: A maximum telegram message of 4096 bytes is received. This requires 3 Discord
968# messages (each capped at a hardcoded 1950 bytes).
969# Default 1
970MessageSplitMaxCount=3
971
972###################################################################
973#telegram section
974###################################################################
975[telegram]
976
977#You can configure multiple servers "[telegram.name]" or "[telegram.name2]"
978#In this example we use [telegram.secure]
979#REQUIRED
980[telegram.secure]
981#Token to connect with telegram API
982#See https://core.telegram.org/bots#6-botfather and https://www.linkedin.com/pulse/telegram-bots-beginners-marco-frau
983#REQUIRED
984Token="Yourtokenhere"
985
986## RELOADABLE SETTINGS
987## Settings below can be reloaded by editing the file
988
989#OPTIONAL (default empty)
990#Supported formats are:
991#"HTML" https://core.telegram.org/bots/api#html-style
992#"Markdown" https://core.telegram.org/bots/api#markdown-style - deprecated, doesn't display links with underscores correctly
993#"MarkdownV2" https://core.telegram.org/bots/api#markdownv2-style
994#"HTMLNick" - only allows HTML for the nick, the message itself will be html-escaped
995MessageFormat=""
996
997#OPTIONAL (default false)
998#Disables link previews for links in messages
999DisableWebPagePreview=false
1000
1001#If enabled use the "First Name" as username. If this is empty use the Username
1002#If disabled use the "Username" as username. If this is empty use the First Name
1003#If all names are empty, username will be "unknown"
1004#OPTIONAL (default false)
1005UseFirstName=false
1006
1007#If enabled use the "Full Name" as username. If this is empty use the Username
1008#If disabled use the "Username" as username. If this is empty use the First Name and Last Name as Full Name
1009#If all names are empty, username will be "unknown"
1010#OPTIONAL (default false)
1011UseFullName=false
1012
1013#WARNING! If enabled this will relay GIF/stickers/documents and other attachments as URLs
1014#Those URLs will contain your bot-token. This may not be what you want.
1015#For now there is no secure way to relay GIF/stickers/documents without seeing your token.
1016#OPTIONAL (default false)
1017UseInsecureURL=false
1018
1019#Disable quoted/reply messages
1020#OPTIONAL (default false)
1021QuoteDisable=false
1022
1023#Set the max. quoted length if 0 the whole message will be quoted
1024#OPTIONAL (default 0)
1025QuoteLengthLimit=0
1026
1027#Format quoted/reply messages
1028#OPTIONAL (default "{MESSAGE} (re @{QUOTENICK}: {QUOTEMESSAGE})")
1029QuoteFormat="{MESSAGE} (re @{QUOTENICK}: {QUOTEMESSAGE})"
1030
1031#Convert WebP images to PNG before upload.
1032#https://github.com/42wim/matterbridge/issues/398
1033#OPTIONAL (default false)
1034MediaConvertWebPToPNG=false
1035
1036#Convert Tgs (Telegram animated sticker) images to PNG before upload.
1037#This is useful when your bridge also contains platforms that do not support animated WebP files, like Discord.
1038#This requires the external dependency `lottie`, which can be installed like this:
1039#`pip install lottie cairosvg`
1040#https://github.com/42wim/matterbridge/issues/874
1041#MediaConvertTgs="png"
1042
1043#Disable sending of edits to other bridges
1044#OPTIONAL (default false)
1045EditDisable=false
1046
1047#Message to be appended to every edited message
1048#OPTIONAL (default empty)
1049EditSuffix=" (edited)"
1050
1051#Nicks you want to ignore.
1052#Regular expressions supported
1053#Messages from those users will not be sent to other bridges.
1054#OPTIONAL
1055IgnoreNicks="spammer1 spammer2"
1056
1057#Messages you want to ignore.
1058#Messages matching these regexp will be ignored and not sent to other bridges
1059#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
1060#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
1061IgnoreMessages="^~~ badword"
1062
1063#messages you want to replace.
1064#it replaces outgoing messages from the bridge.
1065#so you need to place it by the sending bridge definition.
1066#regular expressions supported
1067#some examples:
1068#this replaces cat => dog and sleep => awake
1069#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
1070#this replaces every number with number. 123 => numbernumbernumber
1071#replacemessages=[ ["[0-9]","number"] ]
1072#optional (default empty)
1073ReplaceMessages=[ ["cat","dog"] ]
1074
1075#nicks you want to replace.
1076#see replacemessages for syntax
1077#optional (default empty)
1078ReplaceNicks=[ ["user--","user"] ]
1079
1080#Extractnicks is used to for example rewrite messages from other relaybots
1081#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
1082#some examples:
1083#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
1084#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
1085#you can use multiple entries for multiplebots
1086#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
1087#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
1088#OPTIONAL (default empty)
1089ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
1090
1091#extra label that can be used in the RemoteNickFormat
1092#optional (default empty)
1093Label=""
1094
1095#RemoteNickFormat defines how remote users appear on this bridge
1096#See [general] config section for default options
1097#
1098#WARNING: if you have set MessageFormat="HTML" be sure that this format matches the guidelines
1099#on https://core.telegram.org/bots/api#html-style otherwise the message will not go through to
1100#telegram! eg <{NICK}> should be &lt;{NICK}&gt;
1101RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
1102
1103#Enable to show users joins/parts from other bridges
1104#Currently works for messages from the following bridges: irc, mattermost, mumble, slack, discord
1105#OPTIONAL (default false)
1106ShowJoinPart=false
1107
1108#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
1109#It will strip other characters from the nick
1110#OPTIONAL (default false)
1111StripNick=false
1112
1113#Enable to show topic changes from other bridges
1114#Only works hiding/show topic changes from slack bridge for now
1115#OPTIONAL (default false)
1116ShowTopicChange=false
1117
1118#Opportunistically preserve threaded replies between Telegram groups.
1119#This only works if the parent message is still in the cache.
1120#Cache is flushed between restarts.
1121#OPTIONAL (default false)
1122PreserveThreading=false
1123
1124###################################################################
1125#rocketchat section
1126###################################################################
1127[rocketchat]
1128#You can configure multiple servers "[rocketchat.name]" or "[rocketchat.name2]"
1129#In this example we use [rocketchat.work]
1130#REQUIRED
1131
1132[rocketchat.rockme]
1133#The rocketchat hostname. (prefix it with http or https)
1134#REQUIRED (when not using webhooks)
1135Server="https://yourrocketchatserver.domain.com:443"
1136
1137#login/pass of your bot.
1138#login needs to be the login with email address! user@domain.com
1139#Use a dedicated user for this and not your own!
1140#REQUIRED (when not using webhooks)
1141Login="yourlogin@domain.com"
1142Password="yourpass"
1143# When using access token set Login to the User ID associated with your token and Token to your token.
1144# When Token is set Password is ignored.
1145# Login="yOurUSerID"
1146# Token="YoUrUsER_toKEN"
1147
1148
1149#### Settings for webhook matterbridge.
1150#USE DEDICATED BOT USER WHEN POSSIBLE! This allows you to use advanced features like message editing/deleting and uploads
1151#You don't need to configure this, if you have configured the settings
1152#above.
1153
1154#Url is your incoming webhook url as specified in rocketchat
1155#Read #https://rocket.chat/docs/administrator-guides/integrations/#how-to-create-a-new-incoming-webhook
1156#See administration - integrations - new integration - incoming webhook
1157#REQUIRED
1158WebhookURL="https://yourdomain/hooks/yourhookkey"
1159
1160#Address to listen on for outgoing webhook requests from rocketchat.
1161#See administration - integrations - new integration - outgoing webhook
1162#REQUIRED
1163WebhookBindAddress="0.0.0.0:9999"
1164
1165#Your nick/username as specified in your incoming webhook "Post as" setting
1166#REQUIRED
1167Nick="matterbot"
1168
1169#Enable this to make a http connection (instead of https) to your rocketchat
1170#OPTIONAL (default false)
1171NoTLS=false
1172
1173#Enable to not verify the certificate on your rocketchat server.
1174#e.g. when using selfsigned certificates
1175#OPTIONAL (default false)
1176SkipTLSVerify=true
1177
1178#### End settings for webhook matterbridge.
1179
1180## RELOADABLE SETTINGS
1181## Settings below can be reloaded by editing the file
1182
1183#Whether to prefix messages from other bridges to rocketchat with the sender's nick.
1184#Useful if username overrides for incoming webhooks isn't enabled on the
1185#rocketchat server. If you set PrefixMessagesWithNick to true, each message
1186#from bridge to rocketchat will by default be prefixed by the RemoteNickFormat setting. i
1187#if you're using login/pass you can better enable because of this bug:
1188#https://github.com/RocketChat/Rocket.Chat/issues/7549
1189#OPTIONAL (default false)
1190PrefixMessagesWithNick=false
1191
1192#Nicks you want to ignore.
1193#Regular expressions supported
1194#Messages from those users will not be sent to other bridges.
1195#OPTIONAL
1196IgnoreNicks="ircspammer1 ircspammer2"
1197
1198#Messages you want to ignore.
1199#Messages matching these regexp will be ignored and not sent to other bridges
1200#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
1201#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
1202IgnoreMessages="^~~ badword"
1203
1204#messages you want to replace.
1205#it replaces outgoing messages from the bridge.
1206#so you need to place it by the sending bridge definition.
1207#regular expressions supported
1208#some examples:
1209#this replaces cat => dog and sleep => awake
1210#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
1211#this replaces every number with number. 123 => numbernumbernumber
1212#replacemessages=[ ["[0-9]","number"] ]
1213#optional (default empty)
1214ReplaceMessages=[ ["cat","dog"] ]
1215
1216#nicks you want to replace.
1217#see replacemessages for syntax
1218#optional (default empty)
1219ReplaceNicks=[ ["user--","user"] ]
1220
1221#Extractnicks is used to for example rewrite messages from other relaybots
1222#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
1223#some examples:
1224#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
1225#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
1226#you can use multiple entries for multiplebots
1227#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
1228#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
1229#OPTIONAL (default empty)
1230ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
1231
1232#extra label that can be used in the RemoteNickFormat
1233#optional (default empty)
1234Label=""
1235
1236#RemoteNickFormat defines how remote users appear on this bridge
1237#See [general] config section for default options
1238RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
1239
1240#Enable to show users joins/parts from other bridges
1241#Currently works for messages from the following bridges: irc, mattermost, mumble, slack, discord
1242#OPTIONAL (default false)
1243ShowJoinPart=false
1244
1245#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
1246#It will strip other characters from the nick
1247#OPTIONAL (default false)
1248StripNick=false
1249
1250#Enable to show topic changes from other bridges
1251#Only works hiding/show topic changes from slack bridge for now
1252#OPTIONAL (default false)
1253ShowTopicChange=false
1254
1255###################################################################
1256#matrix section
1257###################################################################
1258[matrix]
1259#You can configure multiple servers "[matrix.name]" or "[matrix.name2]"
1260#In this example we use [matrix.neo]
1261#REQUIRED
1262
1263[matrix.neo]
1264#Server is your homeserver (eg https://matrix.org)
1265#REQUIRED
1266Server="https://matrix.org"
1267
1268#Authentication for your bot.
1269#You can use either login/password OR mxid/token. The latter will be preferred if found.
1270#Use a dedicated user for this and not your own!
1271#Messages sent from this user will not be relayed to avoid loops.
1272#REQUIRED
1273Login="yourlogin"
1274Password="yourpass"
1275#OR
1276MxID="@yourlogin:domain.tld"
1277Token="tokenforthebotuser"
1278
1279#Whether to send the homeserver suffix. eg ":matrix.org" in @username:matrix.org
1280#to other bridges, or only send "username".(true only sends username)
1281#OPTIONAL (default false)
1282NoHomeServerSuffix=false
1283
1284#Whether to disable sending of HTML content to matrix
1285#See https://github.com/42wim/matterbridge/issues/1022
1286#OPTIONAL (default false)
1287HTMLDisable=false
1288
1289## RELOADABLE SETTINGS
1290## Settings below can be reloaded by editing the file
1291
1292# UseUserName shows the username instead of the server nickname
1293UseUserName=false
1294
1295# Matrix quotes replies and as of matterbridge 1.24.0 we strip those as this causes
1296# issues with bridges support threading and have PreserveThreading enabled.
1297# But if you for example use mattermost or discord with webhooks you'll need to enable
1298# this (and keep PreserveThreading disabled) if you want something that looks like a reply from matrix.
1299# See issues:
1300# - https://github.com/42wim/matterbridge/issues/1819
1301# - https://github.com/42wim/matterbridge/issues/1780
1302KeepQuotedReply=false
1303
1304#Nicks you want to ignore.
1305#Regular expressions supported
1306#Messages from those users will not be sent to other bridges.
1307#OPTIONAL
1308IgnoreNicks="spammer1 spammer2"
1309
1310#Messages you want to ignore.
1311#Messages matching these regexp will be ignored and not sent to other bridges
1312#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
1313#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
1314IgnoreMessages="^~~ badword"
1315
1316#messages you want to replace.
1317#it replaces outgoing messages from the bridge.
1318#so you need to place it by the sending bridge definition.
1319#regular expressions supported
1320#some examples:
1321#this replaces cat => dog and sleep => awake
1322#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
1323#this replaces every number with number. 123 => numbernumbernumber
1324#replacemessages=[ ["[0-9]","number"] ]
1325#optional (default empty)
1326ReplaceMessages=[ ["cat","dog"] ]
1327
1328#nicks you want to replace.
1329#see replacemessages for syntax
1330#optional (default empty)
1331ReplaceNicks=[ ["user--","user"] ]
1332
1333#Extractnicks is used to for example rewrite messages from other relaybots
1334#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
1335#some examples:
1336#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
1337#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
1338#you can use multiple entries for multiplebots
1339#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
1340#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
1341#OPTIONAL (default empty)
1342ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
1343
1344#extra label that can be used in the RemoteNickFormat
1345#optional (default empty)
1346Label=""
1347
1348#RemoteNickFormat defines how remote users appear on this bridge
1349#See [general] config section for default options
1350RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
1351
1352#Enable to show users joins/parts from other bridges
1353#Currently works for messages from the following bridges: irc, mattermost, mumble, slack, discord
1354#OPTIONAL (default false)
1355ShowJoinPart=false
1356
1357#Rename the bot in the current room to the username of the message
1358#This will make an additional API request per message and will probably count towards rate limits
1359#OPTIONAL (default false)
1360SpoofUsername=false
1361
1362#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
1363#It will strip other characters from the nick
1364#OPTIONAL (default false)
1365StripNick=false
1366
1367#Enable to show topic changes from other bridges
1368#Only works hiding/show topic changes from slack bridge for now
1369#OPTIONAL (default false)
1370ShowTopicChange=false
1371
1372###################################################################
1373# NCTalk (Nextcloud Talk)
1374###################################################################
1375
1376[nctalk.bridge]
1377
1378# Url of your Nextcloud server
1379Server = "https://cloud.youdomain.me"
1380
1381# Enable to not verify the certificate on your Nextcloud server.
1382# e.g. when using selfsigned certificates
1383# OPTIONAL (default false)
1384SkipTLSVerify=true
1385
1386# Username of the bot
1387Login = "talkuser"
1388
1389# Password of the bot
1390Password = "talkuserpass"
1391
1392# Suffix for Guest Users
1393GuestSuffix = " (Guest)"
1394
1395# Separate display name (Note: needs to be configured from Nextcloud Talk to work)
1396SeparateDisplayName=false
1397
1398###################################################################
1399# Mumble
1400###################################################################
1401
1402[mumble.bridge]
1403
1404# Host and port of your Mumble server
1405Server = "mumble.yourdomain.me:64738"
1406
1407# Nickname to log in as
1408Nick = "matterbridge"
1409
1410# Some servers require a password
1411# OPTIONAL (default empty)
1412Password = "serverpasswordhere"
1413
1414# User comment to set on the Mumble user, visible to other users.
1415# OPTIONAL (default empty)
1416UserComment="I am bridging text messages between this channel and #general on irc.yourdomain.me"
1417
1418# Self-signed TLS client certificate + private key used to connect to
1419# Mumble. This is required if you want to register the matterbridge
1420# user on your Mumble server, so its nick becomes reserved.
1421# You can generate a keypair using e.g.
1422#
1423# openssl req -x509 -newkey rsa:2048 -nodes -days 10000 \
1424# -keyout mumble.key -out mumble.crt
1425#
1426# To actually register the matterbridege user, connect to Mumble as an
1427# admin, right click on the user and click "Register".
1428#
1429# OPTIONAL (default empty)
1430TLSClientCertificate="mumble.crt"
1431TLSClientKey="mumble.key"
1432
1433# TLS CA certificate used to validate the Mumble server.
1434# OPTIONAL (defaults to Go system CA)
1435TLSCACertificate=mumble-ca.crt
1436
1437# Enable to not verify the certificate on your Mumble server.
1438# e.g. when using selfsigned certificates
1439# OPTIONAL (default false)
1440SkipTLSVerify=false
1441
1442#Message to show when a message is too big
1443#Default "<clipped message>"
1444MessageClipped="<clipped message>"
1445
1446#Enable to show users joins/parts from other bridges
1447#Currently works for messages from the following bridges: irc, mattermost, mumble, slack, discord
1448#OPTIONAL (default false)
1449ShowJoinPart=false
1450
1451#Do not send joins/parts to other bridges
1452#OPTIONAL (default false)
1453NoSendJoinPart=false
1454
1455###################################################################
1456#VK
1457###################################################################
1458#
1459[vk.myvk]
1460#Group access token
1461#See https://vk.com/dev/bots_docs
1462Token="Yourtokenhere"
1463
1464###################################################################
1465# WhatsApp
1466###################################################################
1467
1468[whatsapp.bridge]
1469
1470# Number you will use as a relay bot. Tip: Get some disposable sim card, don't rely on your own number.
1471Number="+48111222333"
1472
1473# First time that you login you will need to scan QR code, then credentials willl be saved in a session file
1474# If you won't set SessionFile then you will need to scan QR code on every restart
1475# optional (by default the session is stored only in memory, till restarting matterbridge)
1476SessionFile="session-48111222333.gob"
1477
1478# If your terminal is white we need to invert QR code in order for it to be scanned properly
1479# optional (default false)
1480QrOnWhiteTerminal=true
1481
1482# Messages will be seen by other WhatsApp contacts as coming from the bridge. Original nick will be part of the message.
1483RemoteNickFormat="@{NICK}: "
1484
1485# extra label that can be used in the RemoteNickFormat
1486# optional (default empty)
1487Label="Organization"
1488
1489
1490
1491###################################################################
1492# zulip
1493###################################################################
1494
1495[zulip]
1496
1497#You can configure multiple servers "[zulip.name]" or "[zulip.name2]"
1498#In this example we use [zulip.streamchat]
1499#REQUIRED
1500
1501[zulip.streamchat]
1502#Token to connect with zulip API (called bot API key in Settings - Your bots)
1503#REQUIRED
1504Token="Yourtokenhere"
1505
1506#Username of the bot, normally called yourbot-bot@yourserver.zulipchat.com
1507#See username in Settings - Your bots
1508#REQUIRED
1509Login="yourbot-bot@yourserver.zulipchat.com"
1510
1511#Servername of your zulip instance
1512#REQUIRED
1513Server="https://yourserver.zulipchat.com"
1514
1515## RELOADABLE SETTINGS
1516## Settings below can be reloaded by editing the file
1517
1518#Nicks you want to ignore.
1519#Regular expressions supported
1520#Messages from those users will not be sent to other bridges.
1521#OPTIONAL
1522IgnoreNicks="spammer1 spammer2"
1523
1524#Messages you want to ignore.
1525#Messages matching these regexp will be ignored and not sent to other bridges
1526#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
1527#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
1528IgnoreMessages="^~~ badword"
1529
1530#messages you want to replace.
1531#it replaces outgoing messages from the bridge.
1532#so you need to place it by the sending bridge definition.
1533#regular expressions supported
1534#some examples:
1535#this replaces cat => dog and sleep => awake
1536#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
1537#this replaces every number with number. 123 => numbernumbernumber
1538#replacemessages=[ ["[0-9]","number"] ]
1539#optional (default empty)
1540ReplaceMessages=[ ["cat","dog"] ]
1541
1542#nicks you want to replace.
1543#see replacemessages for syntax
1544#optional (default empty)
1545ReplaceNicks=[ ["user--","user"] ]
1546
1547#Extractnicks is used to for example rewrite messages from other relaybots
1548#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
1549#some examples:
1550#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
1551#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
1552#you can use multiple entries for multiplebots
1553#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
1554#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
1555#OPTIONAL (default empty)
1556ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
1557
1558#extra label that can be used in the RemoteNickFormat
1559#optional (default empty)
1560Label=""
1561
1562#RemoteNickFormat defines how remote users appear on this bridge
1563#See [general] config section for default options
1564RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
1565
1566#Enable to show users joins/parts from other bridges
1567#Currently works for messages from the following bridges: irc, mattermost, mumble, slack, discord
1568#OPTIONAL (default false)
1569ShowJoinPart=false
1570
1571#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
1572#It will strip other characters from the nick
1573#OPTIONAL (default false)
1574StripNick=false
1575
1576#Enable to show topic changes from other bridges
1577#Only works hiding/show topic changes from slack bridge for now
1578#OPTIONAL (default false)
1579ShowTopicChange=false
1580
1581###################################################################
1582#API
1583###################################################################
1584[api]
1585#You can configure multiple API hooks
1586#In this example we use [api.local]
1587#REQUIRED
1588
1589[api.local]
1590#Address to listen on for API
1591#REQUIRED
1592BindAddress="127.0.0.1:4242"
1593
1594#Amount of messages to keep in memory
1595#OPTIONAL (library default 10)
1596Buffer=1000
1597
1598#Bearer token used for authentication
1599#curl -H "Authorization: Bearer token" http://localhost:4242/api/messages
1600# https://github.com/vi/websocat
1601# websocat -H="Authorization: Bearer token" ws://127.0.0.1:4242/api/websocket
1602#OPTIONAL (no authorization if token is empty)
1603Token="mytoken"
1604
1605#extra label that can be used in the RemoteNickFormat
1606#optional (default empty)
1607Label=""
1608
1609#RemoteNickFormat defines how remote users appear on this bridge
1610#See [general] config section for default options
1611RemoteNickFormat="{NICK}"
1612
1613
1614
1615###################################################################
1616#General configuration
1617###################################################################
1618# Settings here are defaults that each protocol can override
1619[general]
1620
1621## RELOADABLE SETTINGS
1622## Settings below can be reloaded by editing the file
1623
1624#RemoteNickFormat defines how remote users appear on this bridge
1625#The string "{NICK}" (case sensitive) will be replaced by the actual nick.
1626#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.
1627#The string "{USERID}" (case sensitive) will be replaced by the user ID.
1628#The string "{BRIDGE}" (case sensitive) will be replaced by the sending bridge
1629#The string "{LABEL}" (case sensitive) will be replaced by label= field of the sending bridge
1630#The string "{PROTOCOL}" (case sensitive) will be replaced by the protocol used by the bridge
1631#The string "{GATEWAY}" (case sensitive) will be replaced by the origin gateway name that is replicating the message.
1632#The string "{CHANNEL}" (case sensitive) will be replaced by the origin channel name used by the bridge
1633#The string "{TENGO}" (case sensitive) will be replaced by the output of the RemoteNickFormat script under [tengo]
1634#OPTIONAL (default empty)
1635RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
1636
1637#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
1638#It will strip other characters from the nick
1639#OPTIONAL (default false)
1640StripNick=false
1641
1642
1643#MediaDownloadPath is the filesystem path where the media file will be placed, instead of uploaded,
1644#for if Matterbridge has write access to the directory your webserver is serving.
1645#The MediaServerDownload will be used so that bridges without native uploading support:
1646#irc and xmpp will be shown links to the files on MediaServerDownload
1647#
1648#More information https://github.com/42wim/matterbridge/wiki/Mediaserver-setup-%28advanced%29
1649#OPTIONAL (default empty)
1650MediaDownloadPath="/srv/http/yourserver.com/public/download"
1651#OPTIONAL (default empty)
1652MediaServerDownload="https://youserver.com/download"
1653
1654#MediaDownloadSize is the maximum size of attachments, videos, images
1655#matterbridge will download and upload this file to bridges that also support uploading files.
1656#eg downloading from slack to upload it to mattermost
1657#
1658#It will only download from bridges that don't have public links available, which are for the moment
1659#slack, telegram, matrix and mattermost
1660#
1661#OPTIONAL (default 1000000 (1 megabyte))
1662MediaDownloadSize=1000000
1663
1664#MediaDownloadBlacklist allows you to blacklist specific files from being downloaded.
1665#Filenames matching these regexp will not be download/uploaded to the mediaserver
1666#You can use regex for this, see https://regex-golang.appspot.com/assets/html/index.html for more regex info
1667#OPTIONAL (default empty)
1668MediaDownloadBlacklist=[".html$",".htm$"]
1669
1670#IgnoreFailureOnStart allows you to ignore failing bridges on startup.
1671#Matterbridge will disable the failed bridge and continue with the other ones.
1672#Context: https://github.com/42wim/matterbridge/issues/455
1673#OPTIONAL (default false)
1674IgnoreFailureOnStart=false
1675
1676#LogFile defines the location of a file to write logs into, rather
1677#than stdout.
1678#Logging will still happen on stdout if the file cannot be open for
1679#writing, or if the value is empty. Note that the log won't roll, so
1680#you might want to use logrotate(8) with this feature.
1681#OPTIONAL (default empty)
1682LogFile="/var/log/matterbridge.log"
1683
1684###################################################################
1685#Tengo configuration
1686###################################################################
1687#More information about tengo on: https://github.com/d5/tengo/blob/master/docs/tutorial.md and
1688#https://github.com/d5/tengo/blob/master/docs/stdlib.md
1689
1690[tengo]
1691#InMessage allows you to specify the location of a tengo (https://github.com/d5/tengo/) script.
1692#This script will receive every incoming message and can be used to modify the Username and the Text of that message.
1693#The script will have the following global variables:
1694#to modify: msgUsername and msgText
1695#to read: msgUserID, msgChannel, msgAccount
1696#
1697#The script is reloaded on every message, so you can modify the script on the fly.
1698#
1699#Example script can be found in https://github.com/42wim/matterbridge/tree/master/gateway/bench.tengo
1700#and https://github.com/42wim/matterbridge/tree/master/contrib/example.tengo
1701#
1702#The example below will check if the text contains blah and if so, it'll replace the text and the username of that message.
1703#text := import("text")
1704#if text.re_match("blah",msgText) {
1705# msgText="replaced by this"
1706# msgUsername="fakeuser"
1707#}
1708#OPTIONAL (default empty)
1709InMessage="example.tengo"
1710
1711#OutMessage allows you to specify the location of the script that
1712#will be invoked on each message being sent to a bridge and can be used to modify the Username
1713#and the Text of that message.
1714#
1715#The script will have the following global variables:
1716#read-only:
1717#inAccount, inProtocol, inChannel, inGateway, inEvent
1718#outAccount, outProtocol, outChannel, outGateway, outEvent
1719#msgUserID
1720#
1721#read-write:
1722#msgText, msgUsername, msgDrop
1723#
1724#msgDrop is a bool which is default false, when set true this message will be dropped
1725#
1726#The script is reloaded on every message, so you can modify the script on the fly.
1727#
1728#The default script in https://github.com/42wim/matterbridge/tree/master/internal/tengo/outmessage.tengo
1729#is compiled in and will be executed if no script is specified.
1730#OPTIONAL (default empty)
1731OutMessage="example.tengo"
1732
1733
1734#RemoteNickFormat allows you to specify the location of a tengo (https://github.com/d5/tengo/) script.
1735#The script will have the following global variables:
1736#to modify: result
1737#to read: channel, bridge, gateway, protocol, nick, msgUserID
1738#
1739#The result will be set in {TENGO} in the RemoteNickFormat key of every bridge where {TENGO} is specified
1740#
1741#The script is reloaded on every message, so you can modify the script on the fly.
1742#
1743#Example script can be found in https://github.com/42wim/matterbridge/tree/master/contrib/remotenickformat.tengo
1744#
1745#OPTIONAL (default empty)
1746RemoteNickFormat="remotenickformat.tengo"
1747
1748###################################################################
1749#Gateway configuration
1750###################################################################
1751
1752#You can specify multiple gateways using [[gateway]]
1753#Each gateway has a [[gateway.in]] and a [[gateway.out]]
1754#[[gateway.in]] specifies the account and channels we will receive messages from.
1755#[[gateway.out]] specifies the account and channels we will send the messages
1756#from [[gateway.in]] to.
1757#
1758#Most of the time [[gateway.in]] and [[gateway.out]] are the same if you
1759#want bidirectional bridging. You can then use [[gateway.inout]]
1760#
1761
1762[[gateway]]
1763#REQUIRED and UNIQUE
1764name="gateway1"
1765#Enable enables this gateway
1766##OPTIONAL (default false)
1767enable=true
1768
1769 # [[gateway.in]] specifies the account and channels we will receive messages from.
1770 # The following example bridges between mattermost and irc
1771 [[gateway.in]]
1772
1773 # account specified above
1774 # REQUIRED
1775 account="irc.libera"
1776
1777 # The channel key in each gateway is mapped to a similar group chat ID on the chat platform
1778 # To find the group chat ID for different platforms, refer to the table below
1779 #
1780 # Platform | Identifier name | Example | Description
1781 # -------------------------------------------------------------------------------------------------------------------------------------
1782 # | channel | general | Do not include the # symbol
1783 # discord | channel id | ID:123456789 | See https://github.com/42wim/matterbridge/issues/57
1784 # | category/channel | Media/gaming | Without # symbol. If you're using discord categories to group your channels
1785 # -------------------------------------------------------------------------------------------------------------------------------------
1786 # hipchat | id_channel | example needed | See https://www.hipchat.com/account/xmpp for the correct channel
1787 # -------------------------------------------------------------------------------------------------------------------------------------
1788 # irc | channel | #general | The # symbol is required and should be lowercase!
1789 # -------------------------------------------------------------------------------------------------------------------------------------
1790 # mastodon | channel | home | The channel can be home or local or @name@mastodon.social
1791 # -------------------------------------------------------------------------------------------------------------------------------------
1792 # | channel | general | This is the channel name as seen in the URL, not the display name
1793 # mattermost | channel id | ID:oc4wifyuojgw5f3nsuweesmz8w | This is the channel ID (only use if you know what you're doing)
1794 # -------------------------------------------------------------------------------------------------------------------------------------
1795 # matrix | #channel:server | #yourchannel:matrix.org | Encrypted rooms are not supported in matrix
1796 # -------------------------------------------------------------------------------------------------------------------------------------
1797 # msteams | threadId | 19:82abcxx@thread.skype | You'll find the threadId in the URL
1798 # -------------------------------------------------------------------------------------------------------------------------------------
1799 # mumble | channel id | 42 | The channel ID, as shown in the channel's "Edit" window
1800 # -------------------------------------------------------------------------------------------------------------------------------------
1801 # rocketchat | channel | #channel | # is required for private channels too
1802 # -------------------------------------------------------------------------------------------------------------------------------------
1803 # slack | channel name | general | Do not include the # symbol
1804 # | channel id | ID:C123456 | The underlying ID of a channel. This doesn't work with webhooks.
1805 # -------------------------------------------------------------------------------------------------------------------------------------
1806 # nctalk | token | xs25tz5y | The token in the URL when you are in a chat. It will be the last part of the URL.
1807 # -------------------------------------------------------------------------------------------------------------------------------------
1808 # telegram | chatid | -123456789 | A large negative number. see https://www.linkedin.com/pulse/telegram-bots-beginners-marco-frau
1809 # | chatid/topicid | -123456789/12 | A large negative number/number.
1810 # -------------------------------------------------------------------------------------------------------------------------------------
1811 # vk | peerid | 2000000002 | A number that starts form 2000000000. Use --debug and send any message in chat to get PeerID in the logs
1812 # -------------------------------------------------------------------------------------------------------------------------------------
1813 # whatsapp | group JID | 48111222333-123455678999@g.us | A unique group JID. If you specify an empty string, bridge will list all the possibilities
1814 # | "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.
1815 # -------------------------------------------------------------------------------------------------------------------------------------
1816 # xmpp | channel | general | The room name
1817 # -------------------------------------------------------------------------------------------------------------------------------------
1818 # zulip | stream/topic:topic | general/topic:food | Do not use the # when specifying a topic
1819 # -------------------------------------------------------------------------------------------------------------------------------------
1820
1821 #
1822 # REQUIRED
1823 channel="#testing"
1824
1825 #OPTIONAL - only used for IRC and XMPP protocols at the moment
1826 [gateway.in.options]
1827 #OPTIONAL - your irc / xmpp channel key
1828 key="yourkey"
1829
1830
1831 #[[gateway.out]] specifies the account and channels we will sent messages to.
1832 [[gateway.out]]
1833 account="irc.libera"
1834 channel="#testing"
1835
1836 #OPTIONAL - only used for IRC and XMPP protocols at the moment
1837 [gateway.out.options]
1838 #OPTIONAL - your irc / xmpp channel key
1839 key="yourkey"
1840
1841 #[[gateway.inout]] can be used when then channel will be used to receive from
1842 #and send messages to
1843 [[gateway.inout]]
1844 account="mattermost.work"
1845 channel="off-topic"
1846
1847 #OPTIONAL - only used for IRC and XMPP protocols at the moment
1848 [gateway.inout.options]
1849 #OPTIONAL - your irc / xmpp channel key
1850 key="yourkey"
1851
1852 # Discord specific gateway options
1853 [[gateway.inout]]
1854 account="discord.game"
1855 channel="mygreatgame"
1856
1857 [gateway.inout.options]
1858 # WebhookURL sends messages in the style of "puppets". You must configure a webhook URL for each channel you want to bridge.
1859 # If you have more than one channel and don't wnat to configure each channel manually, see the "AutoWebhooks" option in the gateway config.
1860 # Example: "https://discord.com/api/webhooks/1234/abcd_xyzw"
1861 WebhookURL=""
1862
1863 [[gateway.inout]]
1864 account="zulip.streamchat"
1865 channel="general/topic:mytopic"
1866
1867 #API example
1868 #[[gateway.inout]]
1869 #account="api.local"
1870 #channel="api"
1871 #To send data to the api:
1872 #curl -XPOST -H 'Content-Type: application/json' -d '{"text":"test","username":"randomuser","gateway":"gateway1"}' http://localhost:4242/api/message
1873 #To read from the api:
1874 #curl http://localhost:4242/api/messages
1875
1876#If you want to do a 1:1 mapping between protocols where the channelnames are the same
1877#e.g. slack and mattermost you can use the samechannelgateway configuration
1878#the example configuration below send messages from channel testing on mattermost to
1879#channel testing on slack and vice versa. (and for the channel testing2 and testing3)
1880
1881[[samechannelgateway]]
1882 name="samechannel1"
1883 enable = false
1884 accounts = [ "mattermost.work","slack.hobby" ]
1885 channels = [ "testing","testing2","testing3"]
1886