Rename matrix_mautrix_telegram_* variables to matrix_bridge_mautrix_telegram_*

Part of adopting a uniform naming policy for bridge variables,
where the variable prefix matches the role directory name.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Slavi Pantaleev
2026-07-16 14:55:25 +03:00
parent ace4edb01b
commit e751673b0d
12 changed files with 388 additions and 388 deletions
@@ -26,7 +26,7 @@ matrix_mautrix_SERVICENAME_enabled: true
**Note**: for bridging to Meta's Messenger or Instagram, you would need to add `meta` with an underscore symbol (`_`) or hyphen (`-`) based on the context as prefix to each `SERVICENAME`; add `_` to variables (as in `matrix_bridge_mautrix_meta_messenger_configuration_extension_yaml` for example) and `-` to paths of the configuration files (as in `roles/custom/matrix-bridge-mautrix-meta-messenger/templates/config.yaml.j2`), respectively.
There are some additional things you may wish to configure about the bridge before you continue. Each bridge may have additional requirements besides `_enabled: true`. For example, the mautrix-telegram bridge (our documentation page about it is [here](configuring-playbook-bridge-mautrix-telegram.md)) requires the `matrix_mautrix_telegram_api_id` and `matrix_mautrix_telegram_api_hash` variables to be defined. Refer to each bridge's individual documentation page for details about enabling bridges.
There are some additional things you may wish to configure about the bridge before you continue. Each bridge may have additional requirements besides `_enabled: true`. For example, the mautrix-telegram bridge (our documentation page about it is [here](configuring-playbook-bridge-mautrix-telegram.md)) requires the `matrix_bridge_mautrix_telegram_api_id` and `matrix_bridge_mautrix_telegram_api_hash` variables to be defined. Refer to each bridge's individual documentation page for details about enabling bridges.
### Configure bridge permissions (optional)
@@ -36,9 +36,9 @@ See [this section](configuring-playbook-bridge-mautrix-bridges.md#set-up-double-
To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `YOUR_TELEGRAM_APP_ID` and `YOUR_TELEGRAM_API_HASH`.
```yaml
matrix_mautrix_telegram_enabled: true
matrix_mautrix_telegram_api_id: YOUR_TELEGRAM_APP_ID
matrix_mautrix_telegram_api_hash: YOUR_TELEGRAM_API_HASH
matrix_bridge_mautrix_telegram_enabled: true
matrix_bridge_mautrix_telegram_api_id: YOUR_TELEGRAM_APP_ID
matrix_bridge_mautrix_telegram_api_hash: YOUR_TELEGRAM_API_HASH
```
### Relaying
@@ -86,5 +86,5 @@ The default logging level for this component is `warn`. If you want to increase
```yaml
# Valid values: fatal, error, warn, info, debug, trace
matrix_mautrix_telegram_logging_level: debug
matrix_bridge_mautrix_telegram_logging_level: debug
```
+45 -45
View File
@@ -126,7 +126,7 @@ matrix_homeserver_container_extra_arguments_auto: |
+
(['--mount type=bind,src=' + matrix_bridge_mautrix_meta_instagram_config_path + '/registration.yaml,dst=/matrix-mautrix-meta-instagram-registration.yaml,ro'] if matrix_bridge_mautrix_meta_instagram_enabled else [])
+
(['--mount type=bind,src=' + matrix_mautrix_telegram_config_path + '/registration.yaml,dst=/matrix-mautrix-telegram-registration.yaml,ro'] if matrix_mautrix_telegram_enabled else [])
(['--mount type=bind,src=' + matrix_bridge_mautrix_telegram_config_path + '/registration.yaml,dst=/matrix-mautrix-telegram-registration.yaml,ro'] if matrix_bridge_mautrix_telegram_enabled else [])
+
(['--mount type=bind,src=' + matrix_mautrix_twitter_config_path + '/registration.yaml,dst=/matrix-mautrix-twitter-registration.yaml,ro'] if matrix_mautrix_twitter_enabled else [])
+
@@ -185,7 +185,7 @@ matrix_homeserver_app_service_config_files_auto: |
+
(['/matrix-mautrix-meta-instagram-registration.yaml'] if matrix_bridge_mautrix_meta_instagram_enabled else [])
+
(['/matrix-mautrix-telegram-registration.yaml'] if matrix_mautrix_telegram_enabled else [])
(['/matrix-mautrix-telegram-registration.yaml'] if matrix_bridge_mautrix_telegram_enabled else [])
+
(['/matrix-mautrix-twitter-registration.yaml'] if matrix_mautrix_twitter_enabled else [])
+
@@ -471,9 +471,9 @@ devture_systemd_service_manager_services_list_auto: |
([{
'name': 'matrix-mautrix-telegram.service',
'priority': 2000,
'restart_necessary': (matrix_mautrix_telegram_restart_necessary | bool),
'restart_necessary': (matrix_bridge_mautrix_telegram_restart_necessary | bool),
'groups': ['matrix', 'bridges', 'mautrix-telegram'],
}] if matrix_mautrix_telegram_enabled else [])
}] if matrix_bridge_mautrix_telegram_enabled else [])
+
([{
'name': 'matrix-mautrix-twitter.service',
@@ -1975,74 +1975,74 @@ matrix_bridge_mautrix_meta_instagram_database_password: "{{ ((matrix_homeserver_
######################################################################
# We don't enable bridges by default.
matrix_mautrix_telegram_enabled: false
matrix_bridge_mautrix_telegram_enabled: false
matrix_mautrix_telegram_systemd_required_services_list_auto: |
matrix_bridge_mautrix_telegram_systemd_required_services_list_auto: |
{{
matrix_addons_homeserver_systemd_services_list
+
([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_mautrix_telegram_database_hostname == postgres_connection_hostname) else [])
([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_bridge_mautrix_telegram_database_hostname == postgres_connection_hostname) else [])
}}
matrix_mautrix_telegram_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_mautrix_telegram_container_image_registry_prefix_upstream_default }}"
matrix_bridge_mautrix_telegram_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_bridge_mautrix_telegram_container_image_registry_prefix_upstream_default }}"
matrix_mautrix_telegram_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}"
matrix_bridge_mautrix_telegram_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}"
matrix_mautrix_telegram_container_network: "{{ matrix_addons_container_network }}"
matrix_bridge_mautrix_telegram_container_network: "{{ matrix_addons_container_network }}"
matrix_mautrix_telegram_container_additional_networks_auto: |-
matrix_bridge_mautrix_telegram_container_additional_networks_auto: |-
{{
(
([] if matrix_addons_homeserver_container_network == '' else [matrix_addons_homeserver_container_network])
+
([postgres_container_network] if (postgres_enabled and matrix_mautrix_telegram_database_hostname == postgres_connection_hostname and matrix_mautrix_telegram_container_network != postgres_container_network) else [])
([postgres_container_network] if (postgres_enabled and matrix_bridge_mautrix_telegram_database_hostname == postgres_connection_hostname and matrix_bridge_mautrix_telegram_container_network != postgres_container_network) else [])
+
([matrix_playbook_reverse_proxyable_services_additional_network] if (matrix_playbook_reverse_proxyable_services_additional_network and matrix_mautrix_telegram_container_labels_traefik_enabled) else [])
([matrix_playbook_reverse_proxyable_services_additional_network] if (matrix_playbook_reverse_proxyable_services_additional_network and matrix_bridge_mautrix_telegram_container_labels_traefik_enabled) else [])
) | unique
}}
matrix_mautrix_telegram_container_labels_traefik_enabled: "{{ matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] }}"
matrix_mautrix_telegram_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}"
matrix_mautrix_telegram_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}"
matrix_mautrix_telegram_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}"
matrix_bridge_mautrix_telegram_container_labels_traefik_enabled: "{{ matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] }}"
matrix_bridge_mautrix_telegram_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}"
matrix_bridge_mautrix_telegram_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}"
matrix_bridge_mautrix_telegram_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}"
matrix_mautrix_telegram_container_labels_metrics_middleware_basic_auth_enabled: "{{ matrix_metrics_exposure_http_basic_auth_enabled }}"
matrix_mautrix_telegram_container_labels_metrics_middleware_basic_auth_users: "{{ matrix_metrics_exposure_http_basic_auth_users }}"
matrix_bridge_mautrix_telegram_container_labels_metrics_middleware_basic_auth_enabled: "{{ matrix_metrics_exposure_http_basic_auth_enabled }}"
matrix_bridge_mautrix_telegram_container_labels_metrics_middleware_basic_auth_users: "{{ matrix_metrics_exposure_http_basic_auth_users }}"
matrix_mautrix_telegram_appservice_token: "{{ (matrix_homeserver_generic_secret_key + ':telegr.as.token') | hash('sha512') | to_uuid }}"
matrix_bridge_mautrix_telegram_appservice_token: "{{ (matrix_homeserver_generic_secret_key + ':telegr.as.token') | hash('sha512') | to_uuid }}"
matrix_mautrix_telegram_homeserver_domain: "{{ matrix_domain }}"
matrix_mautrix_telegram_homeserver_address: "{{ matrix_addons_homeserver_client_api_url }}"
matrix_mautrix_telegram_homeserver_token: "{{ (matrix_homeserver_generic_secret_key + ':telegr.hs.token') | hash('sha512') | to_uuid }}"
matrix_bridge_mautrix_telegram_homeserver_domain: "{{ matrix_domain }}"
matrix_bridge_mautrix_telegram_homeserver_address: "{{ matrix_addons_homeserver_client_api_url }}"
matrix_bridge_mautrix_telegram_homeserver_token: "{{ (matrix_homeserver_generic_secret_key + ':telegr.hs.token') | hash('sha512') | to_uuid }}"
matrix_mautrix_telegram_homeserver_async_media: "{{ matrix_homeserver_implementation in ['synapse'] }}"
matrix_bridge_mautrix_telegram_homeserver_async_media: "{{ matrix_homeserver_implementation in ['synapse'] }}"
matrix_mautrix_telegram_provisioning_shared_secret: "{{ (matrix_homeserver_generic_secret_key + ':mau.telegram.prov') | hash('sha512') | to_uuid }}"
matrix_bridge_mautrix_telegram_provisioning_shared_secret: "{{ (matrix_homeserver_generic_secret_key + ':mau.telegram.prov') | hash('sha512') | to_uuid }}"
matrix_mautrix_telegram_double_puppet_secrets_auto: |-
matrix_bridge_mautrix_telegram_double_puppet_secrets_auto: |-
{{
{
matrix_mautrix_telegram_homeserver_domain: ("as_token:" + matrix_appservice_double_puppet_registration_as_token)
matrix_bridge_mautrix_telegram_homeserver_domain: ("as_token:" + matrix_appservice_double_puppet_registration_as_token)
}
if matrix_appservice_double_puppet_enabled
else {}
}}
matrix_mautrix_telegram_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}"
matrix_bridge_mautrix_telegram_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}"
matrix_mautrix_telegram_metrics_proxying_enabled: "{{ matrix_mautrix_telegram_metrics_enabled and matrix_metrics_exposure_enabled }}"
matrix_mautrix_telegram_metrics_proxying_hostname: "{{ matrix_metrics_exposure_hostname }}"
matrix_mautrix_telegram_metrics_proxying_path_prefix: "{{ matrix_metrics_exposure_path_prefix }}/mautrix-telegram"
matrix_bridge_mautrix_telegram_metrics_proxying_enabled: "{{ matrix_bridge_mautrix_telegram_metrics_enabled and matrix_metrics_exposure_enabled }}"
matrix_bridge_mautrix_telegram_metrics_proxying_hostname: "{{ matrix_metrics_exposure_hostname }}"
matrix_bridge_mautrix_telegram_metrics_proxying_path_prefix: "{{ matrix_metrics_exposure_path_prefix }}/mautrix-telegram"
matrix_mautrix_telegram_scheme: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}"
matrix_mautrix_telegram_exposure_enabled: "{{ matrix_bridges_exposure_enabled }}"
matrix_mautrix_telegram_exposure_hostname: "{{ matrix_bridges_exposure_hostname }}"
matrix_mautrix_telegram_exposure_path_prefix: "{{ matrix_bridges_exposure_path_prefix }}/telegram"
matrix_bridge_mautrix_telegram_scheme: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}"
matrix_bridge_mautrix_telegram_exposure_enabled: "{{ matrix_bridges_exposure_enabled }}"
matrix_bridge_mautrix_telegram_exposure_hostname: "{{ matrix_bridges_exposure_hostname }}"
matrix_bridge_mautrix_telegram_exposure_path_prefix: "{{ matrix_bridges_exposure_path_prefix }}/telegram"
# Postgres is the default, except if not using internal Postgres server
matrix_mautrix_telegram_database_engine: "{{ 'postgres' if postgres_enabled else 'sqlite' }}"
matrix_mautrix_telegram_database_hostname: "{{ postgres_connection_hostname if postgres_enabled else '' }}"
matrix_mautrix_telegram_database_password: "{{ (matrix_homeserver_generic_secret_key + ':mau.telegram.db') | hash('sha512') | to_uuid }}"
matrix_bridge_mautrix_telegram_database_engine: "{{ 'postgres' if postgres_enabled else 'sqlite' }}"
matrix_bridge_mautrix_telegram_database_hostname: "{{ postgres_connection_hostname if postgres_enabled else '' }}"
matrix_bridge_mautrix_telegram_database_password: "{{ (matrix_homeserver_generic_secret_key + ':mau.telegram.db') | hash('sha512') | to_uuid }}"
######################################################################
#
@@ -4213,10 +4213,10 @@ postgres_managed_databases_auto: |
}] if (matrix_bridge_mautrix_wsproxy_enabled and matrix_bridge_mautrix_wsproxy_syncproxy_database_engine == 'postgres' and matrix_bridge_mautrix_wsproxy_syncproxy_database_hostname == 'matrix-postgres') else [])
+
([{
'name': matrix_mautrix_telegram_database_name,
'username': matrix_mautrix_telegram_database_username,
'password': matrix_mautrix_telegram_database_password,
}] if (matrix_mautrix_telegram_enabled and matrix_mautrix_telegram_database_engine == 'postgres' and matrix_mautrix_telegram_database_hostname == postgres_connection_hostname) else [])
'name': matrix_bridge_mautrix_telegram_database_name,
'username': matrix_bridge_mautrix_telegram_database_username,
'password': matrix_bridge_mautrix_telegram_database_password,
}] if (matrix_bridge_mautrix_telegram_enabled and matrix_bridge_mautrix_telegram_database_engine == 'postgres' and matrix_bridge_mautrix_telegram_database_hostname == postgres_connection_hostname) else [])
+
([{
'name': matrix_mautrix_twitter_database_name,
@@ -5171,9 +5171,9 @@ matrix_ketesa_config_asManagedUsers_auto: |
] if matrix_bridge_mautrix_slack_enabled else [])
+
([
'^@'+(matrix_mautrix_telegram_appservice_bot_username | default('') | regex_escape)+':'+(matrix_domain | regex_escape)+'$',
'^@'+(matrix_bridge_mautrix_telegram_appservice_bot_username | default('') | regex_escape)+':'+(matrix_domain | regex_escape)+'$',
'^@telegram_(channel-)?[0-9]+:'+(matrix_domain | regex_escape)+'$',
] if matrix_mautrix_telegram_enabled else [])
] if matrix_bridge_mautrix_telegram_enabled else [])
+
([
'^@'+(matrix_mautrix_twitter_appservice_bot_username | default('') | regex_escape)+':'+(matrix_domain | regex_escape)+'$',
@@ -6019,7 +6019,7 @@ matrix_static_files_file_matrix_mautrix_property_fi_mau_bridges_auto: |-
matrix_bridge_mautrix_meta_messenger_bridge_public_address if (matrix_bridge_mautrix_meta_messenger_enabled and matrix_bridge_mautrix_meta_messenger_container_labels_traefik_enabled and matrix_bridge_mautrix_meta_messenger_container_labels_exposure_enabled) else '',
matrix_bridge_mautrix_signal_bridge_public_address if (matrix_bridge_mautrix_signal_enabled and matrix_bridge_mautrix_signal_container_labels_traefik_enabled and matrix_bridge_mautrix_signal_container_labels_exposure_enabled) else '',
matrix_bridge_mautrix_slack_bridge_public_address if (matrix_bridge_mautrix_slack_enabled and matrix_bridge_mautrix_slack_container_labels_traefik_enabled and matrix_bridge_mautrix_slack_container_labels_exposure_enabled) else '',
matrix_mautrix_telegram_bridge_public_address if (matrix_mautrix_telegram_enabled and matrix_mautrix_telegram_container_labels_traefik_enabled and matrix_mautrix_telegram_container_labels_exposure_enabled) else '',
matrix_bridge_mautrix_telegram_bridge_public_address if (matrix_bridge_mautrix_telegram_enabled and matrix_bridge_mautrix_telegram_container_labels_traefik_enabled and matrix_bridge_mautrix_telegram_container_labels_exposure_enabled) else '',
matrix_mautrix_twitter_appservice_public_address if (matrix_mautrix_twitter_enabled and matrix_mautrix_twitter_container_labels_traefik_enabled and matrix_mautrix_twitter_container_labels_exposure_enabled) else '',
matrix_mautrix_whatsapp_bridge_public_address if (matrix_mautrix_whatsapp_enabled and matrix_mautrix_whatsapp_container_labels_traefik_enabled and matrix_mautrix_whatsapp_container_labels_exposure_enabled) else '',
] | select | list
@@ -19,167 +19,167 @@
# mautrix-telegram is a Matrix <-> Telegram bridge
# Project source code URL: https://github.com/mautrix/telegram
matrix_mautrix_telegram_enabled: true
matrix_bridge_mautrix_telegram_enabled: true
matrix_mautrix_telegram_container_image_self_build: false
matrix_mautrix_telegram_container_image_self_build_repo: "https://mau.dev/mautrix/telegram.git"
matrix_mautrix_telegram_container_image_self_build_branch: "{{ 'main' if matrix_mautrix_telegram_version == 'latest' else matrix_mautrix_telegram_version }}"
matrix_bridge_mautrix_telegram_container_image_self_build: false
matrix_bridge_mautrix_telegram_container_image_self_build_repo: "https://mau.dev/mautrix/telegram.git"
matrix_bridge_mautrix_telegram_container_image_self_build_branch: "{{ 'main' if matrix_bridge_mautrix_telegram_version == 'latest' else matrix_bridge_mautrix_telegram_version }}"
# renovate: datasource=docker depName=dock.mau.dev/mautrix/telegram
matrix_mautrix_telegram_version: v0.2606.0
matrix_bridge_mautrix_telegram_version: v0.2606.0
# See: https://mau.dev/mautrix/telegram/container_registry
matrix_mautrix_telegram_container_image: "{{ matrix_mautrix_telegram_container_image_registry_prefix }}mautrix/telegram:{{ matrix_mautrix_telegram_version }}"
matrix_mautrix_telegram_container_image_registry_prefix: "{{ 'localhost/' if matrix_mautrix_telegram_container_image_self_build else matrix_mautrix_telegram_container_image_registry_prefix_upstream }}"
matrix_mautrix_telegram_container_image_registry_prefix_upstream: "{{ matrix_mautrix_telegram_container_image_registry_prefix_upstream_default }}"
matrix_mautrix_telegram_container_image_registry_prefix_upstream_default: "dock.mau.dev/"
matrix_bridge_mautrix_telegram_container_image: "{{ matrix_bridge_mautrix_telegram_container_image_registry_prefix }}mautrix/telegram:{{ matrix_bridge_mautrix_telegram_version }}"
matrix_bridge_mautrix_telegram_container_image_registry_prefix: "{{ 'localhost/' if matrix_bridge_mautrix_telegram_container_image_self_build else matrix_bridge_mautrix_telegram_container_image_registry_prefix_upstream }}"
matrix_bridge_mautrix_telegram_container_image_registry_prefix_upstream: "{{ matrix_bridge_mautrix_telegram_container_image_registry_prefix_upstream_default }}"
matrix_bridge_mautrix_telegram_container_image_registry_prefix_upstream_default: "dock.mau.dev/"
matrix_mautrix_telegram_base_path: "{{ matrix_base_data_path }}/mautrix-telegram"
matrix_mautrix_telegram_config_path: "{{ matrix_mautrix_telegram_base_path }}/config"
matrix_mautrix_telegram_data_path: "{{ matrix_mautrix_telegram_base_path }}/data"
matrix_mautrix_telegram_container_src_files_path: "{{ matrix_mautrix_telegram_base_path }}/docker-src"
matrix_bridge_mautrix_telegram_base_path: "{{ matrix_base_data_path }}/mautrix-telegram"
matrix_bridge_mautrix_telegram_config_path: "{{ matrix_bridge_mautrix_telegram_base_path }}/config"
matrix_bridge_mautrix_telegram_data_path: "{{ matrix_bridge_mautrix_telegram_base_path }}/data"
matrix_bridge_mautrix_telegram_container_src_files_path: "{{ matrix_bridge_mautrix_telegram_base_path }}/docker-src"
matrix_mautrix_telegram_homeserver_address: ""
matrix_mautrix_telegram_homeserver_domain: '{{ matrix_domain }}'
matrix_bridge_mautrix_telegram_homeserver_address: ""
matrix_bridge_mautrix_telegram_homeserver_domain: '{{ matrix_domain }}'
# Whether asynchronous uploads via MSC2246 should be enabled for media.
# Requires a homeserver that supports MSC2246 (https://github.com/matrix-org/matrix-spec-proposals/pull/2246).
matrix_mautrix_telegram_homeserver_async_media: false
matrix_mautrix_telegram_appservice_address: 'http://matrix-mautrix-telegram:8080'
matrix_bridge_mautrix_telegram_homeserver_async_media: false
matrix_bridge_mautrix_telegram_appservice_address: 'http://matrix-mautrix-telegram:8080'
# Scheme of the bridge's public address (see `matrix_mautrix_telegram_bridge_public_address`).
matrix_mautrix_telegram_scheme: https
# Scheme of the bridge's public address (see `matrix_bridge_mautrix_telegram_bridge_public_address`).
matrix_bridge_mautrix_telegram_scheme: https
# The public base URL at which this bridge's HTTP API is reachable from outside (when exposed).
# Used for the provisioning API's external-server (OpenID) flow and for public media links.
matrix_mautrix_telegram_bridge_public_address: "{{ (matrix_mautrix_telegram_scheme + '://' + matrix_mautrix_telegram_exposure_hostname + matrix_mautrix_telegram_exposure_path_prefix) if matrix_mautrix_telegram_exposure_enabled else '' }}"
matrix_bridge_mautrix_telegram_bridge_public_address: "{{ (matrix_bridge_mautrix_telegram_scheme + '://' + matrix_bridge_mautrix_telegram_exposure_hostname + matrix_bridge_mautrix_telegram_exposure_path_prefix) if matrix_bridge_mautrix_telegram_exposure_enabled else '' }}"
matrix_mautrix_telegram_msc4190_enabled: "{{ matrix_bridges_msc4190_enabled }}"
matrix_mautrix_telegram_self_sign_enabled: "{{ matrix_bridges_self_sign_enabled }}"
matrix_bridge_mautrix_telegram_msc4190_enabled: "{{ matrix_bridges_msc4190_enabled }}"
matrix_bridge_mautrix_telegram_self_sign_enabled: "{{ matrix_bridges_self_sign_enabled }}"
matrix_mautrix_telegram_command_prefix: "!tg"
matrix_bridge_mautrix_telegram_command_prefix: "!tg"
# Get your own API keys at https://my.telegram.org/apps
matrix_mautrix_telegram_api_id: ''
matrix_mautrix_telegram_api_hash: ''
matrix_bridge_mautrix_telegram_api_id: ''
matrix_bridge_mautrix_telegram_api_hash: ''
matrix_mautrix_telegram_container_network: ""
matrix_bridge_mautrix_telegram_container_network: ""
matrix_mautrix_telegram_container_additional_networks: "{{ matrix_mautrix_telegram_container_additional_networks_auto + matrix_mautrix_telegram_container_additional_networks_custom }}"
matrix_mautrix_telegram_container_additional_networks_auto: []
matrix_mautrix_telegram_container_additional_networks_custom: []
matrix_bridge_mautrix_telegram_container_additional_networks: "{{ matrix_bridge_mautrix_telegram_container_additional_networks_auto + matrix_bridge_mautrix_telegram_container_additional_networks_custom }}"
matrix_bridge_mautrix_telegram_container_additional_networks_auto: []
matrix_bridge_mautrix_telegram_container_additional_networks_custom: []
# matrix_mautrix_telegram_container_labels_traefik_enabled controls whether labels to assist a Traefik reverse-proxy will be attached to the container.
# matrix_bridge_mautrix_telegram_container_labels_traefik_enabled controls whether labels to assist a Traefik reverse-proxy will be attached to the container.
# See `../templates/labels.j2` for details.
#
# To inject your own other container labels, see `matrix_mautrix_telegram_container_labels_additional_labels`.
matrix_mautrix_telegram_container_labels_traefik_enabled: true
matrix_mautrix_telegram_container_labels_traefik_docker_network: "{{ matrix_mautrix_telegram_container_network }}"
matrix_mautrix_telegram_container_labels_traefik_entrypoints: web-secure
matrix_mautrix_telegram_container_labels_traefik_tls_certResolver: default # noqa var-naming
# To inject your own other container labels, see `matrix_bridge_mautrix_telegram_container_labels_additional_labels`.
matrix_bridge_mautrix_telegram_container_labels_traefik_enabled: true
matrix_bridge_mautrix_telegram_container_labels_traefik_docker_network: "{{ matrix_bridge_mautrix_telegram_container_network }}"
matrix_bridge_mautrix_telegram_container_labels_traefik_entrypoints: web-secure
matrix_bridge_mautrix_telegram_container_labels_traefik_tls_certResolver: default # noqa var-naming
# Controls whether labels will be added that expose mautrix-telegram's metrics
matrix_mautrix_telegram_container_labels_metrics_enabled: "{{ matrix_mautrix_telegram_metrics_enabled and matrix_mautrix_telegram_metrics_proxying_enabled }}"
matrix_mautrix_telegram_container_labels_metrics_traefik_rule: "Host(`{{ matrix_mautrix_telegram_metrics_proxying_hostname }}`) && PathPrefix(`{{ matrix_mautrix_telegram_metrics_proxying_path_prefix }}`)"
matrix_mautrix_telegram_container_labels_metrics_traefik_priority: 0
matrix_mautrix_telegram_container_labels_metrics_traefik_entrypoints: "{{ matrix_mautrix_telegram_container_labels_traefik_entrypoints }}"
matrix_mautrix_telegram_container_labels_metrics_traefik_tls: "{{ matrix_mautrix_telegram_container_labels_metrics_traefik_entrypoints != 'web' }}"
matrix_mautrix_telegram_container_labels_metrics_traefik_tls_certResolver: "{{ matrix_mautrix_telegram_container_labels_traefik_tls_certResolver }}" # noqa var-naming
matrix_mautrix_telegram_container_labels_metrics_middleware_basic_auth_enabled: false
matrix_bridge_mautrix_telegram_container_labels_metrics_enabled: "{{ matrix_bridge_mautrix_telegram_metrics_enabled and matrix_bridge_mautrix_telegram_metrics_proxying_enabled }}"
matrix_bridge_mautrix_telegram_container_labels_metrics_traefik_rule: "Host(`{{ matrix_bridge_mautrix_telegram_metrics_proxying_hostname }}`) && PathPrefix(`{{ matrix_bridge_mautrix_telegram_metrics_proxying_path_prefix }}`)"
matrix_bridge_mautrix_telegram_container_labels_metrics_traefik_priority: 0
matrix_bridge_mautrix_telegram_container_labels_metrics_traefik_entrypoints: "{{ matrix_bridge_mautrix_telegram_container_labels_traefik_entrypoints }}"
matrix_bridge_mautrix_telegram_container_labels_metrics_traefik_tls: "{{ matrix_bridge_mautrix_telegram_container_labels_metrics_traefik_entrypoints != 'web' }}"
matrix_bridge_mautrix_telegram_container_labels_metrics_traefik_tls_certResolver: "{{ matrix_bridge_mautrix_telegram_container_labels_traefik_tls_certResolver }}" # noqa var-naming
matrix_bridge_mautrix_telegram_container_labels_metrics_middleware_basic_auth_enabled: false
# See: https://doc.traefik.io/traefik/middlewares/http/basicauth/#users
matrix_mautrix_telegram_container_labels_metrics_middleware_basic_auth_users: ''
matrix_bridge_mautrix_telegram_container_labels_metrics_middleware_basic_auth_users: ''
# Controls whether labels will be added that expose mautrix-telegram's HTTP API
# (used by tools like mautrix-manager for bridge login) at `https://<hostname><path_prefix>`.
matrix_mautrix_telegram_container_labels_exposure_enabled: "{{ matrix_mautrix_telegram_exposure_enabled }}"
matrix_mautrix_telegram_container_labels_exposure_traefik_rule: "Host(`{{ matrix_mautrix_telegram_exposure_hostname }}`) && PathPrefix(`{{ matrix_mautrix_telegram_exposure_path_prefix }}`)"
matrix_mautrix_telegram_container_labels_exposure_traefik_priority: 0
matrix_mautrix_telegram_container_labels_exposure_traefik_entrypoints: "{{ matrix_mautrix_telegram_container_labels_traefik_entrypoints }}"
matrix_mautrix_telegram_container_labels_exposure_traefik_tls: "{{ matrix_mautrix_telegram_container_labels_exposure_traefik_entrypoints != 'web' }}"
matrix_mautrix_telegram_container_labels_exposure_traefik_tls_certResolver: "{{ matrix_mautrix_telegram_container_labels_traefik_tls_certResolver }}" # noqa var-naming
matrix_bridge_mautrix_telegram_container_labels_exposure_enabled: "{{ matrix_bridge_mautrix_telegram_exposure_enabled }}"
matrix_bridge_mautrix_telegram_container_labels_exposure_traefik_rule: "Host(`{{ matrix_bridge_mautrix_telegram_exposure_hostname }}`) && PathPrefix(`{{ matrix_bridge_mautrix_telegram_exposure_path_prefix }}`)"
matrix_bridge_mautrix_telegram_container_labels_exposure_traefik_priority: 0
matrix_bridge_mautrix_telegram_container_labels_exposure_traefik_entrypoints: "{{ matrix_bridge_mautrix_telegram_container_labels_traefik_entrypoints }}"
matrix_bridge_mautrix_telegram_container_labels_exposure_traefik_tls: "{{ matrix_bridge_mautrix_telegram_container_labels_exposure_traefik_entrypoints != 'web' }}"
matrix_bridge_mautrix_telegram_container_labels_exposure_traefik_tls_certResolver: "{{ matrix_bridge_mautrix_telegram_container_labels_traefik_tls_certResolver }}" # noqa var-naming
# matrix_mautrix_telegram_container_labels_additional_labels contains a multiline string with additional labels to add to the container label file.
# matrix_bridge_mautrix_telegram_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_mautrix_telegram_container_labels_additional_labels: |
# matrix_bridge_mautrix_telegram_container_labels_additional_labels: |
# my.label=1
# another.label="here"
matrix_mautrix_telegram_container_labels_additional_labels: ''
matrix_bridge_mautrix_telegram_container_labels_additional_labels: ''
# A list of extra arguments to pass to the container
matrix_mautrix_telegram_container_extra_arguments: []
matrix_bridge_mautrix_telegram_container_extra_arguments: []
# List of systemd services that matrix-mautrix-telegram.service depends on.
matrix_mautrix_telegram_systemd_required_services_list: "{{ matrix_mautrix_telegram_systemd_required_services_list_default + matrix_mautrix_telegram_systemd_required_services_list_auto + matrix_mautrix_telegram_systemd_required_services_list_custom }}"
matrix_mautrix_telegram_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_mautrix_telegram_systemd_required_services_list_auto: []
matrix_mautrix_telegram_systemd_required_services_list_custom: []
matrix_bridge_mautrix_telegram_systemd_required_services_list: "{{ matrix_bridge_mautrix_telegram_systemd_required_services_list_default + matrix_bridge_mautrix_telegram_systemd_required_services_list_auto + matrix_bridge_mautrix_telegram_systemd_required_services_list_custom }}"
matrix_bridge_mautrix_telegram_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_bridge_mautrix_telegram_systemd_required_services_list_auto: []
matrix_bridge_mautrix_telegram_systemd_required_services_list_custom: []
# List of systemd services that matrix-mautrix-telegram.service wants
matrix_mautrix_telegram_systemd_wanted_services_list: []
matrix_bridge_mautrix_telegram_systemd_wanted_services_list: []
matrix_mautrix_telegram_appservice_token: ''
matrix_mautrix_telegram_homeserver_token: ''
matrix_bridge_mautrix_telegram_appservice_token: ''
matrix_bridge_mautrix_telegram_homeserver_token: ''
matrix_mautrix_telegram_appservice_bot_username: telegrambot
matrix_bridge_mautrix_telegram_appservice_bot_username: telegrambot
# Minimum severity of journal log messages.
# Valid values: fatal, error, warn, info, debug, trace
matrix_mautrix_telegram_logging_level: 'warn'
matrix_bridge_mautrix_telegram_logging_level: 'warn'
# Whether or not created rooms should have federation enabled.
# If false, created portal rooms will never be federated.
matrix_mautrix_telegram_federate_rooms: true
matrix_bridge_mautrix_telegram_federate_rooms: true
# Whether or not metrics endpoint should be enabled.
# Enabling them is usually enough for a local (in-container) Prometheus to consume them.
# If metrics need to be consumed by another (external) Prometheus server, consider exposing them via `matrix_mautrix_telegram_metrics_proxying_enabled`.
matrix_mautrix_telegram_metrics_enabled: false
# If metrics need to be consumed by another (external) Prometheus server, consider exposing them via `matrix_bridge_mautrix_telegram_metrics_proxying_enabled`.
matrix_bridge_mautrix_telegram_metrics_enabled: false
# Controls whether metrics should be proxied (exposed) on a public URL
matrix_mautrix_telegram_metrics_proxying_enabled: false
matrix_mautrix_telegram_metrics_proxying_hostname: ''
matrix_mautrix_telegram_metrics_proxying_path_prefix: ''
matrix_bridge_mautrix_telegram_metrics_proxying_enabled: false
matrix_bridge_mautrix_telegram_metrics_proxying_hostname: ''
matrix_bridge_mautrix_telegram_metrics_proxying_path_prefix: ''
# Controls whether mautrix-telegram's HTTP API is exposed publicly (used by tools like mautrix-manager for bridge login).
matrix_mautrix_telegram_exposure_enabled: false
matrix_mautrix_telegram_exposure_hostname: ''
matrix_mautrix_telegram_exposure_path_prefix: ''
matrix_bridge_mautrix_telegram_exposure_enabled: false
matrix_bridge_mautrix_telegram_exposure_hostname: ''
matrix_bridge_mautrix_telegram_exposure_path_prefix: ''
# Database-related configuration fields.
#
# To use SQLite, stick to these defaults.
#
# To use Postgres:
# - change the engine (`matrix_mautrix_telegram_database_engine: 'postgres'`)
# - adjust your database credentials via the `matrix_mautrix_telegram_database_*` variables
matrix_mautrix_telegram_database_engine: 'sqlite'
# - change the engine (`matrix_bridge_mautrix_telegram_database_engine: 'postgres'`)
# - adjust your database credentials via the `matrix_bridge_mautrix_telegram_database_*` variables
matrix_bridge_mautrix_telegram_database_engine: 'sqlite'
matrix_mautrix_telegram_sqlite_database_path_local: "{{ matrix_mautrix_telegram_data_path }}/mautrix-telegram.db"
matrix_mautrix_telegram_sqlite_database_path_in_container: "/data/mautrix-telegram.db"
matrix_bridge_mautrix_telegram_sqlite_database_path_local: "{{ matrix_bridge_mautrix_telegram_data_path }}/mautrix-telegram.db"
matrix_bridge_mautrix_telegram_sqlite_database_path_in_container: "/data/mautrix-telegram.db"
matrix_mautrix_telegram_database_username: 'matrix_mautrix_telegram'
matrix_mautrix_telegram_database_password: 'some-password'
matrix_mautrix_telegram_database_hostname: ''
matrix_mautrix_telegram_database_port: 5432
matrix_mautrix_telegram_database_name: 'matrix_mautrix_telegram'
matrix_mautrix_telegram_database_sslmode: disable
matrix_bridge_mautrix_telegram_database_username: 'matrix_mautrix_telegram'
matrix_bridge_mautrix_telegram_database_password: 'some-password'
matrix_bridge_mautrix_telegram_database_hostname: ''
matrix_bridge_mautrix_telegram_database_port: 5432
matrix_bridge_mautrix_telegram_database_name: 'matrix_mautrix_telegram'
matrix_bridge_mautrix_telegram_database_sslmode: disable
matrix_mautrix_telegram_database_connection_string: 'postgresql://{{ matrix_mautrix_telegram_database_username }}:{{ matrix_mautrix_telegram_database_password }}@{{ matrix_mautrix_telegram_database_hostname }}:{{ matrix_mautrix_telegram_database_port }}/{{ matrix_mautrix_telegram_database_name }}?sslmode={{ matrix_mautrix_telegram_database_sslmode }}'
matrix_bridge_mautrix_telegram_database_connection_string: 'postgresql://{{ matrix_bridge_mautrix_telegram_database_username }}:{{ matrix_bridge_mautrix_telegram_database_password }}@{{ matrix_bridge_mautrix_telegram_database_hostname }}:{{ matrix_bridge_mautrix_telegram_database_port }}/{{ matrix_bridge_mautrix_telegram_database_name }}?sslmode={{ matrix_bridge_mautrix_telegram_database_sslmode }}'
matrix_mautrix_telegram_appservice_database_type: "{{ {
matrix_bridge_mautrix_telegram_appservice_database_type: "{{ {
'sqlite': 'sqlite3-fk-wal',
'postgres': 'postgres',
}[matrix_mautrix_telegram_database_engine] }}"
}[matrix_bridge_mautrix_telegram_database_engine] }}"
matrix_mautrix_telegram_appservice_database_uri: "{{ {
'sqlite': matrix_mautrix_telegram_sqlite_database_path_in_container,
'postgres': matrix_mautrix_telegram_database_connection_string,
}[matrix_mautrix_telegram_database_engine] }}"
matrix_bridge_mautrix_telegram_appservice_database_uri: "{{ {
'sqlite': matrix_bridge_mautrix_telegram_sqlite_database_path_in_container,
'postgres': matrix_bridge_mautrix_telegram_database_connection_string,
}[matrix_bridge_mautrix_telegram_database_engine] }}"
matrix_mautrix_telegram_double_puppet_secrets: "{{ matrix_mautrix_telegram_double_puppet_secrets_auto | combine(matrix_mautrix_telegram_double_puppet_secrets_custom) }}"
matrix_mautrix_telegram_double_puppet_secrets_auto: {}
matrix_mautrix_telegram_double_puppet_secrets_custom: {}
matrix_bridge_mautrix_telegram_double_puppet_secrets: "{{ matrix_bridge_mautrix_telegram_double_puppet_secrets_auto | combine(matrix_bridge_mautrix_telegram_double_puppet_secrets_custom) }}"
matrix_bridge_mautrix_telegram_double_puppet_secrets_auto: {}
matrix_bridge_mautrix_telegram_double_puppet_secrets_custom: {}
# Displayname template for Telegram users.
# Available variables:
@@ -189,83 +189,83 @@ matrix_mautrix_telegram_double_puppet_secrets_custom: {}
# {{ .Username }} - the primary username of the Telegram user, if the user has one
# {{ .UserID }} - the internal user ID of the Telegram user
# {{ .Deleted }} - true if the user has been deleted, false otherwise
matrix_mautrix_telegram_network_displayname_template: '{% raw %}{{ if .Deleted }}Deleted account {{ .UserID }}{{ else }}{{ .FullName }}{{ end }}{% endraw %}'
matrix_bridge_mautrix_telegram_network_displayname_template: '{% raw %}{{ if .Deleted }}Deleted account {{ .UserID }}{{ else }}{{ .FullName }}{{ end }}{% endraw %}'
# Enable End-to-bridge encryption
matrix_mautrix_telegram_bridge_encryption_allow: "{{ matrix_bridges_encryption_enabled }}"
matrix_mautrix_telegram_bridge_encryption_default: "{{ matrix_bridges_encryption_default }}"
matrix_mautrix_telegram_bridge_encryption_require: false
matrix_mautrix_telegram_bridge_encryption_key_sharing_allow: "{{ matrix_mautrix_telegram_bridge_encryption_allow }}"
matrix_bridge_mautrix_telegram_bridge_encryption_allow: "{{ matrix_bridges_encryption_enabled }}"
matrix_bridge_mautrix_telegram_bridge_encryption_default: "{{ matrix_bridges_encryption_default }}"
matrix_bridge_mautrix_telegram_bridge_encryption_require: false
matrix_bridge_mautrix_telegram_bridge_encryption_key_sharing_allow: "{{ matrix_bridge_mautrix_telegram_bridge_encryption_allow }}"
# This pickle key value is backward-compatible with the legacy (Python) bridge.
# See: https://mau.dev/mautrix/telegram/-/blob/v0.2604.0/cmd/mautrix-telegram/legacymigrate.go
matrix_mautrix_telegram_bridge_encryption_pickle_key: mautrix.bridge.e2ee
matrix_bridge_mautrix_telegram_bridge_encryption_pickle_key: mautrix.bridge.e2ee
matrix_mautrix_telegram_bridge_personal_filtering_spaces: true
matrix_bridge_mautrix_telegram_bridge_personal_filtering_spaces: true
matrix_mautrix_telegram_provisioning_shared_secret: ''
matrix_mautrix_telegram_public_media_signing_key: ''
matrix_bridge_mautrix_telegram_provisioning_shared_secret: ''
matrix_bridge_mautrix_telegram_public_media_signing_key: ''
matrix_mautrix_telegram_bridge_permissions: |
matrix_bridge_mautrix_telegram_bridge_permissions: |
{{
{'*': 'relay', matrix_mautrix_telegram_homeserver_domain: 'user'}
{'*': 'relay', matrix_bridge_mautrix_telegram_homeserver_domain: 'user'}
| combine({matrix_admin: 'admin'} if matrix_admin else {})
}}
# Enable bridge relay functionality
matrix_mautrix_telegram_bridge_relay_enabled: "{{ matrix_bridges_relay_enabled }}"
matrix_bridge_mautrix_telegram_bridge_relay_enabled: "{{ matrix_bridges_relay_enabled }}"
# Only allow admins on this home server to set themselves as a relay user
matrix_mautrix_telegram_bridge_relay_admin_only: true
matrix_bridge_mautrix_telegram_bridge_relay_admin_only: true
# List of user login IDs which anyone can set as a relay, as long as the relay user is in the room.
matrix_mautrix_telegram_bridge_relay_default_relays: []
matrix_bridge_mautrix_telegram_bridge_relay_default_relays: []
# Controls whether to do backfilling at all.
matrix_mautrix_telegram_backfill_enabled: true
matrix_bridge_mautrix_telegram_backfill_enabled: true
# Default mautrix-telegram configuration template which covers the generic use case.
# You can customize it by controlling the various variables inside it.
#
# For a more advanced customization, you can extend the default (see `matrix_mautrix_telegram_configuration_extension_yaml`)
# For a more advanced customization, you can extend the default (see `matrix_bridge_mautrix_telegram_configuration_extension_yaml`)
# or completely replace this variable with your own template.
matrix_mautrix_telegram_configuration_yaml: "{{ lookup('template', 'templates/config.yaml.j2') }}"
matrix_bridge_mautrix_telegram_configuration_yaml: "{{ lookup('template', 'templates/config.yaml.j2') }}"
matrix_mautrix_telegram_configuration_extension_yaml: |
matrix_bridge_mautrix_telegram_configuration_extension_yaml: |
# Your custom YAML configuration goes here.
# This configuration extends the default starting configuration (`matrix_mautrix_telegram_configuration_yaml`).
# This configuration extends the default starting configuration (`matrix_bridge_mautrix_telegram_configuration_yaml`).
#
# You can override individual variables from the default configuration, or introduce new ones.
#
# If you need something more special, you can take full control by
# completely redefining `matrix_mautrix_telegram_configuration_yaml`.
# completely redefining `matrix_bridge_mautrix_telegram_configuration_yaml`.
matrix_mautrix_telegram_configuration_extension: "{{ matrix_mautrix_telegram_configuration_extension_yaml | from_yaml if matrix_mautrix_telegram_configuration_extension_yaml | from_yaml is mapping else {} }}"
matrix_bridge_mautrix_telegram_configuration_extension: "{{ matrix_bridge_mautrix_telegram_configuration_extension_yaml | from_yaml if matrix_bridge_mautrix_telegram_configuration_extension_yaml | from_yaml is mapping else {} }}"
# Holds the final configuration (a combination of the default and its extension).
# You most likely don't need to touch this variable. Instead, see `matrix_mautrix_telegram_configuration_yaml`.
matrix_mautrix_telegram_configuration: "{{ matrix_mautrix_telegram_configuration_yaml | from_yaml | combine(matrix_mautrix_telegram_configuration_extension, recursive=True) }}"
# You most likely don't need to touch this variable. Instead, see `matrix_bridge_mautrix_telegram_configuration_yaml`.
matrix_bridge_mautrix_telegram_configuration: "{{ matrix_bridge_mautrix_telegram_configuration_yaml | from_yaml | combine(matrix_bridge_mautrix_telegram_configuration_extension, recursive=True) }}"
matrix_mautrix_telegram_registration_yaml: |
matrix_bridge_mautrix_telegram_registration_yaml: |
id: telegram
url: {{ matrix_mautrix_telegram_appservice_address }}
as_token: "{{ matrix_mautrix_telegram_appservice_token }}"
hs_token: "{{ matrix_mautrix_telegram_homeserver_token }}"
url: {{ matrix_bridge_mautrix_telegram_appservice_address }}
as_token: "{{ matrix_bridge_mautrix_telegram_appservice_token }}"
hs_token: "{{ matrix_bridge_mautrix_telegram_homeserver_token }}"
# See https://github.com/mautrix/signal/issues/43
sender_localpart: _bot_{{ matrix_mautrix_telegram_appservice_bot_username }}
sender_localpart: _bot_{{ matrix_bridge_mautrix_telegram_appservice_bot_username }}
rate_limited: false
namespaces:
users:
- exclusive: true
regex: '^@telegram_.+:{{ matrix_mautrix_telegram_homeserver_domain | regex_escape }}$'
regex: '^@telegram_.+:{{ matrix_bridge_mautrix_telegram_homeserver_domain | regex_escape }}$'
- exclusive: true
regex: '^@{{ matrix_mautrix_telegram_appservice_bot_username | regex_escape }}:{{ matrix_mautrix_telegram_homeserver_domain | regex_escape }}$'
regex: '^@{{ matrix_bridge_mautrix_telegram_appservice_bot_username | regex_escape }}:{{ matrix_bridge_mautrix_telegram_homeserver_domain | regex_escape }}$'
de.sorunome.msc2409.push_ephemeral: true
receive_ephemeral: true
io.element.msc4190: {{ matrix_mautrix_telegram_msc4190_enabled | to_json }}
io.element.msc4190: {{ matrix_bridge_mautrix_telegram_msc4190_enabled | to_json }}
matrix_mautrix_telegram_registration: "{{ matrix_mautrix_telegram_registration_yaml | from_yaml }}"
matrix_bridge_mautrix_telegram_registration: "{{ matrix_bridge_mautrix_telegram_registration_yaml | from_yaml }}"
# matrix_mautrix_telegram_restart_necessary controls whether the service
# matrix_bridge_mautrix_telegram_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).
#
@@ -273,4 +273,4 @@ matrix_mautrix_telegram_registration: "{{ matrix_mautrix_telegram_registration_y
# 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_mautrix_telegram_restart_necessary: false
matrix_bridge_mautrix_telegram_restart_necessary: false
@@ -12,15 +12,15 @@
- install-all
- install-mautrix-telegram
block:
- when: matrix_mautrix_telegram_enabled | bool
- when: matrix_bridge_mautrix_telegram_enabled | bool
ansible.builtin.include_tasks: "{{ role_path }}/tasks/validate_config.yml"
- when: matrix_mautrix_telegram_enabled | bool
- when: matrix_bridge_mautrix_telegram_enabled | bool
ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_install.yml"
- tags:
- setup-all
- setup-mautrix-telegram
block:
- when: not matrix_mautrix_telegram_enabled | bool
- when: not matrix_bridge_mautrix_telegram_enabled | bool
ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
@@ -18,7 +18,7 @@
---
- ansible.builtin.set_fact:
matrix_mautrix_telegram_migration_requires_restart: false
matrix_bridge_mautrix_telegram_migration_requires_restart: false
# The legacy Python bridge stored its SQLite DB at `{base_path}/mautrix-telegram.db` (the role's
# root). Later, we started relocating it to `{base_path}/data/mautrix-telegram.db`. The sqlite→
@@ -27,10 +27,10 @@
# switch to Postgres wouldn't actually get their data imported before the service starts.
- name: Check if a legacy-location SQLite database exists
ansible.builtin.stat:
path: "{{ matrix_mautrix_telegram_base_path }}/mautrix-telegram.db"
register: matrix_mautrix_telegram_stat_database_legacy_location
path: "{{ matrix_bridge_mautrix_telegram_base_path }}/mautrix-telegram.db"
register: matrix_bridge_mautrix_telegram_stat_database_legacy_location
- when: matrix_mautrix_telegram_stat_database_legacy_location.stat.exists | bool
- when: matrix_bridge_mautrix_telegram_stat_database_legacy_location.stat.exists | bool
block:
- name: Ensure matrix-mautrix-telegram.service is stopped before relocating legacy SQLite DB
ansible.builtin.service:
@@ -42,7 +42,7 @@
- name: Ensure data directory exists for legacy SQLite DB relocation
ansible.builtin.file:
path: "{{ matrix_mautrix_telegram_data_path }}"
path: "{{ matrix_bridge_mautrix_telegram_data_path }}"
state: directory
mode: '0750'
owner: "{{ matrix_user_name }}"
@@ -50,34 +50,34 @@
- name: (Data relocation) Move mautrix-telegram SQLite DB from legacy location to data directory
ansible.builtin.command:
cmd: "mv {{ matrix_mautrix_telegram_base_path }}/mautrix-telegram.db {{ matrix_mautrix_telegram_data_path }}/mautrix-telegram.db"
creates: "{{ matrix_mautrix_telegram_data_path }}/mautrix-telegram.db"
removes: "{{ matrix_mautrix_telegram_base_path }}/mautrix-telegram.db"
cmd: "mv {{ matrix_bridge_mautrix_telegram_base_path }}/mautrix-telegram.db {{ matrix_bridge_mautrix_telegram_data_path }}/mautrix-telegram.db"
creates: "{{ matrix_bridge_mautrix_telegram_data_path }}/mautrix-telegram.db"
removes: "{{ matrix_bridge_mautrix_telegram_base_path }}/mautrix-telegram.db"
- when: "matrix_mautrix_telegram_database_engine == 'postgres'"
- when: "matrix_bridge_mautrix_telegram_database_engine == 'postgres'"
block:
- name: Check if an SQLite database already exists
ansible.builtin.stat:
path: "{{ matrix_mautrix_telegram_sqlite_database_path_local }}"
register: matrix_mautrix_telegram_sqlite_database_path_local_stat_result
path: "{{ matrix_bridge_mautrix_telegram_sqlite_database_path_local }}"
register: matrix_bridge_mautrix_telegram_sqlite_database_path_local_stat_result
- when: "matrix_mautrix_telegram_sqlite_database_path_local_stat_result.stat.exists | bool"
- when: "matrix_bridge_mautrix_telegram_sqlite_database_path_local_stat_result.stat.exists | bool"
block:
- ansible.builtin.include_role:
name: galaxy/postgres
tasks_from: migrate_db_to_postgres
vars:
postgres_db_migration_request:
src: "{{ matrix_mautrix_telegram_sqlite_database_path_local }}"
dst: "{{ matrix_mautrix_telegram_database_connection_string }}"
src: "{{ matrix_bridge_mautrix_telegram_sqlite_database_path_local }}"
dst: "{{ matrix_bridge_mautrix_telegram_database_connection_string }}"
caller: "{{ role_path | basename }}"
engine_variable_name: 'matrix_mautrix_telegram_database_engine'
engine_variable_name: 'matrix_bridge_mautrix_telegram_database_engine'
engine_old: 'sqlite'
systemd_services_to_stop: ['matrix-mautrix-telegram.service']
pgloader_options: ['--with "quote identifiers"']
- ansible.builtin.set_fact:
matrix_mautrix_telegram_migration_requires_restart: true
matrix_bridge_mautrix_telegram_migration_requires_restart: true
- name: Ensure Mautrix Telegram paths exist
ansible.builtin.file:
@@ -87,77 +87,77 @@
owner: "{{ matrix_user_name }}"
group: "{{ matrix_group_name }}"
with_items:
- {path: "{{ matrix_mautrix_telegram_base_path }}", when: true}
- {path: "{{ matrix_mautrix_telegram_config_path }}", when: true}
- {path: "{{ matrix_mautrix_telegram_data_path }}", when: true}
- {path: "{{ matrix_mautrix_telegram_container_src_files_path }}", when: "{{ matrix_mautrix_telegram_container_image_self_build }}"}
- {path: "{{ matrix_bridge_mautrix_telegram_base_path }}", when: true}
- {path: "{{ matrix_bridge_mautrix_telegram_config_path }}", when: true}
- {path: "{{ matrix_bridge_mautrix_telegram_data_path }}", when: true}
- {path: "{{ matrix_bridge_mautrix_telegram_container_src_files_path }}", when: "{{ matrix_bridge_mautrix_telegram_container_image_self_build }}"}
when: item.when | bool
- name: Ensure Mautrix Telegram image is pulled
community.docker.docker_image_pull:
name: "{{ matrix_mautrix_telegram_container_image }}"
name: "{{ matrix_bridge_mautrix_telegram_container_image }}"
pull: always
when: "not matrix_mautrix_telegram_container_image_self_build | bool"
register: matrix_mautrix_telegram_container_image_pull_result
when: "not matrix_bridge_mautrix_telegram_container_image_self_build | bool"
register: matrix_bridge_mautrix_telegram_container_image_pull_result
retries: "{{ devture_playbook_help_container_retries_count }}"
delay: "{{ devture_playbook_help_container_retries_delay }}"
until: matrix_mautrix_telegram_container_image_pull_result is not failed
until: matrix_bridge_mautrix_telegram_container_image_pull_result is not failed
- name: Ensure Mautrix Telegram repository is present on self-build
ansible.builtin.git:
repo: "{{ matrix_mautrix_telegram_container_image_self_build_repo }}"
dest: "{{ matrix_mautrix_telegram_container_src_files_path }}"
version: "{{ matrix_mautrix_telegram_container_image_self_build_branch }}"
repo: "{{ matrix_bridge_mautrix_telegram_container_image_self_build_repo }}"
dest: "{{ matrix_bridge_mautrix_telegram_container_src_files_path }}"
version: "{{ matrix_bridge_mautrix_telegram_container_image_self_build_branch }}"
force: "yes"
become: true
become_user: "{{ matrix_user_name }}"
register: matrix_mautrix_telegram_git_pull_results
when: "matrix_mautrix_telegram_container_image_self_build | bool"
register: matrix_bridge_mautrix_telegram_git_pull_results
when: "matrix_bridge_mautrix_telegram_container_image_self_build | bool"
- name: Ensure Mautrix Telegram Docker image is built
community.docker.docker_image_build:
name: "{{ matrix_mautrix_telegram_container_image }}"
name: "{{ matrix_bridge_mautrix_telegram_container_image }}"
dockerfile: Dockerfile
path: "{{ matrix_mautrix_telegram_container_src_files_path }}"
path: "{{ matrix_bridge_mautrix_telegram_container_src_files_path }}"
pull: true
rebuild: "{{ 'always' if matrix_mautrix_telegram_git_pull_results.changed | bool else 'never' }}"
when: "matrix_mautrix_telegram_container_image_self_build | bool"
register: matrix_mautrix_telegram_container_image_build_result
rebuild: "{{ 'always' if matrix_bridge_mautrix_telegram_git_pull_results.changed | bool else 'never' }}"
when: "matrix_bridge_mautrix_telegram_container_image_self_build | bool"
register: matrix_bridge_mautrix_telegram_container_image_build_result
- name: Ensure mautrix-telegram config.yaml installed
ansible.builtin.copy:
content: "{{ matrix_mautrix_telegram_configuration | to_nice_yaml(indent=2, width=999999) }}"
dest: "{{ matrix_mautrix_telegram_config_path }}/config.yaml"
content: "{{ matrix_bridge_mautrix_telegram_configuration | to_nice_yaml(indent=2, width=999999) }}"
dest: "{{ matrix_bridge_mautrix_telegram_config_path }}/config.yaml"
mode: '0644'
owner: "{{ matrix_user_name }}"
group: "{{ matrix_group_name }}"
register: matrix_mautrix_telegram_config_result
register: matrix_bridge_mautrix_telegram_config_result
- name: Ensure mautrix-telegram registration.yaml installed
ansible.builtin.copy:
content: "{{ matrix_mautrix_telegram_registration | to_nice_yaml(indent=2, width=999999) }}"
dest: "{{ matrix_mautrix_telegram_config_path }}/registration.yaml"
content: "{{ matrix_bridge_mautrix_telegram_registration | to_nice_yaml(indent=2, width=999999) }}"
dest: "{{ matrix_bridge_mautrix_telegram_config_path }}/registration.yaml"
mode: '0644'
owner: "{{ matrix_user_name }}"
group: "{{ matrix_group_name }}"
register: matrix_mautrix_telegram_registration_result
register: matrix_bridge_mautrix_telegram_registration_result
- name: Ensure mautrix-telegram support files installed
ansible.builtin.template:
src: "{{ role_path }}/templates/{{ item }}.j2"
dest: "{{ matrix_mautrix_telegram_base_path }}/{{ item }}"
dest: "{{ matrix_bridge_mautrix_telegram_base_path }}/{{ item }}"
mode: '0640'
owner: "{{ matrix_user_name }}"
group: "{{ matrix_group_name }}"
with_items:
- labels
register: matrix_mautrix_telegram_support_files_result
register: matrix_bridge_mautrix_telegram_support_files_result
- name: Ensure matrix-mautrix-telegram container network is created
when: matrix_mautrix_telegram_container_network != 'host'
when: matrix_bridge_mautrix_telegram_container_network != 'host'
community.general.docker_network:
enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}"
name: "{{ matrix_mautrix_telegram_container_network }}"
name: "{{ matrix_bridge_mautrix_telegram_container_network }}"
driver: bridge
driver_options: "{{ devture_systemd_docker_base_container_networks_driver_options }}"
@@ -166,19 +166,19 @@
src: "{{ role_path }}/templates/systemd/matrix-mautrix-telegram.service.j2"
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-mautrix-telegram.service"
mode: '0644'
register: matrix_mautrix_telegram_systemd_service_result
register: matrix_bridge_mautrix_telegram_systemd_service_result
- name: Determine whether matrix-mautrix-telegram needs a restart
ansible.builtin.set_fact:
matrix_mautrix_telegram_restart_necessary: >-
matrix_bridge_mautrix_telegram_restart_necessary: >-
{{
matrix_mautrix_telegram_migration_requires_restart | default(false)
or matrix_mautrix_telegram_config_result.changed | default(false)
or matrix_mautrix_telegram_registration_result.changed | default(false)
or matrix_mautrix_telegram_support_files_result.changed | default(false)
or matrix_mautrix_telegram_systemd_service_result.changed | default(false)
or matrix_mautrix_telegram_container_image_pull_result.changed | default(false)
or matrix_mautrix_telegram_container_image_build_result.changed | default(false)
matrix_bridge_mautrix_telegram_migration_requires_restart | default(false)
or matrix_bridge_mautrix_telegram_config_result.changed | default(false)
or matrix_bridge_mautrix_telegram_registration_result.changed | default(false)
or matrix_bridge_mautrix_telegram_support_files_result.changed | default(false)
or matrix_bridge_mautrix_telegram_systemd_service_result.changed | default(false)
or matrix_bridge_mautrix_telegram_container_image_pull_result.changed | default(false)
or matrix_bridge_mautrix_telegram_container_image_build_result.changed | default(false)
}}
- name: Ensure matrix-mautrix-telegram.service restarted, if necessary
@@ -186,4 +186,4 @@
name: "matrix-mautrix-telegram.service"
state: restarted
daemon_reload: true
when: "matrix_mautrix_telegram_migration_requires_restart | bool"
when: "matrix_bridge_mautrix_telegram_migration_requires_restart | bool"
@@ -9,9 +9,9 @@
- name: Check existence of matrix-mautrix-telegram service
ansible.builtin.stat:
path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-mautrix-telegram.service"
register: matrix_mautrix_telegram_service_stat
register: matrix_bridge_mautrix_telegram_service_stat
- when: matrix_mautrix_telegram_service_stat.stat.exists | bool
- when: matrix_bridge_mautrix_telegram_service_stat.stat.exists | bool
block:
- name: Ensure matrix-mautrix-telegram is stopped
ansible.builtin.service:
@@ -13,66 +13,66 @@
Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml).
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
with_items:
- {'old': 'matrix_mautrix_telegram_container_exposed_port_number', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_mautrix_telegram_container_self_build', 'new': 'matrix_mautrix_telegram_container_image_self_build'}
- {'old': 'matrix_mautrix_telegram_login_shared_secret', 'new': '<removed>'}
- {'old': 'matrix_mautrix_telegram_docker_image_name_prefix', 'new': 'matrix_mautrix_telegram_container_image_registry_prefix'}
- {'old': 'matrix_mautrix_telegram_docker_repo', 'new': 'matrix_mautrix_telegram_container_image_self_build_repo'}
- {'old': 'matrix_mautrix_telegram_docker_repo_version', 'new': 'matrix_mautrix_telegram_container_image_self_build_branch'}
- {'old': 'matrix_mautrix_telegram_docker_src_files_path', 'new': 'matrix_mautrix_telegram_container_src_files_path'}
- {'old': 'matrix_mautrix_telegram_docker_image', 'new': 'matrix_mautrix_telegram_container_image'}
- {'old': 'matrix_mautrix_telegram_docker_image_force_pull', 'new': 'matrix_mautrix_telegram_container_image_force_pull'}
- {'old': 'matrix_mautrix_telegram_container_image_force_pull', 'new': '<removed> (the new community.docker.docker_image_pull module handles this natively)'}
- {'old': 'matrix_mautrix_telegram_docker_image_registry_prefix', 'new': 'matrix_mautrix_telegram_container_image_registry_prefix'}
- {'old': 'matrix_mautrix_telegram_docker_image_registry_prefix_upstream', 'new': 'matrix_mautrix_telegram_container_image_registry_prefix_upstream'}
- {'old': 'matrix_mautrix_telegram_docker_image_registry_prefix_upstream_default', 'new': 'matrix_mautrix_telegram_container_image_registry_prefix_upstream_default'}
- {'old': 'matrix_mautrix_telegram_container_repo', 'new': 'matrix_mautrix_telegram_container_image_self_build_repo'}
- {'old': 'matrix_mautrix_telegram_container_repo_version', 'new': 'matrix_mautrix_telegram_container_image_self_build_branch'}
- {'old': 'matrix_bridge_mautrix_telegram_container_exposed_port_number', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_bridge_mautrix_telegram_container_self_build', 'new': 'matrix_bridge_mautrix_telegram_container_image_self_build'}
- {'old': 'matrix_bridge_mautrix_telegram_login_shared_secret', 'new': '<removed>'}
- {'old': 'matrix_bridge_mautrix_telegram_docker_image_name_prefix', 'new': 'matrix_bridge_mautrix_telegram_container_image_registry_prefix'}
- {'old': 'matrix_bridge_mautrix_telegram_docker_repo', 'new': 'matrix_bridge_mautrix_telegram_container_image_self_build_repo'}
- {'old': 'matrix_bridge_mautrix_telegram_docker_repo_version', 'new': 'matrix_bridge_mautrix_telegram_container_image_self_build_branch'}
- {'old': 'matrix_bridge_mautrix_telegram_docker_src_files_path', 'new': 'matrix_bridge_mautrix_telegram_container_src_files_path'}
- {'old': 'matrix_bridge_mautrix_telegram_docker_image', 'new': 'matrix_bridge_mautrix_telegram_container_image'}
- {'old': 'matrix_bridge_mautrix_telegram_docker_image_force_pull', 'new': 'matrix_bridge_mautrix_telegram_container_image_force_pull'}
- {'old': 'matrix_bridge_mautrix_telegram_container_image_force_pull', 'new': '<removed> (the new community.docker.docker_image_pull module handles this natively)'}
- {'old': 'matrix_bridge_mautrix_telegram_docker_image_registry_prefix', 'new': 'matrix_bridge_mautrix_telegram_container_image_registry_prefix'}
- {'old': 'matrix_bridge_mautrix_telegram_docker_image_registry_prefix_upstream', 'new': 'matrix_bridge_mautrix_telegram_container_image_registry_prefix_upstream'}
- {'old': 'matrix_bridge_mautrix_telegram_docker_image_registry_prefix_upstream_default', 'new': 'matrix_bridge_mautrix_telegram_container_image_registry_prefix_upstream_default'}
- {'old': 'matrix_bridge_mautrix_telegram_container_repo', 'new': 'matrix_bridge_mautrix_telegram_container_image_self_build_repo'}
- {'old': 'matrix_bridge_mautrix_telegram_container_repo_version', 'new': 'matrix_bridge_mautrix_telegram_container_image_self_build_branch'}
# Variables removed in the bridgev2 (Go) rewrite — mautrix-telegram no longer has a Python runtime,
# a separate lottieconverter container or a web-based login endpoint.
# (matrix_mautrix_telegram_scheme was part of this group too, but has since been reintroduced to configure the bridge's HTTP API exposure address, so it's intentionally not listed here.)
- {'old': 'matrix_mautrix_telegram_hostname', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_mautrix_telegram_path_prefix', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_mautrix_telegram_public_endpoint', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_mautrix_telegram_appservice_public_enabled', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_mautrix_telegram_appservice_public_external', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_mautrix_telegram_container_labels_public_endpoint_enabled', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_mautrix_telegram_container_labels_public_endpoint_hostname', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_mautrix_telegram_container_labels_public_endpoint_path_prefix', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_mautrix_telegram_container_labels_public_endpoint_traefik_rule', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_mautrix_telegram_container_labels_public_endpoint_traefik_priority', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_mautrix_telegram_container_labels_public_endpoint_traefik_entrypoints', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_mautrix_telegram_container_labels_public_endpoint_traefik_tls', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_mautrix_telegram_container_labels_public_endpoint_traefik_tls_certResolver', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_mautrix_telegram_container_http_host_bind_port', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_mautrix_telegram_filter_mode', 'new': '<removed (not available in the bridgev2 rewrite of mautrix-telegram)>'}
- {'old': 'matrix_mautrix_telegram_bot_token', 'new': '<removed; the old-style relaybot is gone — use the common bridge relay mode (matrix_mautrix_telegram_bridge_relay_enabled) instead>'}
- {'old': 'matrix_mautrix_telegram_bridge_login_shared_secret_map', 'new': '<superseded by matrix_mautrix_telegram_double_puppet_secrets>'}
- {'old': 'matrix_mautrix_telegram_bridge_login_shared_secret_map_auto', 'new': '<superseded by matrix_mautrix_telegram_double_puppet_secrets_auto>'}
- {'old': 'matrix_mautrix_telegram_bridge_login_shared_secret_map_custom', 'new': '<superseded by matrix_mautrix_telegram_double_puppet_secrets_custom>'}
- {'old': 'matrix_mautrix_telegram_username_template', 'new': '<removed (no longer configurable via a single variable; use matrix_mautrix_telegram_configuration_extension_yaml if needed)>'}
- {'old': 'matrix_mautrix_telegram_alias_template', 'new': '<removed (room aliases are no longer created by the bridgev2 rewrite of mautrix-telegram)>'}
- {'old': 'matrix_mautrix_telegram_displayname_template', 'new': '<superseded by matrix_mautrix_telegram_network_displayname_template (note: the syntax has changed to Go templates)>'}
- {'old': 'matrix_mautrix_telegram_appservice_database', 'new': '<superseded by matrix_mautrix_telegram_appservice_database_uri>'}
- {'old': 'matrix_mautrix_telegram_lottieconverter_container_image_self_build', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_mautrix_telegram_lottieconverter_container_image_self_build_mask_arch', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_mautrix_telegram_lottieconverter_container_repo', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_mautrix_telegram_lottieconverter_container_repo_version', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_mautrix_telegram_lottieconverter_container_src_files_path', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_mautrix_telegram_lottieconverter_container_image', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_mautrix_telegram_lottieconverter_container_image_registry_prefix', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_mautrix_telegram_lottieconverter_container_image_registry_prefix_upstream', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_mautrix_telegram_lottieconverter_container_image_registry_prefix_upstream_default', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
# (matrix_bridge_mautrix_telegram_scheme was part of this group too, but has since been reintroduced to configure the bridge's HTTP API exposure address, so it's intentionally not listed here.)
- {'old': 'matrix_bridge_mautrix_telegram_hostname', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_bridge_mautrix_telegram_path_prefix', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_bridge_mautrix_telegram_public_endpoint', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_bridge_mautrix_telegram_appservice_public_enabled', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_bridge_mautrix_telegram_appservice_public_external', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_bridge_mautrix_telegram_container_labels_public_endpoint_enabled', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_bridge_mautrix_telegram_container_labels_public_endpoint_hostname', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_bridge_mautrix_telegram_container_labels_public_endpoint_path_prefix', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_bridge_mautrix_telegram_container_labels_public_endpoint_traefik_rule', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_bridge_mautrix_telegram_container_labels_public_endpoint_traefik_priority', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_bridge_mautrix_telegram_container_labels_public_endpoint_traefik_entrypoints', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_bridge_mautrix_telegram_container_labels_public_endpoint_traefik_tls', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_bridge_mautrix_telegram_container_labels_public_endpoint_traefik_tls_certResolver', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_bridge_mautrix_telegram_container_http_host_bind_port', 'new': '<removed (the bridge no longer has a public web-based login endpoint)>'}
- {'old': 'matrix_bridge_mautrix_telegram_filter_mode', 'new': '<removed (not available in the bridgev2 rewrite of mautrix-telegram)>'}
- {'old': 'matrix_bridge_mautrix_telegram_bot_token', 'new': '<removed; the old-style relaybot is gone — use the common bridge relay mode (matrix_bridge_mautrix_telegram_bridge_relay_enabled) instead>'}
- {'old': 'matrix_bridge_mautrix_telegram_bridge_login_shared_secret_map', 'new': '<superseded by matrix_bridge_mautrix_telegram_double_puppet_secrets>'}
- {'old': 'matrix_bridge_mautrix_telegram_bridge_login_shared_secret_map_auto', 'new': '<superseded by matrix_bridge_mautrix_telegram_double_puppet_secrets_auto>'}
- {'old': 'matrix_bridge_mautrix_telegram_bridge_login_shared_secret_map_custom', 'new': '<superseded by matrix_bridge_mautrix_telegram_double_puppet_secrets_custom>'}
- {'old': 'matrix_bridge_mautrix_telegram_username_template', 'new': '<removed (no longer configurable via a single variable; use matrix_bridge_mautrix_telegram_configuration_extension_yaml if needed)>'}
- {'old': 'matrix_bridge_mautrix_telegram_alias_template', 'new': '<removed (room aliases are no longer created by the bridgev2 rewrite of mautrix-telegram)>'}
- {'old': 'matrix_bridge_mautrix_telegram_displayname_template', 'new': '<superseded by matrix_bridge_mautrix_telegram_network_displayname_template (note: the syntax has changed to Go templates)>'}
- {'old': 'matrix_bridge_mautrix_telegram_appservice_database', 'new': '<superseded by matrix_bridge_mautrix_telegram_appservice_database_uri>'}
- {'old': 'matrix_bridge_mautrix_telegram_lottieconverter_container_image_self_build', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_bridge_mautrix_telegram_lottieconverter_container_image_self_build_mask_arch', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_bridge_mautrix_telegram_lottieconverter_container_repo', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_bridge_mautrix_telegram_lottieconverter_container_repo_version', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_bridge_mautrix_telegram_lottieconverter_container_src_files_path', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_bridge_mautrix_telegram_lottieconverter_container_image', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_bridge_mautrix_telegram_lottieconverter_container_image_registry_prefix', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_bridge_mautrix_telegram_lottieconverter_container_image_registry_prefix_upstream', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_bridge_mautrix_telegram_lottieconverter_container_image_registry_prefix_upstream_default', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
# Historical lottieconverter aliases from before the _docker_ → _container_ rename:
- {'old': 'matrix_mautrix_telegram_lottieconverter_container_self_build', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_mautrix_telegram_lottieconverter_docker_image_name_prefix', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_mautrix_telegram_lottieconverter_docker_image', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_mautrix_telegram_lottieconverter_docker_image_registry_prefix', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_mautrix_telegram_lottieconverter_docker_image_registry_prefix_upstream', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_mautrix_telegram_lottieconverter_docker_image_registry_prefix_upstream_default', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_mautrix_telegram_lottieconverter_docker_repo', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_mautrix_telegram_lottieconverter_docker_repo_version', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_mautrix_telegram_lottieconverter_docker_src_files_path', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_bridge_mautrix_telegram_lottieconverter_container_self_build', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_bridge_mautrix_telegram_lottieconverter_docker_image_name_prefix', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_bridge_mautrix_telegram_lottieconverter_docker_image', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_bridge_mautrix_telegram_lottieconverter_docker_image_registry_prefix', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_bridge_mautrix_telegram_lottieconverter_docker_image_registry_prefix_upstream', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_bridge_mautrix_telegram_lottieconverter_docker_image_registry_prefix_upstream_default', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_bridge_mautrix_telegram_lottieconverter_docker_repo', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_bridge_mautrix_telegram_lottieconverter_docker_repo_version', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_bridge_mautrix_telegram_lottieconverter_docker_src_files_path', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
# Even older aliases (no `_mautrix` infix):
- {'old': 'matrix_telegram_lottieconverter_container_image_self_build', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
- {'old': 'matrix_telegram_lottieconverter_container_image_self_build_mask_arch', 'new': '<removed (lottieconverter is now bundled into the mautrix-telegram image)>'}
@@ -87,15 +87,15 @@
You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0"
with_items:
- {'name': 'matrix_mautrix_telegram_api_id', when: true}
- {'name': 'matrix_mautrix_telegram_api_hash', when: true}
- {'name': 'matrix_mautrix_telegram_appservice_token', when: true}
- {'name': 'matrix_mautrix_telegram_homeserver_address', when: true}
- {'name': 'matrix_mautrix_telegram_homeserver_token', when: true}
- {'name': 'matrix_mautrix_telegram_container_network', when: true}
- {'name': 'matrix_mautrix_telegram_database_hostname', when: "{{ matrix_mautrix_telegram_database_engine == 'postgres' }}"}
- {'name': 'matrix_mautrix_telegram_metrics_proxying_hostname', when: "{{ matrix_mautrix_telegram_metrics_proxying_enabled }}"}
- {'name': 'matrix_mautrix_telegram_metrics_proxying_path_prefix', when: "{{ matrix_mautrix_telegram_metrics_proxying_enabled }}"}
- {'name': 'matrix_bridge_mautrix_telegram_api_id', when: true}
- {'name': 'matrix_bridge_mautrix_telegram_api_hash', when: true}
- {'name': 'matrix_bridge_mautrix_telegram_appservice_token', when: true}
- {'name': 'matrix_bridge_mautrix_telegram_homeserver_address', when: true}
- {'name': 'matrix_bridge_mautrix_telegram_homeserver_token', when: true}
- {'name': 'matrix_bridge_mautrix_telegram_container_network', when: true}
- {'name': 'matrix_bridge_mautrix_telegram_database_hostname', when: "{{ matrix_bridge_mautrix_telegram_database_engine == 'postgres' }}"}
- {'name': 'matrix_bridge_mautrix_telegram_metrics_proxying_hostname', when: "{{ matrix_bridge_mautrix_telegram_metrics_proxying_enabled }}"}
- {'name': 'matrix_bridge_mautrix_telegram_metrics_proxying_path_prefix', when: "{{ matrix_bridge_mautrix_telegram_metrics_proxying_enabled }}"}
# Temporary workaround for an upstream SQLite legacy-migration bug in mautrix-telegram v0.2604.0.
# See the separate task file for details; the whole file (and this include) can be deleted once
@@ -103,8 +103,8 @@
- name: Guard against the upstream mautrix-telegram v0.2604.0 SQLite legacy-migration bug
ansible.builtin.include_tasks: "{{ role_path }}/tasks/validate_config_sqlite_legacy_migration_bug.yml"
when:
- "matrix_mautrix_telegram_database_engine == 'sqlite'"
- "not (matrix_mautrix_telegram_bridgev2_sqlite_upgrade_confirmed | default(false) | bool)"
- "matrix_bridge_mautrix_telegram_database_engine == 'sqlite'"
- "not (matrix_bridge_mautrix_telegram_bridgev2_sqlite_upgrade_confirmed | default(false) | bool)"
# Bridgev2 permission values are: block, relay, commands, user, admin.
# The old Python bridge had different levels (relaybot, user, puppeting, full, admin).
@@ -112,8 +112,8 @@
# equivalent to the old `full`/`puppeting`). `relaybot`, `puppeting` and `full` don't exist
# in bridgev2 and will cause the bridge to reject its config at startup.
#
# We check the fully-merged configuration (not just `matrix_mautrix_telegram_bridge_permissions`)
# because users commonly override permissions via `matrix_mautrix_telegram_configuration_extension_yaml`,
# We check the fully-merged configuration (not just `matrix_bridge_mautrix_telegram_bridge_permissions`)
# because users commonly override permissions via `matrix_bridge_mautrix_telegram_configuration_extension_yaml`,
# and those overrides would otherwise slip through validation.
- name: Fail if bridge permissions still reference legacy Python-bridge permission levels
ansible.builtin.fail:
@@ -134,9 +134,9 @@
admin -> admin
See https://docs.mau.fi/bridges/general/permissions.html and the bridge's example config
for details. Update either `matrix_mautrix_telegram_bridge_permissions` or the `bridge.permissions`
section inside `matrix_mautrix_telegram_configuration_extension_yaml` — whichever you use.
for details. Update either `matrix_bridge_mautrix_telegram_bridge_permissions` or the `bridge.permissions`
section inside `matrix_bridge_mautrix_telegram_configuration_extension_yaml` — whichever you use.
when: "item.value in ['relaybot', 'puppeting', 'full']"
loop: "{{ (matrix_mautrix_telegram_configuration.bridge.permissions | default({})) | dict2items }}"
loop: "{{ (matrix_bridge_mautrix_telegram_configuration.bridge.permissions | default({})) | dict2items }}"
loop_control:
label: "{{ item.key }}"
@@ -24,18 +24,18 @@
# Telethon-session store, which upstream's legacymigrate.sql renames to
# `telethon_sessions_old` as part of the bridgev2 migration).
#
# Users can bypass this via `matrix_mautrix_telegram_bridgev2_sqlite_upgrade_confirmed: true`.
# Users can bypass this via `matrix_bridge_mautrix_telegram_bridgev2_sqlite_upgrade_confirmed: true`.
# ###########################################################################
- name: Check for an existing mautrix-telegram SQLite database (legacy location)
ansible.builtin.stat:
path: "{{ matrix_mautrix_telegram_base_path }}/mautrix-telegram.db"
register: matrix_mautrix_telegram_sqlite_legacy_path_stat
path: "{{ matrix_bridge_mautrix_telegram_base_path }}/mautrix-telegram.db"
register: matrix_bridge_mautrix_telegram_sqlite_legacy_path_stat
- name: Check for an existing mautrix-telegram SQLite database (data path)
ansible.builtin.stat:
path: "{{ matrix_mautrix_telegram_sqlite_database_path_local }}"
register: matrix_mautrix_telegram_sqlite_data_path_stat
path: "{{ matrix_bridge_mautrix_telegram_sqlite_database_path_local }}"
register: matrix_bridge_mautrix_telegram_sqlite_data_path_stat
- name: Inspect SQLite database for the legacy Python-bridge schema signature
ansible.builtin.command:
@@ -53,19 +53,19 @@
sys.exit(1 if cur.fetchone() else 0)
except Exception:
sys.exit(0)
- "{{ matrix_mautrix_telegram_sqlite_legacy_path_stat.stat.path if matrix_mautrix_telegram_sqlite_legacy_path_stat.stat.exists else matrix_mautrix_telegram_sqlite_data_path_stat.stat.path }}"
register: matrix_mautrix_telegram_sqlite_legacy_check
- "{{ matrix_bridge_mautrix_telegram_sqlite_legacy_path_stat.stat.path if matrix_bridge_mautrix_telegram_sqlite_legacy_path_stat.stat.exists else matrix_bridge_mautrix_telegram_sqlite_data_path_stat.stat.path }}"
register: matrix_bridge_mautrix_telegram_sqlite_legacy_check
changed_when: false
failed_when: false
when: >-
matrix_mautrix_telegram_sqlite_legacy_path_stat.stat.exists
or matrix_mautrix_telegram_sqlite_data_path_stat.stat.exists
matrix_bridge_mautrix_telegram_sqlite_legacy_path_stat.stat.exists
or matrix_bridge_mautrix_telegram_sqlite_data_path_stat.stat.exists
- name: Fail if upgrading a legacy SQLite install (upstream has a known migration bug)
ansible.builtin.fail:
msg: |-
A legacy Python mautrix-telegram SQLite database was detected at
`{{ matrix_mautrix_telegram_sqlite_legacy_path_stat.stat.path if matrix_mautrix_telegram_sqlite_legacy_path_stat.stat.exists else matrix_mautrix_telegram_sqlite_data_path_stat.stat.path }}`
`{{ matrix_bridge_mautrix_telegram_sqlite_legacy_path_stat.stat.path if matrix_bridge_mautrix_telegram_sqlite_legacy_path_stat.stat.exists else matrix_bridge_mautrix_telegram_sqlite_data_path_stat.stat.path }}`
(it contains the `telethon_sessions` table from the Python bridge).
Upstream mautrix-telegram v0.2604.0 has a **known bug** in the legacy SQLite
@@ -78,7 +78,7 @@
1. Switch to Postgres before upgrading. If you're using the playbook-managed Postgres
service (`postgres_enabled: true`), just set:
matrix_mautrix_telegram_database_engine: postgres
matrix_bridge_mautrix_telegram_database_engine: postgres
and re-run the playbook. The playbook will migrate your SQLite data into Postgres
first (via pgloader), and upstream's bridgev2 migration path is known to work on
@@ -90,10 +90,10 @@
If you're sure you want to proceed anyway (for example because you have a separate
backup), you can bypass this check by setting:
matrix_mautrix_telegram_bridgev2_sqlite_upgrade_confirmed: true
matrix_bridge_mautrix_telegram_bridgev2_sqlite_upgrade_confirmed: true
in your vars.yml. Only use the override if you know what you're doing.
when: >-
(matrix_mautrix_telegram_sqlite_legacy_path_stat.stat.exists
or matrix_mautrix_telegram_sqlite_data_path_stat.stat.exists)
and (matrix_mautrix_telegram_sqlite_legacy_check.rc | default(0)) == 1
(matrix_bridge_mautrix_telegram_sqlite_legacy_path_stat.stat.exists
or matrix_bridge_mautrix_telegram_sqlite_data_path_stat.stat.exists)
and (matrix_bridge_mautrix_telegram_sqlite_legacy_check.rc | default(0)) == 1
@@ -2,8 +2,8 @@
# Network-specific config options
network:
# Get your own API keys at https://my.telegram.org/apps
api_id: {{ matrix_mautrix_telegram_api_id | int | to_json }}
api_hash: {{ matrix_mautrix_telegram_api_hash | to_json }}
api_id: {{ matrix_bridge_mautrix_telegram_api_id | int | to_json }}
api_hash: {{ matrix_bridge_mautrix_telegram_api_hash | to_json }}
# Device info shown in the Telegram device list.
device_info:
@@ -118,14 +118,14 @@ network:
# Should view-once messages be disabled entirely?
disable_view_once: false
# Displayname template for Telegram users.
displayname_template: {{ matrix_mautrix_telegram_network_displayname_template | to_json }}
displayname_template: {{ matrix_bridge_mautrix_telegram_network_displayname_template | to_json }}
# Config options that affect the central bridge module.
bridge:
# The prefix for commands. Only required in non-management rooms.
command_prefix: {{ matrix_mautrix_telegram_command_prefix | to_json }}
command_prefix: {{ matrix_bridge_mautrix_telegram_command_prefix | to_json }}
# Should the bridge create a space for each login containing the rooms that account is in?
personal_filtering_spaces: {{ matrix_mautrix_telegram_bridge_personal_filtering_spaces | to_json }}
personal_filtering_spaces: {{ matrix_bridge_mautrix_telegram_bridge_personal_filtering_spaces | to_json }}
# Whether the bridge should set names and avatars explicitly for DM portals.
# This is only necessary when using clients that don't support MSC4171.
private_chat_portal_meta: true
@@ -181,12 +181,12 @@ bridge:
relay:
# Whether relay mode should be allowed. If allowed, the set-relay command can be used to turn any
# authenticated user into a relaybot for that chat.
enabled: {{ matrix_mautrix_telegram_bridge_relay_enabled | to_json }}
enabled: {{ matrix_bridge_mautrix_telegram_bridge_relay_enabled | to_json }}
# Should only admins be allowed to set themselves as relay users?
# If true, non-admins can only set users listed in default_relays as relays in a room.
admin_only: {{ matrix_mautrix_telegram_bridge_relay_admin_only | to_json }}
admin_only: {{ matrix_bridge_mautrix_telegram_bridge_relay_admin_only | to_json }}
# List of user login IDs which anyone can set as a relay, as long as the relay user is in the room.
default_relays: {{ matrix_mautrix_telegram_bridge_relay_default_relays | to_json }}
default_relays: {{ matrix_bridge_mautrix_telegram_bridge_relay_default_relays | to_json }}
# The formats to use when sending messages via the relaybot.
# Available variables:
# .Sender.UserID - The Matrix user ID of the sender.
@@ -218,18 +218,18 @@ bridge:
# * - All Matrix users
# domain - All users on that homeserver
# mxid - Specific user
permissions: {{ matrix_mautrix_telegram_bridge_permissions|to_json }}
permissions: {{ matrix_bridge_mautrix_telegram_bridge_permissions|to_json }}
# Config for the bridge's database.
database:
# The database type. "sqlite3-fk-wal" and "postgres" are supported.
type: {{ matrix_mautrix_telegram_appservice_database_type | to_json }}
type: {{ matrix_bridge_mautrix_telegram_appservice_database_type | to_json }}
# The database URI.
# SQLite: A raw file path is supported, but `file:<path>?_txlock=immediate` is recommended.
# https://github.com/mattn/go-sqlite3#connection-string
# Postgres: Connection string. For example, postgres://user:password@host/database?sslmode=disable
# To connect via Unix socket, use something like postgres:///dbname?host=/var/run/postgresql
uri: {{ matrix_mautrix_telegram_appservice_database_uri | to_json }}
uri: {{ matrix_bridge_mautrix_telegram_appservice_database_uri | to_json }}
# Maximum number of connections.
max_open_conns: 20
max_idle_conns: 2
@@ -243,9 +243,9 @@ homeserver:
# The address that this appservice can use to connect to the homeserver.
# Local addresses without HTTPS are generally recommended when the bridge is running on the same machine,
# but https also works if they run on different machines.
address: {{ matrix_mautrix_telegram_homeserver_address | to_json }}
address: {{ matrix_bridge_mautrix_telegram_homeserver_address | to_json }}
# The domain of the homeserver (also known as server_name, used for MXIDs, etc).
domain: {{ matrix_mautrix_telegram_homeserver_domain | to_json }}
domain: {{ matrix_bridge_mautrix_telegram_homeserver_domain | to_json }}
# What software is the homeserver running?
# Standard Matrix homeservers like Synapse, Dendrite and Conduit should just use "standard" here.
@@ -261,7 +261,7 @@ homeserver:
# The bridge will use the appservice as_token to authorize requests.
message_send_checkpoint_endpoint:
# Does the homeserver support https://github.com/matrix-org/matrix-spec-proposals/pull/2246?
async_media: {{ matrix_mautrix_telegram_homeserver_async_media | to_json }}
async_media: {{ matrix_bridge_mautrix_telegram_homeserver_async_media | to_json }}
# Should the bridge use a websocket for connecting to the homeserver?
# The server side is currently not documented anywhere and is only implemented by mautrix-wsproxy,
@@ -277,11 +277,11 @@ appservice:
# Like the homeserver address, a local non-https address is recommended when the bridge is on the same machine.
# If the bridge is elsewhere, you must secure the connection yourself (e.g. with https or wireguard)
# If you want to use https, you need to use a reverse proxy. The bridge does not have TLS support built in.
address: {{ matrix_mautrix_telegram_appservice_address | to_json }}
address: {{ matrix_bridge_mautrix_telegram_appservice_address | to_json }}
# A public address that external services can use to reach this appservice.
# This is only needed for things like public media. A reverse proxy is generally necessary when using this field.
# This value doesn't affect the registration file.
public_address: {{ matrix_mautrix_telegram_bridge_public_address | to_json }}
public_address: {{ matrix_bridge_mautrix_telegram_bridge_public_address | to_json }}
# The hostname and port where this appservice should listen.
# For Docker, you generally have to change the hostname to 0.0.0.0.
@@ -293,7 +293,7 @@ appservice:
# Appservice bot details.
bot:
# Username of the appservice bot.
username: {{ matrix_mautrix_telegram_appservice_bot_username | to_json }}
username: {{ matrix_bridge_mautrix_telegram_appservice_bot_username | to_json }}
# Display name and avatar for bot. Set to "remove" to remove display name/avatar, leave empty
# to leave display name/avatar as-is.
displayname: Telegram bridge bot
@@ -308,8 +308,8 @@ appservice:
async_transactions: false
# Authentication tokens for AS <-> HS communication. Autogenerated; do not modify.
as_token: {{ matrix_mautrix_telegram_appservice_token | to_json }}
hs_token: {{ matrix_mautrix_telegram_homeserver_token | to_json }}
as_token: {{ matrix_bridge_mautrix_telegram_appservice_token | to_json }}
hs_token: {{ matrix_bridge_mautrix_telegram_homeserver_token | to_json }}
# Localpart template of MXIDs for remote users.
# {% raw %}{{.}}{% endraw %} is replaced with the internal ID of the user.
@@ -327,7 +327,7 @@ matrix:
sync_direct_chat_list: true
# Whether created rooms should have federation enabled. If false, created portal rooms
# will never be federated. Changing this option requires recreating rooms.
federate_rooms: {{ matrix_mautrix_telegram_federate_rooms|to_json }}
federate_rooms: {{ matrix_bridge_mautrix_telegram_federate_rooms|to_json }}
# The threshold as bytes after which the bridge should roundtrip uploads via the disk
# rather than keeping the whole file in memory.
upload_file_threshold: 5242880
@@ -347,7 +347,7 @@ provisioning:
prefix: /_matrix/provision
# Shared secret for authentication. If set to "generate" or null, a random secret will be generated,
# or if set to "disable", the provisioning API will be disabled.
shared_secret: {{ matrix_mautrix_telegram_provisioning_shared_secret | to_json }}
shared_secret: {{ matrix_bridge_mautrix_telegram_provisioning_shared_secret | to_json }}
# Whether to allow provisioning API requests to be authed using Matrix access tokens.
# This follows the same rules as double puppeting to determine which server to contact to check the token,
# which means that by default, it only works for users on the same server as the bridge.
@@ -363,7 +363,7 @@ public_media:
enabled: false
# A key for signing public media URLs.
# If set to "generate", a random key will be generated.
signing_key: {{ matrix_mautrix_telegram_public_media_signing_key | to_json }}
signing_key: {{ matrix_bridge_mautrix_telegram_public_media_signing_key | to_json }}
# Number of seconds that public media URLs are valid for.
# If set to 0, URLs will never expire.
expiry: 0
@@ -397,7 +397,7 @@ direct_media:
# See https://docs.mau.fi/bridges/general/backfill.html for more details.
backfill:
# Whether to do backfilling at all.
enabled: {{ matrix_mautrix_telegram_backfill_enabled | to_json }}
enabled: {{ matrix_bridge_mautrix_telegram_backfill_enabled | to_json }}
# Maximum number of messages to backfill in empty rooms.
max_initial_messages: 50
# Maximum number of missed messages to backfill after bridge restarts.
@@ -436,18 +436,18 @@ double_puppet:
allow_discovery: false
# Shared secrets for automatic double puppeting.
# See https://docs.mau.fi/bridges/general/double-puppeting.html for instructions.
secrets: {{ matrix_mautrix_telegram_double_puppet_secrets | to_json }}
secrets: {{ matrix_bridge_mautrix_telegram_double_puppet_secrets | to_json }}
# End-to-bridge encryption support options.
#
# See https://docs.mau.fi/bridges/general/end-to-bridge-encryption.html for more info.
encryption:
# Whether to enable encryption at all. If false, the bridge will not function in encrypted rooms.
allow: {{ matrix_mautrix_telegram_bridge_encryption_allow | to_json }}
allow: {{ matrix_bridge_mautrix_telegram_bridge_encryption_allow | to_json }}
# Whether to force-enable encryption in all bridged rooms.
default: {{ matrix_mautrix_telegram_bridge_encryption_default | to_json }}
default: {{ matrix_bridge_mautrix_telegram_bridge_encryption_default | to_json }}
# Whether to require all messages to be encrypted and drop any unencrypted messages.
require: {{ matrix_mautrix_telegram_bridge_encryption_require | to_json }}
require: {{ matrix_bridge_mautrix_telegram_bridge_encryption_require | to_json }}
# Whether to use MSC2409/MSC3202 instead of /sync long polling for receiving encryption-related data.
# This option is not yet compatible with standard Matrix servers like Synapse and should not be used.
appservice: false
@@ -455,16 +455,16 @@ encryption:
# Requires the homeserver to support MSC4190 and the device masquerading parts of MSC3202.
# Only relevant when using end-to-bridge encryption, required when using encryption with next-gen auth (MSC3861).
# Changing this option requires updating the appservice registration file.
msc4190: {{ matrix_mautrix_telegram_msc4190_enabled | to_json }}
msc4190: {{ matrix_bridge_mautrix_telegram_msc4190_enabled | to_json }}
# Whether to enable self-signing for bridges (Only the bridge bot uses this for now)
# Requires msc4190 to replace keys on reset
self_sign: {{ matrix_mautrix_telegram_self_sign_enabled | to_json }}
self_sign: {{ matrix_bridge_mautrix_telegram_self_sign_enabled | to_json }}
# Enable key sharing? If enabled, key requests for rooms where users are in will be fulfilled.
# You must use a client that supports requesting keys from other users to use this feature.
allow_key_sharing: {{ matrix_mautrix_telegram_bridge_encryption_key_sharing_allow | to_json }}
allow_key_sharing: {{ matrix_bridge_mautrix_telegram_bridge_encryption_key_sharing_allow | to_json }}
# Pickle key for encrypting encryption keys in the bridge database.
# If set to generate, a random key will be generated.
pickle_key: {{ matrix_mautrix_telegram_bridge_encryption_pickle_key | to_json }}
pickle_key: {{ matrix_bridge_mautrix_telegram_bridge_encryption_pickle_key | to_json }}
# Options for deleting megolm sessions from the bridge.
delete_keys:
# Beeper-specific: delete outbound sessions when hungryserv confirms
@@ -523,7 +523,7 @@ encryption:
# Logging config. See https://github.com/tulir/zeroconfig for details.
logging:
min_level: {{ matrix_mautrix_telegram_logging_level | to_json }}
min_level: {{ matrix_bridge_mautrix_telegram_logging_level | to_json }}
writers:
- type: stdout
format: pretty-colored
@@ -4,39 +4,39 @@ SPDX-FileCopyrightText: 2024 - 2026 Slavi Pantaleev
SPDX-License-Identifier: AGPL-3.0-or-later
#}
{% if matrix_mautrix_telegram_container_labels_traefik_enabled %}
{% if matrix_bridge_mautrix_telegram_container_labels_traefik_enabled %}
traefik.enable=true
{% if matrix_mautrix_telegram_container_labels_traefik_docker_network %}
traefik.docker.network={{ matrix_mautrix_telegram_container_labels_traefik_docker_network }}
{% if matrix_bridge_mautrix_telegram_container_labels_traefik_docker_network %}
traefik.docker.network={{ matrix_bridge_mautrix_telegram_container_labels_traefik_docker_network }}
{% endif %}
traefik.http.services.matrix-mautrix-telegram-metrics.loadbalancer.server.port=8001
{% if matrix_mautrix_telegram_container_labels_metrics_enabled %}
{% if matrix_bridge_mautrix_telegram_container_labels_metrics_enabled %}
############################################################
# #
# Metrics #
# #
############################################################
{% if matrix_mautrix_telegram_container_labels_metrics_middleware_basic_auth_enabled %}
traefik.http.middlewares.matrix-mautrix-telegram-metrics-basic-auth.basicauth.users={{ matrix_mautrix_telegram_container_labels_metrics_middleware_basic_auth_users }}
{% if matrix_bridge_mautrix_telegram_container_labels_metrics_middleware_basic_auth_enabled %}
traefik.http.middlewares.matrix-mautrix-telegram-metrics-basic-auth.basicauth.users={{ matrix_bridge_mautrix_telegram_container_labels_metrics_middleware_basic_auth_users }}
traefik.http.routers.matrix-mautrix-telegram-metrics.middlewares=matrix-mautrix-telegram-metrics-basic-auth
{% endif %}
traefik.http.routers.matrix-mautrix-telegram-metrics.rule={{ matrix_mautrix_telegram_container_labels_metrics_traefik_rule }}
traefik.http.routers.matrix-mautrix-telegram-metrics.rule={{ matrix_bridge_mautrix_telegram_container_labels_metrics_traefik_rule }}
{% if matrix_mautrix_telegram_container_labels_metrics_traefik_priority | int > 0 %}
traefik.http.routers.matrix-mautrix-telegram-metrics.priority={{ matrix_mautrix_telegram_container_labels_metrics_traefik_priority }}
{% if matrix_bridge_mautrix_telegram_container_labels_metrics_traefik_priority | int > 0 %}
traefik.http.routers.matrix-mautrix-telegram-metrics.priority={{ matrix_bridge_mautrix_telegram_container_labels_metrics_traefik_priority }}
{% endif %}
traefik.http.routers.matrix-mautrix-telegram-metrics.service=matrix-mautrix-telegram-metrics
traefik.http.routers.matrix-mautrix-telegram-metrics.entrypoints={{ matrix_mautrix_telegram_container_labels_metrics_traefik_entrypoints }}
traefik.http.routers.matrix-mautrix-telegram-metrics.entrypoints={{ matrix_bridge_mautrix_telegram_container_labels_metrics_traefik_entrypoints }}
traefik.http.routers.matrix-mautrix-telegram-metrics.tls={{ matrix_mautrix_telegram_container_labels_metrics_traefik_tls | to_json }}
{% if matrix_mautrix_telegram_container_labels_metrics_traefik_tls %}
traefik.http.routers.matrix-mautrix-telegram-metrics.tls.certResolver={{ matrix_mautrix_telegram_container_labels_metrics_traefik_tls_certResolver }}
traefik.http.routers.matrix-mautrix-telegram-metrics.tls={{ matrix_bridge_mautrix_telegram_container_labels_metrics_traefik_tls | to_json }}
{% if matrix_bridge_mautrix_telegram_container_labels_metrics_traefik_tls %}
traefik.http.routers.matrix-mautrix-telegram-metrics.tls.certResolver={{ matrix_bridge_mautrix_telegram_container_labels_metrics_traefik_tls_certResolver }}
{% endif %}
############################################################
@@ -46,7 +46,7 @@ traefik.http.routers.matrix-mautrix-telegram-metrics.tls.certResolver={{ matrix_
############################################################
{% endif %}
{% if matrix_mautrix_telegram_container_labels_exposure_enabled %}
{% if matrix_bridge_mautrix_telegram_container_labels_exposure_enabled %}
############################################################
# #
# Bridge API exposure #
@@ -55,21 +55,21 @@ traefik.http.routers.matrix-mautrix-telegram-metrics.tls.certResolver={{ matrix_
traefik.http.services.matrix-mautrix-telegram-exposure.loadbalancer.server.port=8080
traefik.http.middlewares.matrix-mautrix-telegram-exposure-strip-prefix.stripprefix.prefixes={{ matrix_mautrix_telegram_exposure_path_prefix }}
traefik.http.middlewares.matrix-mautrix-telegram-exposure-strip-prefix.stripprefix.prefixes={{ matrix_bridge_mautrix_telegram_exposure_path_prefix }}
traefik.http.routers.matrix-mautrix-telegram-exposure.middlewares=matrix-mautrix-telegram-exposure-strip-prefix
traefik.http.routers.matrix-mautrix-telegram-exposure.rule={{ matrix_mautrix_telegram_container_labels_exposure_traefik_rule }}
traefik.http.routers.matrix-mautrix-telegram-exposure.rule={{ matrix_bridge_mautrix_telegram_container_labels_exposure_traefik_rule }}
{% if matrix_mautrix_telegram_container_labels_exposure_traefik_priority | int > 0 %}
traefik.http.routers.matrix-mautrix-telegram-exposure.priority={{ matrix_mautrix_telegram_container_labels_exposure_traefik_priority }}
{% if matrix_bridge_mautrix_telegram_container_labels_exposure_traefik_priority | int > 0 %}
traefik.http.routers.matrix-mautrix-telegram-exposure.priority={{ matrix_bridge_mautrix_telegram_container_labels_exposure_traefik_priority }}
{% endif %}
traefik.http.routers.matrix-mautrix-telegram-exposure.service=matrix-mautrix-telegram-exposure
traefik.http.routers.matrix-mautrix-telegram-exposure.entrypoints={{ matrix_mautrix_telegram_container_labels_exposure_traefik_entrypoints }}
traefik.http.routers.matrix-mautrix-telegram-exposure.entrypoints={{ matrix_bridge_mautrix_telegram_container_labels_exposure_traefik_entrypoints }}
traefik.http.routers.matrix-mautrix-telegram-exposure.tls={{ matrix_mautrix_telegram_container_labels_exposure_traefik_tls | to_json }}
{% if matrix_mautrix_telegram_container_labels_exposure_traefik_tls %}
traefik.http.routers.matrix-mautrix-telegram-exposure.tls.certResolver={{ matrix_mautrix_telegram_container_labels_exposure_traefik_tls_certResolver }}
traefik.http.routers.matrix-mautrix-telegram-exposure.tls={{ matrix_bridge_mautrix_telegram_container_labels_exposure_traefik_tls | to_json }}
{% if matrix_bridge_mautrix_telegram_container_labels_exposure_traefik_tls %}
traefik.http.routers.matrix-mautrix-telegram-exposure.tls.certResolver={{ matrix_bridge_mautrix_telegram_container_labels_exposure_traefik_tls_certResolver }}
{% endif %}
############################################################
@@ -82,4 +82,4 @@ traefik.http.routers.matrix-mautrix-telegram-exposure.tls.certResolver={{ matrix
{% endif %}
{{ matrix_mautrix_telegram_container_labels_additional_labels }}
{{ matrix_bridge_mautrix_telegram_container_labels_additional_labels }}
@@ -1,11 +1,11 @@
#jinja2: lstrip_blocks: True
[Unit]
Description=Matrix Mautrix Telegram bridge
{% for service in matrix_mautrix_telegram_systemd_required_services_list %}
{% for service in matrix_bridge_mautrix_telegram_systemd_required_services_list %}
Requires={{ service }}
After={{ service }}
{% endfor %}
{% for service in matrix_mautrix_telegram_systemd_wanted_services_list %}
{% for service in matrix_bridge_mautrix_telegram_systemd_wanted_services_list %}
Wants={{ service }}
{% endfor %}
DefaultDependencies=no
@@ -22,19 +22,19 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \
--log-driver=none \
--user={{ matrix_user_uid }}:{{ matrix_user_gid }} \
--cap-drop=ALL \
--network={{ matrix_mautrix_telegram_container_network }} \
--mount type=bind,src={{ matrix_mautrix_telegram_config_path }},dst=/config \
--mount type=bind,src={{ matrix_mautrix_telegram_data_path }},dst=/data \
--label-file={{ matrix_mautrix_telegram_base_path }}/labels \
--network={{ matrix_bridge_mautrix_telegram_container_network }} \
--mount type=bind,src={{ matrix_bridge_mautrix_telegram_config_path }},dst=/config \
--mount type=bind,src={{ matrix_bridge_mautrix_telegram_data_path }},dst=/data \
--label-file={{ matrix_bridge_mautrix_telegram_base_path }}/labels \
--workdir=/data \
{% for arg in matrix_mautrix_telegram_container_extra_arguments %}
{% for arg in matrix_bridge_mautrix_telegram_container_extra_arguments %}
{{ arg }} \
{% endfor %}
{{ matrix_mautrix_telegram_container_image }} \
{{ matrix_bridge_mautrix_telegram_container_image }} \
/usr/bin/mautrix-telegram -c /config/config.yaml -r /config/registration.yaml --no-update
{% if matrix_mautrix_telegram_container_network != 'host' %}
{% for network in matrix_mautrix_telegram_container_additional_networks %}
{% if matrix_bridge_mautrix_telegram_container_network != 'host' %}
{% for network in matrix_bridge_mautrix_telegram_container_additional_networks %}
ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network connect {{ network }} matrix-mautrix-telegram
{% endfor %}
{% endif %}