matrix-docker-ansible-deploy/docs/configuring-playbook-jitsi.md
Suguru Hirahara cc0811492b
Add links to installing.md
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2025-02-18 00:33:01 +09:00

8.2 KiB

Setting up the Jitsi video-conferencing platform (optional)

The playbook can install and configure the Jitsi video-conferencing platform for you.

Jitsi is an open source video-conferencing platform. It can not only be integrated with Element clients (Element Web/Desktop, Android and iOS) as a widget, but also be used as standalone web app.

The Ansible role for Jitsi is developed and maintained by MASH (mother-of-all-self-hosting) project. For details about configuring Jitsi, you can check them via:

Prerequisites

Before proceeding, make sure to check server's requirements recommended by the official deployment guide.

You may need to open some ports to your server, if you use another firewall in front of the server. Refer the role's documentation to check which ones to be configured.

Adjusting DNS records

By default, this playbook installs Jitsi on the jitsi. subdomain (jitsi.example.com) and requires you to create a CNAME record for jitsi, which targets matrix.example.com.

When setting, replace example.com with your own.

Adjusting the playbook configuration

To enable Jitsi, add the following configuration to your inventory/host_vars/matrix.example.com/vars.yml file:

########################################################################
#                                                                      #
# jitsi                                                                #
#                                                                      #
########################################################################

jitsi_enabled: true

########################################################################
#                                                                      #
# /jitsi                                                               #
#                                                                      #
########################################################################

As the most of the necessary settings for the role have been taken care of by the playbook, you can enable Jitsi on your Matrix server with this minimum configuration.

However, since Jitsi's performance heavily depends on server resource (bandwidth, RAM, and CPU), it is recommended to review settings and optimize them as necessary before deployment. You can check here for an example set of configurations to set up a Jitsi instance, focusing on performance. If you will host a large conference, you probably might also want to consider to provision additional JVBs (Jitsi VideoBridge). See here for details about setting them up with the playbook.

See the role's documentation for details about configuring Jitsi per your preference (such as setting a custom hostname and the environment variable for running Jitsi in a LAN).

Enable authentication and guests mode (optional)

By default the Jitsi Meet instance does not require for anyone to log in, and is open to use without an account.

If you would like to control who is allowed to start meetings on your instance, you'd need to enable Jitsi's authentication and optionally guests mode.

See this section on the role's documentation for details about how to configure the authentication and guests mode. The recommended authentication method is internal as it also works in federated rooms. If you want to enable authentication with Matrix OpenID making use of Matrix User Verification Service (UVS), see here for details about how to set it up.

Enable Gravatar (optional)

In the default Jisti Meet configuration, gravatar.com is enabled as an avatar service.

Since the Element clients send the URL of configured Matrix avatars to the Jitsi instance, our configuration has disabled the Gravatar service.

To enable the Gravatar service nevertheless, add the following configuration to your vars.yml file:

jitsi_disable_gravatar: false

Warning

This will result in third party request leaking data to the Gravatar Service (gravatar.com, unless configured otherwise). Besides metadata, the Matrix user_id and possibly the room ID (via referrer header) will be also sent to the third party.

Installing

After configuring the playbook and potentially adjusting your DNS records, run the playbook with playbook tags as below:

ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start

The shortcut commands with the just program are also available: just install-all or just setup-all

just install-all is useful for maintaining your setup quickly (2x-5x faster than just setup-all) when its components remain unchanged. If you adjust your vars.yml to remove other components, you'd need to run just setup-all, or these components will still remain installed. Note these shortcuts run the ensure-matrix-users-created tag too.

Usage

You can use the self-hosted Jitsi server in multiple ways:

  • by adding a widget to a room via Element Web (the one configured by the playbook at https://element.example.com). Just start a voice or a video call in a room containing more than 2 members and that would create a Jitsi widget which utilizes your self-hosted Jitsi server.

  • directly (without any Matrix integration). Just go to https://jitsi.example.com, and you can start a videoconference.

Note that you'll need to log in to your Jitsi's account to start a conference if you have configured authentication with internal auth.

Check the official user guide for details about how to use Jitsi.

Troubleshooting

See this section on the role's documentation for details.