Clean up Element Call group vars vs defaults/main.yml mixup and make some minor LiveKit updates

This commit is contained in:
Slavi Pantaleev 2025-03-12 07:42:40 +02:00
parent 72d64cfa6b
commit 2a69ca35be
7 changed files with 39 additions and 39 deletions

View File

@ -1,21 +1,21 @@
<!--
SPDX-FileCopyrightText: 2024 wjbeckett
SPDX-FileCopyrightText: 2024 Slavi Pantaleev
SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Element Call (optional)
The playbook can install and configure [Element Call](https://github.com/vector-im/element-call) for you.
The playbook can install and configure [Element Call](https://github.com/element-hq/element-call) for you.
Element Call is a WebRTC-based video and voice calling platform that integrates with Matrix clients such as Element Web. It provides secure, decentralized communication with support for video calls, audio calls, and screen sharing.
Element Call is a native Matrix video conferencing application developed by [Element](https://element.io), designed for secure, scalable, privacy-respecting, and decentralized video and voice calls over the Matrix protocol. Built on MatrixRTC ([MSC4143](https://github.com/matrix-org/matrix-spec-proposals/pull/4143)), it utilizes [MSC4195](https://github.com/hughns/matrix-spec-proposals/blob/hughns/matrixrtc-livekit/proposals/4195-matrixrtc-livekit.md) with [LiveKit](configuring-playbook-livekit-server.md) as its backend.
See the project's [documentation](https://github.com/vector-im/element-call) to learn more.
See the project's [documentation](https://github.com/element-hq/element-call) to learn more.
## Decide on a domain and path
By default, Element Call is configured to be served on the Matrix domain (`call.DOMAIN`, controlled by the `matrix_element_call_hostname` variable).
By default, Element Call is configured to be served on the `call.element.DOMAIN` domain, controlled by the `matrix_element_call_hostname` variable.
This makes it easy to set it up, **without** having to adjust your DNS records manually.
@ -26,21 +26,20 @@ If you'd like to run Element Call on another hostname or path, use the `matrix_e
If you've changed the default hostname, **you may need to adjust your DNS** records accordingly to point to the correct server.
Ensure that the following DNS names have a public IP/FQDN:
- `call.example.com`
- `sfu.example.com`
- `call.element.example.com`
- `livekit.example.com`
- `sfu-jwt.example.com`
## Adjusting the playbook configuration
NOTE: Enabling Element Call will automatically enable the [LiveKit JWT Service](configuring-playbook-livekit-jwt-service.md) and Livekit Server services.
Add the following configuration to your `inventory/host_vars/matrix.DOMAIN/vars.yml` file:
```yaml
matrix_element_call_enabled: true
```
💡 Enabling Element Call will automatically enable the [LiveKit JWT Service](configuring-playbook-livekit-jwt-service.md) and [Livekit Server](configuring-playbook-livekit-server.md) services.
## Installing
After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the [installation](installing.md) command: `just install-all` or `just setup-all`

View File

@ -26,7 +26,7 @@ If you'd like to run Livekit on another hostname or path, use the `livekit_serve
If you've changed the default hostname, **you may need to adjust your DNS** records accordingly to point to the correct server.
Ensure that the following DNS names have a public IP/FQDN:
- `sfu.example.com`
- `livekit.example.com`
## Adjusting the playbook configuration

View File

@ -6261,21 +6261,10 @@ matrix_element_call_enabled: false
matrix_element_call_scheme: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}"
matrix_element_call_version: "latest" # Default version; can be overridden in host_vars
matrix_element_call_hostname: "call.{{ matrix_domain }}" # Default hostname; should be overridden in host_vars if different
matrix_element_call_path_prefix: "/" # Path prefix for Element Call
matrix_element_call_base_path: "{{ matrix_base_data_path }}/element-call" # Base path for storing Element Call-related files
matrix_element_call_container_image: "ghcr.io/element-hq/element-call:{{ matrix_element_call_version }}"
matrix_element_call_container_image_name_prefix: ghcr.io/
matrix_element_call_container_image_registry_prefix: ghcr.io/
matrix_element_call_container_image_force_pull: true
# Docker network configuration for Element Call
matrix_element_call_container_network: "{{ matrix_addons_container_network }}"
matrix_element_call_container_additional_networks: "{{ [matrix_playbook_reverse_proxyable_services_additional_network] if (matrix_element_call_container_labels_traefik_enabled and matrix_playbook_reverse_proxyable_services_additional_network) else [] }}"
# Traefik Configuration for Element Call
matrix_element_call_container_additional_networks_auto: "{{ [matrix_playbook_reverse_proxyable_services_additional_network] if (matrix_element_call_container_labels_traefik_enabled and matrix_playbook_reverse_proxyable_services_additional_network) else [] }}"
matrix_element_call_container_labels_traefik_enabled: "{{ matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] }}"
matrix_element_call_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}"
matrix_element_call_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}"
@ -6302,7 +6291,7 @@ livekit_server_gid: "{{ matrix_user_gid }}"
livekit_server_base_path: "{{ matrix_base_data_path }}/livekit-server"
livekit_server_hostname: "sfu.{{ matrix_domain }}"
livekit_server_hostname: "livekit.{{ matrix_domain }}"
livekit_server_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}"

View File

@ -1,26 +1,39 @@
# SPDX-FileCopyrightText: 2022 MDAD project contributors
# SPDX-FileCopyrightText: 2024 wjbeckett
# SPDX-FileCopyrightText: 2024 Slavi Pantaleev
# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev
#
# SPDX-License-Identifier: AGPL-3.0-or-later
---
# Enable or disable matrix-element-call deployment
# Element Call is a native Matrix video conferencing application developed by Element.
# Project source code URL: https://github.com/element-hq/element-call
matrix_element_call_enabled: false
matrix_element_call_scheme: https
matrix_element_call_hostname: "call.{{ matrix_domain }}"
matrix_element_call_version: v0.7.2
matrix_element_call_scheme: https
matrix_element_call_hostname: "call.element.{{ matrix_domain }}"
matrix_element_call_path_prefix: /
# Base path configuration
matrix_element_call_base_path: "{{ matrix_base_data_path }}/element-call"
# Docker network configuration
matrix_element_call_container_network: ''
matrix_element_call_container_http_host_bind_port: ''
matrix_element_call_container_additional_networks: [] # No additional networks by default
matrix_element_call_container_image: "{{ matrix_element_call_container_image_registry_prefix }}element-hq/element-call:{{ matrix_element_call_container_image_tag }}"
matrix_element_call_container_image_registry_prefix: "{{ matrix_element_call_container_image_registry_prefix_upstream }}"
matrix_element_call_container_image_registry_prefix_upstream: "{{ matrix_element_call_container_image_registry_prefix_upstream_default }}"
matrix_element_call_container_image_registry_prefix_upstream_default: ghcr.io/
matrix_element_call_container_image_tag: "{{ matrix_element_call_version }}"
matrix_element_call_container_image_force_pull: "{{ matrix_element_call_container_image.endswith(':latest') }}"
# Docker images
matrix_element_call_image: "ghcr.io/element-hq/element-call:latest"
matrix_element_call_container_network: matrix-element-call
matrix_element_call_container_http_host_bind_port: ''
matrix_element_call_container_additional_networks: "{{ matrix_element_call_container_additional_networks_auto + matrix_element_call_container_additional_networks_custom }}"
matrix_element_call_container_additional_networks_auto: []
matrix_element_call_container_additional_networks_custom: []
# Ports
matrix_element_call_port: "8093"

View File

@ -14,4 +14,3 @@
with_items:
- {'name': 'matrix_element_call_base_path', when: true}
- {'name': 'matrix_element_call_container_network', when: true}
- {'name': 'matrix_element_call_image', when: true}

View File

@ -28,7 +28,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \
{% for arg in matrix_element_call_container_extra_arguments %}
{{ arg }} \
{% endfor %}
{{ matrix_element_call_image }}
{{ matrix_element_call_container_image }}
{% for network in matrix_element_call_container_additional_networks %}
ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network connect {{ network }} matrix-element-call

View File

@ -19,7 +19,7 @@ livekit_server_base_path: "/{{ livekit_server_identifier }}"
livekit_server_config_path: "{{ livekit_server_base_path }}/config"
# renovate: datasource=docker depName=docker.io/livekit/livekit-server
livekit_server_version: v1.8.0
livekit_server_version: v1.8.4
livekit_server_scheme: https
livekit_server_hostname: ""