mirror of
https://github.com/spantaleev/matrix-docker-ansible-deploy.git
synced 2026-08-30 04:23:14 +00:00
lk-jwt-service v0.6.0 ships a healthcheck which builds its URL as http://localhost:$LIVEKIT_JWT_BIND/healthz, interpolating the bind address into the port slot. We set LIVEKIT_JWT_BIND to ":8080", so the check requests http://localhost::8080/healthz, which does not parse and can never succeed. The container therefore sits permanently unhealthy, Traefik skips unhealthy containers, and the service stops being routed, so Element Call fails to obtain an SFU token. No value satisfies both sides: the service passes LIVEKIT_JWT_BIND to ListenAndServe, which needs a full bind address, while the healthcheck needs a bare port. The check only works when the variable is unset and its own "8080" fallback applies, which would mean ignoring a configured port. Correcting the check from here is not possible either, as the image is built FROM scratch and has no shell for a --health-cmd override to use. Turn the healthcheck off, behind a variable so it can be turned back on once upstream fixes it. This restores the pre-v0.6.0 behavior, where the image carried no healthcheck at all. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
170 lines
11 KiB
YAML
170 lines
11 KiB
YAML
# 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://<server-name>/.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: []
|