# SPDX-FileCopyrightText: 2022 MDAD project contributors # SPDX-FileCopyrightText: 2024 wjbeckett # SPDX-FileCopyrightText: 2024 - 2026 Slavi Pantaleev # # SPDX-License-Identifier: AGPL-3.0-or-later --- # Project source code URL: https://github.com/element-hq/lk-jwt-service matrix_livekit_jwt_service_enabled: false matrix_livekit_jwt_service_scheme: https matrix_livekit_jwt_service_hostname: "" matrix_livekit_jwt_service_path_prefix: "/livekit-jwt-service" matrix_livekit_jwt_service_base_path: "{{ matrix_base_data_path }}/livekit-jwt-service" matrix_livekit_jwt_service_container_network: '' matrix_livekit_jwt_service_container_http_host_bind_port: '' matrix_livekit_jwt_service_container_additional_networks: "{{ (matrix_livekit_jwt_service_container_additional_networks_auto + matrix_livekit_jwt_service_container_additional_networks_custom) | unique }}" matrix_livekit_jwt_service_container_additional_networks_auto: [] matrix_livekit_jwt_service_container_additional_networks_custom: [] # renovate: datasource=docker depName=ghcr.io/element-hq/lk-jwt-service matrix_livekit_jwt_service_version: 0.6.0 matrix_livekit_jwt_service_container_image_self_build: false matrix_livekit_jwt_service_container_repo: "https://github.com/element-hq/lk-jwt-service.git" matrix_livekit_jwt_service_container_repo_version: "{{ 'main' if matrix_livekit_jwt_service_version == 'latest' else ('v' + matrix_livekit_jwt_service_version) }}" matrix_livekit_jwt_service_container_src_files_path: "{{ matrix_livekit_jwt_service_base_path }}/container-src" matrix_livekit_jwt_service_container_image: "{{ matrix_livekit_jwt_service_container_image_registry_prefix }}element-hq/lk-jwt-service:{{ matrix_livekit_jwt_service_container_image_tag }}" matrix_livekit_jwt_service_container_image_registry_prefix: "{{ 'localhost/' if matrix_livekit_jwt_service_container_image_self_build else matrix_livekit_jwt_service_container_image_registry_prefix_upstream }}" matrix_livekit_jwt_service_container_image_registry_prefix_upstream: "{{ matrix_livekit_jwt_service_container_image_registry_prefix_upstream_default }}" matrix_livekit_jwt_service_container_image_registry_prefix_upstream_default: ghcr.io/ matrix_livekit_jwt_service_container_image_tag: "{{ matrix_livekit_jwt_service_version }}" matrix_livekit_jwt_service_container_labels_traefik_enabled: true matrix_livekit_jwt_service_container_labels_traefik_docker_network: "{{ matrix_livekit_jwt_service_container_network }}" matrix_livekit_jwt_service_container_labels_traefik_hostname: "{{ matrix_livekit_jwt_service_hostname }}" # The path prefix must either be `/` or not end with a slash (e.g. `/livekit-jwt-service`). matrix_livekit_jwt_service_container_labels_traefik_path_prefix: "{{ matrix_livekit_jwt_service_path_prefix }}" matrix_livekit_jwt_service_container_labels_traefik_rule: "Host(`{{ matrix_livekit_jwt_service_container_labels_traefik_hostname }}`){% if matrix_livekit_jwt_service_container_labels_traefik_path_prefix != '/' %} && PathPrefix(`{{ matrix_livekit_jwt_service_container_labels_traefik_path_prefix }}`){% endif %}" matrix_livekit_jwt_service_container_labels_traefik_priority: 0 matrix_livekit_jwt_service_container_labels_traefik_entrypoints: web-secure matrix_livekit_jwt_service_container_labels_traefik_tls: "{{ matrix_livekit_jwt_service_container_labels_traefik_entrypoints != 'web' }}" matrix_livekit_jwt_service_container_labels_traefik_tls_certResolver: default # noqa var-naming # Controls which additional headers to attach to all HTTP responses. # To add your own headers, use `matrix_livekit_jwt_service_container_labels_traefik_additional_response_headers_custom` matrix_livekit_jwt_service_container_labels_traefik_additional_response_headers: "{{ matrix_livekit_jwt_service_container_labels_traefik_additional_response_headers_auto | combine(matrix_livekit_jwt_service_container_labels_traefik_additional_response_headers_custom) }}" matrix_livekit_jwt_service_container_labels_traefik_additional_response_headers_auto: {} matrix_livekit_jwt_service_container_labels_traefik_additional_response_headers_custom: {} # matrix_livekit_jwt_service_container_labels_additional_labels contains a multiline string with additional labels to add to the container label file. # See `../templates/labels.j2` for details. # # Example: # matrix_livekit_jwt_service_container_labels_additional_labels: | # my.label=1 # another.label="here" matrix_livekit_jwt_service_container_labels_additional_labels: '' # A list of extra arguments to pass to the container matrix_livekit_jwt_service_container_extra_arguments: [] # Controls whether the container's built-in healthcheck is left enabled. # # lk-jwt-service v0.6.0 added a healthcheck which builds its URL as # `http://localhost:$LIVEKIT_JWT_BIND/healthz`, interpolating the bind address # into the port slot. Because LIVEKIT_JWT_BIND is a bind address (`:8080`), the # resulting URL is invalid and the check can never pass, leaving the container # permanently unhealthy. Traefik skips unhealthy containers, so the service # stops being routed and Element Call cannot obtain an SFU token. # # There is no way to correct the check from here: the image is built `FROM # scratch`, so it has no shell for a `--health-cmd` override to use. # # Re-enable this once upstream fixes the check. # See: https://github.com/element-hq/lk-jwt-service/pull/186 matrix_livekit_jwt_service_container_healthcheck_enabled: false # Controls the port that the service listens on internally in the container. # This is still used for Traefik configuration and container port binding. matrix_livekit_jwt_service_container_port: 8080 # Controls the LIVEKIT_JWT_BIND environment variable. # This is the preferred method in v0.4.0+, replacing the deprecated LIVEKIT_JWT_PORT. # Format: "host:port" or ":port" (to bind to all interfaces). # The default ":8080" binds to all interfaces on port 8080. matrix_livekit_jwt_service_environment_variable_livekit_jwt_bind: ":{{ matrix_livekit_jwt_service_container_port }}" # Controls the LIVEKIT_KEY environment variable matrix_livekit_jwt_service_environment_variable_livekit_key: "" # Controls the LIVEKIT_URL environment variable matrix_livekit_jwt_service_environment_variable_livekit_url: "" # Controls the LIVEKIT_SECRET environment variable matrix_livekit_jwt_service_environment_variable_livekit_secret: "" # Controls the LIVEKIT_FULL_ACCESS_HOMESERVERS environment variable. # Comma-separated list of Matrix homeservers whose users are authorized with full access to LiveKit SFU features # (like creating rooms on the SFU). # # This is a required setting and the service refuses to start without it. # Setting it to `*` grants full access to any federated Matrix user, but listing only the homeserver(s) # you intend to serve is strongly recommended. # # To add additional homeservers, use `matrix_livekit_jwt_service_environment_variable_livekit_full_access_homeservers_list_custom`. matrix_livekit_jwt_service_environment_variable_livekit_full_access_homeservers: "{{ matrix_livekit_jwt_service_environment_variable_livekit_full_access_homeservers_list | join(',') }}" matrix_livekit_jwt_service_environment_variable_livekit_full_access_homeservers_list: "{{ matrix_livekit_jwt_service_environment_variable_livekit_full_access_homeservers_list_default + matrix_livekit_jwt_service_environment_variable_livekit_full_access_homeservers_list_auto + matrix_livekit_jwt_service_environment_variable_livekit_full_access_homeservers_list_custom }}" matrix_livekit_jwt_service_environment_variable_livekit_full_access_homeservers_list_default: ["{{ matrix_domain }}"] matrix_livekit_jwt_service_environment_variable_livekit_full_access_homeservers_list_auto: [] matrix_livekit_jwt_service_environment_variable_livekit_full_access_homeservers_list_custom: [] # Controls the LIVEKIT_CS_API_URL_OVERRIDES environment variable. # # To learn where a user's homeserver serves its Client-Server API, the service performs `.well-known` discovery. # That is, it requests `https:///.well-known/matrix/client` over the network and reads `m.homeserver.base_url` out of it. # Entries listed here are consulted first, so that the server names they cover are resolved without discovery. # # Keys are Matrix server names and values are Client-Server API base URLs (including the scheme). # A playbook may inject an entry for the homeserver it manages, pointing the service at it directly. # # To add your own entries, use `matrix_livekit_jwt_service_environment_variable_livekit_cs_api_url_overrides_map_custom`. matrix_livekit_jwt_service_environment_variable_livekit_cs_api_url_overrides: "{{ matrix_livekit_jwt_service_environment_variable_livekit_cs_api_url_overrides_map.items() | map('join', '=') | join(',') }}" matrix_livekit_jwt_service_environment_variable_livekit_cs_api_url_overrides_map: "{{ matrix_livekit_jwt_service_environment_variable_livekit_cs_api_url_overrides_map_auto | combine(matrix_livekit_jwt_service_environment_variable_livekit_cs_api_url_overrides_map_custom) }}" matrix_livekit_jwt_service_environment_variable_livekit_cs_api_url_overrides_map_auto: {} matrix_livekit_jwt_service_environment_variable_livekit_cs_api_url_overrides_map_custom: {} # Additional environment variables to pass to the container. # # Environment variables take priority over settings in the configuration file. # # Example: # matrix_livekit_jwt_service_environment_variables_extension: | # KEY=value matrix_livekit_jwt_service_environment_variables_extension: '' # List of systemd services that LiveKit JWT Service service depends on matrix_livekit_jwt_service_systemd_required_services_list: "{{ matrix_livekit_jwt_service_systemd_required_services_list_default + matrix_livekit_jwt_service_systemd_required_services_list_auto + matrix_livekit_jwt_service_systemd_required_services_list_custom }}" matrix_livekit_jwt_service_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}" matrix_livekit_jwt_service_systemd_required_services_list_auto: [] matrix_livekit_jwt_service_systemd_required_services_list_custom: [] # matrix_livekit_jwt_service_restart_necessary controls whether the service # will be restarted (when true) or merely started (when false) by the # systemd service manager role (when conditional restart is enabled). # # This value is automatically computed during installation based on whether # any configuration files, the systemd service file, or the container image changed. # The default of `false` means "no restart needed" — appropriate when the role's # installation tasks haven't run (e.g., due to --tags skipping them). matrix_livekit_jwt_service_restart_necessary: false # Support additional container arguments for the LiveKit JWT service matrix_livekit_jwt_service_container_additional_arguments: [] # A list of additional "volumes" to mount in the container. # Contains definition objects like this: `{"type": "bind", "src": "/outside", "dst": "/inside", "options": "readonly"}. # See the `--mount` documentation for the `docker run` command. # Note: internally, this uses the `--mount` flag for mounting the specified volumes. matrix_livekit_jwt_service_container_additional_volumes: "{{ matrix_livekit_jwt_service_container_additional_volumes_auto + matrix_livekit_jwt_service_container_additional_volumes_custom }}" matrix_livekit_jwt_service_container_additional_volumes_auto: [] matrix_livekit_jwt_service_container_additional_volumes_custom: []