Using Matterbridge
The following is based on a tutorial to use Matterbridge with the plugin: Matterbridge + Peertube
Requirements
- PeerTube plugin livechat version 3.2.0 or later.
- Matterbridge version 1.22.4 or later.
The easiest is if the PeerTube instance and Matterbridge run on the same server.
Internal connections only (basic)
You will need to enable Enable client to server connections
in the livechat plugin settings.
This will allow localhost XMPP clients to connect to the Prosody XMPP server.
You may need to add some line to your /etc/hosts
:
127.0.0.1 anon.example.org room.example.org
Replace example.org
by your actual instance domain name. Afterwards you can continue with the Matterbridge configuration below.
Allow external connections (advanced)
By default, the internal Prosody XMPP server only listens on localhost (127.0.0.1).
On livechat versions >= 10.1.0 a new option call Client to server network interfaces
was added to allow changing this.
It allows to add a list of IPs to listen on, coma separated (spaces will be stripped).
You can also use *
to listen on all IPv4 interfaces, and ::
for all IPv6. Doing so allows external access to the client to server interface.
Then you need to open the C2S port (by default 52822
, but check the plugin settings to get the current value) in your firewall so that it can be reached from the internet.
If you don’t want to use C2S connections for anything else than your Matterbridge service, you should restrict access to this port to your Matterbridge server IP.
You also need to add DNS records (A and AAAA) for anon.example.org
and room.example.org
(replace example.org
by your actual domain name).
In case you are using a port other than 5222
(XMPP standard port) you also need to set the xmpp-client SRV record to the correct port.
Configurating Matterbridge
In the version 1.22.4, Matterbridge added support for XMPP anonymous connections needed to connect to the built-in prosody.
So in the TOML config file put:
[xmpp.mypeertube]
Anonymous=true
Server="anon.example.org:52822"
Muc="room.example.org"
Nick="Matterbridge"
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
NoTLS=true
- Replace
example.org
by your actual instance domain name. - Replace
52822
by the actual port if you changed it. mypeertube
can be replaced by another name.- Using
peertube
as the Nick will provide put PeerTube icon for overlay messages, can be also done with overlay config modification. - The setting
NoTLS=true
allows connecting to a server with self-signed certificates.
Now you can add this account to gateways and bridge specific live-chat channels.
This documentation use an anonymous account to connect the bridge to the chat.
But since the livechat v10.1.0, there is a new way to generate long term authentication token, that allows to connect using your account.
This is used for OBS docks.
Using this feature for other purposes is not documented and not officially supported yet.
If you want to use it anyway, you can request a token by calling then /plugins/livechat/router/api/auth/tokens
endpoint.
To get needed headers and request body, just check what happens when you generate a new token for OBS docks.