The playbook can install and configure the Matrix RTC (Real-Time Communication) stack.
The Matrix RTC stack is a set of supporting components (LiveKit Server and LiveKit JWT Service) that allow the new Element Call audio/video calls to function.
💡 If you only plan on doing audio/video calls via Matrix client (which typically embed the Element Call frontend UI within them), you only need to install the Matrix RTC stack and don't necessarily need to install Element Call. See the Decide between Element Call vs just the Matrix RTC stack section of the Element Call documentation for more details.
- A Synapse homeserver (see the warning below)
- Federation being enabled for your Matrix homeserver (federation is enabled by default, unless you've explicitly disabled it), because LiveKit JWT Service currently requires it (relevant source code)
- Various experimental features for the Synapse homeserver which Element Call requires (automatically done when Element Call is enabled)
- A LiveKit Server (automatically installed when Element Call or the Matrix RTC stack is enabled)
- The LiveKit JWT Service (automatically installed when Element Call or the Matrix RTC stack is enabled)
- A client compatible with Element Call. As of 2025-03-15, that's just Element Web and the Element X mobile clients (iOS and Android).
Warning
Because Element Call requires a few experimental features in the Matrix protocol, it's very likely that it only works with the Synapse homeserver.
Add the following configuration to your inventory/host_vars/matrix.example.com/vars.yml
file:
# Enable the Matrix RTC stack.
# This provides all supporting services for Element Call, without the Element Call frontend.
matrix_rtc_enabled: true
In addition to the HTTP/HTTPS ports (which you've already exposed as per the prerequisites document), you'll also need to open ports required by LiveKit Server as described in its own Adjusting firewall rules section.
After configuring the playbook and potentially adjusting your DNS records and adjusting firewall rules, 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.
Once installed, Matrix clients which support Element Call (like Element Web and Element X on mobile (iOS and Android)) will automatically use the Matrix RTC stack.
These clients typically embed the Element Call frontend UI within them, so installing Element Call is only necessary if you'd like to use it standalone - directly via a browser.