Rename matrix_mautrix_wsproxy_* variables to matrix_bridge_mautrix_wsproxy_*

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

The companion appservice variables defined by this role are folded
under the role prefix as well: matrix_mautrix_androidsms_* becomes
matrix_bridge_mautrix_wsproxy_androidsms_* and matrix_mautrix_imessage_*
becomes matrix_bridge_mautrix_wsproxy_imessage_*.

matrix_mautrix_signal_wsproxy_syncproxy_connection_string becomes
matrix_bridge_mautrix_wsproxy_syncproxy_connection_string, aligning it
with the sibling matrix_bridge_mautrix_wsproxy_syncproxy_* variables.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Slavi Pantaleev
2026-07-16 14:43:00 +03:00
parent c12f5947c9
commit d9bee18ddd
12 changed files with 245 additions and 245 deletions
@@ -25,26 +25,26 @@ When setting, replace `example.com` with your own.
To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml
matrix_mautrix_wsproxy_enabled: true
matrix_bridge_mautrix_wsproxy_enabled: true
matrix_mautrix_androidsms_appservice_token: 'secret token from bridge'
matrix_mautrix_androidsms_homeserver_token: 'secret token from bridge'
matrix_mautrix_imessage_appservice_token: 'secret token from bridge'
matrix_mautrix_imessage_homeserver_token: 'secret token from bridge'
matrix_mautrix_wsproxy_syncproxy_shared_secret: 'secret token from bridge'
matrix_bridge_mautrix_wsproxy_androidsms_appservice_token: 'secret token from bridge'
matrix_bridge_mautrix_wsproxy_androidsms_homeserver_token: 'secret token from bridge'
matrix_bridge_mautrix_wsproxy_imessage_appservice_token: 'secret token from bridge'
matrix_bridge_mautrix_wsproxy_imessage_homeserver_token: 'secret token from bridge'
matrix_bridge_mautrix_wsproxy_syncproxy_shared_secret: 'secret token from bridge'
```
Note that the tokens must match what is compiled into the [mautrix-imessage](https://github.com/mautrix/imessage) bridge running on your Mac or Android device.
### Adjusting the wsproxy URL (optional)
By tweaking the `matrix_mautrix_wsproxy_hostname` variable, you can easily make the service available at a **different hostname** than the default one.
By tweaking the `matrix_bridge_mautrix_wsproxy_hostname` variable, you can easily make the service available at a **different hostname** than the default one.
Example additional configuration for your `vars.yml` file:
```yaml
# Change the default hostname
matrix_mautrix_wsproxy_hostname: ws.example.com
matrix_bridge_mautrix_wsproxy_hostname: ws.example.com
```
After changing the domain, **you may need to adjust your DNS** records to point the wsproxy domain to the Matrix server.
+30 -30
View File
@@ -136,9 +136,9 @@ matrix_homeserver_container_extra_arguments_auto: |
+
(['--mount type=bind,src=' + matrix_mautrix_whatsapp_config_path + '/registration.yaml,dst=/matrix-mautrix-whatsapp-registration.yaml,ro'] if matrix_mautrix_whatsapp_enabled else [])
+
(['--mount type=bind,src=' + matrix_mautrix_wsproxy_config_path + '/androidsms-registration.yaml,dst=/matrix-mautrix-androidsms-registration.yaml,ro'] if matrix_mautrix_wsproxy_enabled else [])
(['--mount type=bind,src=' + matrix_bridge_mautrix_wsproxy_config_path + '/androidsms-registration.yaml,dst=/matrix-mautrix-androidsms-registration.yaml,ro'] if matrix_bridge_mautrix_wsproxy_enabled else [])
+
(['--mount type=bind,src=' + matrix_mautrix_wsproxy_config_path + '/imessage-registration.yaml,dst=/matrix-mautrix-imessage-registration.yaml,ro'] if matrix_mautrix_wsproxy_enabled else [])
(['--mount type=bind,src=' + matrix_bridge_mautrix_wsproxy_config_path + '/imessage-registration.yaml,dst=/matrix-mautrix-imessage-registration.yaml,ro'] if matrix_bridge_mautrix_wsproxy_enabled else [])
+
(['--mount type=bind,src=' + matrix_mx_puppet_groupme_config_path + '/registration.yaml,dst=/matrix-mx-puppet-groupme-registration.yaml,ro'] if matrix_mx_puppet_groupme_enabled else [])
+
@@ -195,9 +195,9 @@ matrix_homeserver_app_service_config_files_auto: |
+
(['/matrix-mautrix-whatsapp-registration.yaml'] if matrix_mautrix_whatsapp_enabled else [])
+
(['/matrix-mautrix-androidsms-registration.yaml'] if matrix_mautrix_wsproxy_enabled else [])
(['/matrix-mautrix-androidsms-registration.yaml'] if matrix_bridge_mautrix_wsproxy_enabled else [])
+
(['/matrix-mautrix-imessage-registration.yaml'] if matrix_mautrix_wsproxy_enabled else [])
(['/matrix-mautrix-imessage-registration.yaml'] if matrix_bridge_mautrix_wsproxy_enabled else [])
+
(['/matrix-mx-puppet-groupme-registration.yaml'] if matrix_mx_puppet_groupme_enabled else [])
+
@@ -506,16 +506,16 @@ devture_systemd_service_manager_services_list_auto: |
([{
'name': 'matrix-mautrix-wsproxy.service',
'priority': 2000,
'restart_necessary': (matrix_mautrix_wsproxy_restart_necessary | bool),
'restart_necessary': (matrix_bridge_mautrix_wsproxy_restart_necessary | bool),
'groups': ['matrix', 'bridges', 'mautrix-wsproxy'],
}] if matrix_mautrix_wsproxy_enabled else [])
}] if matrix_bridge_mautrix_wsproxy_enabled else [])
+
([{
'name': 'matrix-mautrix-wsproxy-syncproxy.service',
'priority': 2000,
'restart_necessary': (matrix_mautrix_wsproxy_syncproxy_restart_necessary | bool),
'restart_necessary': (matrix_bridge_mautrix_wsproxy_syncproxy_restart_necessary | bool),
'groups': ['matrix', 'bridges', 'mautrix-wsproxy-syncproxy'],
}] if matrix_mautrix_wsproxy_enabled else [])
}] if matrix_bridge_mautrix_wsproxy_enabled else [])
+
([{
'name': 'matrix-mx-puppet-groupme.service',
@@ -2298,43 +2298,43 @@ matrix_mautrix_gvoice_database_password: "{{ (matrix_homeserver_generic_secret_k
######################################################################
# We don't enable bridges by default.
matrix_mautrix_wsproxy_enabled: false
matrix_bridge_mautrix_wsproxy_enabled: false
matrix_mautrix_wsproxy_systemd_required_services_list_default: |
matrix_bridge_mautrix_wsproxy_systemd_required_services_list_default: |
{{
matrix_addons_homeserver_systemd_services_list
+
([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_mautrix_wsproxy_syncproxy_database_hostname == postgres_connection_hostname) else [])
([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_bridge_mautrix_wsproxy_syncproxy_database_hostname == postgres_connection_hostname) else [])
}}
matrix_mautrix_wsproxy_homeserver_address: "{{ matrix_addons_homeserver_client_api_url }}"
matrix_bridge_mautrix_wsproxy_homeserver_address: "{{ matrix_addons_homeserver_client_api_url }}"
matrix_mautrix_wsproxy_hostname: "wsproxy.{{ matrix_mautrix_wsproxy_homeserver_domain }}"
matrix_bridge_mautrix_wsproxy_hostname: "wsproxy.{{ matrix_bridge_mautrix_wsproxy_homeserver_domain }}"
matrix_mautrix_wsproxy_syncproxy_homeserver_url: "{{ matrix_addons_homeserver_client_api_url }}"
matrix_bridge_mautrix_wsproxy_syncproxy_homeserver_url: "{{ matrix_addons_homeserver_client_api_url }}"
matrix_mautrix_wsproxy_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_mautrix_wsproxy_container_image_registry_prefix_upstream_default }}"
matrix_bridge_mautrix_wsproxy_container_image_registry_prefix_upstream: "{{ matrix_container_global_registry_prefix_override if matrix_container_global_registry_prefix_override else matrix_bridge_mautrix_wsproxy_container_image_registry_prefix_upstream_default }}"
matrix_mautrix_wsproxy_container_network: "{{ matrix_addons_container_network }}"
matrix_bridge_mautrix_wsproxy_container_network: "{{ matrix_addons_container_network }}"
matrix_mautrix_wsproxy_container_additional_networks: |
matrix_bridge_mautrix_wsproxy_container_additional_networks: |
{{
(
([] if matrix_addons_homeserver_container_network == '' else [matrix_addons_homeserver_container_network])
+
([matrix_playbook_reverse_proxyable_services_additional_network] if matrix_playbook_reverse_proxyable_services_additional_network else [])
+
([postgres_container_network] if (postgres_enabled and matrix_mautrix_wsproxy_syncproxy_database_hostname == postgres_connection_hostname and postgres_container_network != matrix_mautrix_wsproxy_container_network) else [])
([postgres_container_network] if (postgres_enabled and matrix_bridge_mautrix_wsproxy_syncproxy_database_hostname == postgres_connection_hostname and postgres_container_network != matrix_bridge_mautrix_wsproxy_container_network) else [])
) | unique
}}
matrix_mautrix_wsproxy_container_labels_traefik_enabled: "{{ matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] }}"
matrix_mautrix_wsproxy_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}"
matrix_mautrix_wsproxy_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}"
matrix_mautrix_wsproxy_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}"
matrix_bridge_mautrix_wsproxy_container_labels_traefik_enabled: "{{ matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] }}"
matrix_bridge_mautrix_wsproxy_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}"
matrix_bridge_mautrix_wsproxy_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}"
matrix_bridge_mautrix_wsproxy_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}"
matrix_mautrix_wsproxy_syncproxy_database_hostname: "{{ postgres_connection_hostname if postgres_enabled else '' }}"
matrix_mautrix_wsproxy_syncproxy_database_password: "{{ (matrix_homeserver_generic_secret_key + ':wsproxy.db') | hash('sha512') | to_uuid }}"
matrix_bridge_mautrix_wsproxy_syncproxy_database_hostname: "{{ postgres_connection_hostname if postgres_enabled else '' }}"
matrix_bridge_mautrix_wsproxy_syncproxy_database_password: "{{ (matrix_homeserver_generic_secret_key + ':wsproxy.db') | hash('sha512') | to_uuid }}"
######################################################################
#
@@ -4207,10 +4207,10 @@ postgres_managed_databases_auto: |
}] if (matrix_mautrix_meta_instagram_enabled and matrix_mautrix_meta_instagram_database_engine == 'postgres' and matrix_mautrix_meta_instagram_database_hostname == postgres_connection_hostname) else [])
+
([{
'name': matrix_mautrix_wsproxy_syncproxy_database_name,
'username': matrix_mautrix_wsproxy_syncproxy_database_username,
'password': matrix_mautrix_wsproxy_syncproxy_database_password,
}] if (matrix_mautrix_wsproxy_enabled and matrix_mautrix_wsproxy_syncproxy_database_engine == 'postgres' and matrix_mautrix_wsproxy_syncproxy_database_hostname == 'matrix-postgres') else [])
'name': matrix_bridge_mautrix_wsproxy_syncproxy_database_name,
'username': matrix_bridge_mautrix_wsproxy_syncproxy_database_username,
'password': matrix_bridge_mautrix_wsproxy_syncproxy_database_password,
}] 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,
@@ -5186,9 +5186,9 @@ matrix_ketesa_config_asManagedUsers_auto: |
] if matrix_mautrix_whatsapp_enabled else [])
+
([
'^@'+(matrix_mautrix_imessage_appservice_bot_username | default('') | regex_escape)+':'+(matrix_domain | regex_escape)+'$',
'^@'+(matrix_bridge_mautrix_wsproxy_imessage_appservice_bot_username | default('') | regex_escape)+':'+(matrix_domain | regex_escape)+'$',
'^@imessage_[a-zA-Z0-9]+:'+(matrix_domain | regex_escape)+'$',
] if matrix_mautrix_wsproxy_enabled else [])
] if matrix_bridge_mautrix_wsproxy_enabled else [])
+
([
'^@_groupmepuppet_[a-zA-Z0-9]+:'+(matrix_domain | regex_escape)+'$',
@@ -9,175 +9,175 @@
# mautrix-wsproxy is a Matrix <-> websocket bridge
# See: https://github.com/mautrix/wsproxy
matrix_mautrix_wsproxy_enabled: true
matrix_bridge_mautrix_wsproxy_enabled: true
matrix_mautrix_wsproxy_version: latest
matrix_bridge_mautrix_wsproxy_version: latest
# See: https://mau.dev/mautrix/wsproxy/container_registry
matrix_mautrix_wsproxy_container_image: "{{ matrix_mautrix_wsproxy_container_image_registry_prefix }}mautrix/wsproxy:{{ matrix_mautrix_wsproxy_version }}"
matrix_mautrix_wsproxy_container_image_registry_prefix: "{{ matrix_mautrix_wsproxy_container_image_registry_prefix_upstream }}"
matrix_mautrix_wsproxy_container_image_registry_prefix_upstream: "{{ matrix_mautrix_wsproxy_container_image_registry_prefix_upstream_default }}"
matrix_mautrix_wsproxy_container_image_registry_prefix_upstream_default: "dock.mau.dev/"
matrix_bridge_mautrix_wsproxy_container_image: "{{ matrix_bridge_mautrix_wsproxy_container_image_registry_prefix }}mautrix/wsproxy:{{ matrix_bridge_mautrix_wsproxy_version }}"
matrix_bridge_mautrix_wsproxy_container_image_registry_prefix: "{{ matrix_bridge_mautrix_wsproxy_container_image_registry_prefix_upstream }}"
matrix_bridge_mautrix_wsproxy_container_image_registry_prefix_upstream: "{{ matrix_bridge_mautrix_wsproxy_container_image_registry_prefix_upstream_default }}"
matrix_bridge_mautrix_wsproxy_container_image_registry_prefix_upstream_default: "dock.mau.dev/"
matrix_mautrix_wsproxy_base_path: "{{ matrix_base_data_path }}/wsproxy"
matrix_mautrix_wsproxy_config_path: "{{ matrix_mautrix_wsproxy_base_path }}/config"
matrix_bridge_mautrix_wsproxy_base_path: "{{ matrix_base_data_path }}/wsproxy"
matrix_bridge_mautrix_wsproxy_config_path: "{{ matrix_bridge_mautrix_wsproxy_base_path }}/config"
matrix_mautrix_wsproxy_homeserver_address: ""
matrix_mautrix_wsproxy_homeserver_domain: "{{ matrix_domain }}"
matrix_bridge_mautrix_wsproxy_homeserver_address: ""
matrix_bridge_mautrix_wsproxy_homeserver_domain: "{{ matrix_domain }}"
matrix_mautrix_wsproxy_bind_port: false
matrix_mautrix_wsproxy_port: 29331
matrix_bridge_mautrix_wsproxy_bind_port: false
matrix_bridge_mautrix_wsproxy_port: 29331
matrix_mautrix_wsproxy_appservice_address: "http://matrix-mautrix-wsproxy:{{ matrix_mautrix_wsproxy_port }}"
matrix_bridge_mautrix_wsproxy_appservice_address: "http://matrix-mautrix-wsproxy:{{ matrix_bridge_mautrix_wsproxy_port }}"
matrix_mautrix_wsproxy_hostname: ""
matrix_bridge_mautrix_wsproxy_hostname: ""
# The base container network. It will be auto-created by this role if it doesn't exist already.
matrix_mautrix_wsproxy_container_network: matrix-mautrix-wsproxy
matrix_bridge_mautrix_wsproxy_container_network: matrix-mautrix-wsproxy
matrix_mautrix_wsproxy_twitter_container_additional_networks: "{{ matrix_mautrix_wsproxy_twitter_container_additional_networks_auto + matrix_mautrix_wsproxy_twitter_container_additional_networks_custom }}"
matrix_mautrix_wsproxy_twitter_container_additional_networks_auto: []
matrix_mautrix_wsproxy_twitter_container_additional_networks_custom: []
matrix_bridge_mautrix_wsproxy_twitter_container_additional_networks: "{{ matrix_bridge_mautrix_wsproxy_twitter_container_additional_networks_auto + matrix_bridge_mautrix_wsproxy_twitter_container_additional_networks_custom }}"
matrix_bridge_mautrix_wsproxy_twitter_container_additional_networks_auto: []
matrix_bridge_mautrix_wsproxy_twitter_container_additional_networks_custom: []
# matrix_mautrix_wsproxy_container_labels_traefik_enabled controls whether labels to assist a Traefik reverse-proxy will be attached to the container.
# matrix_bridge_mautrix_wsproxy_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_wsproxy_container_labels_additional_labels`.
matrix_mautrix_wsproxy_container_labels_traefik_enabled: true
matrix_mautrix_wsproxy_container_labels_traefik_docker_network: "{{ matrix_mautrix_wsproxy_container_network }}"
matrix_mautrix_wsproxy_container_labels_traefik_hostname: "{{ matrix_mautrix_wsproxy_hostname }}"
# To inject your own other container labels, see `matrix_bridge_mautrix_wsproxy_container_labels_additional_labels`.
matrix_bridge_mautrix_wsproxy_container_labels_traefik_enabled: true
matrix_bridge_mautrix_wsproxy_container_labels_traefik_docker_network: "{{ matrix_bridge_mautrix_wsproxy_container_network }}"
matrix_bridge_mautrix_wsproxy_container_labels_traefik_hostname: "{{ matrix_bridge_mautrix_wsproxy_hostname }}"
# The path prefix must either be `/` or not end with a slash (e.g. `/wsproxy`).
matrix_mautrix_wsproxy_container_labels_traefik_rule: "Host(`{{ matrix_mautrix_wsproxy_container_labels_traefik_hostname }}`)"
matrix_mautrix_wsproxy_container_labels_traefik_priority: 0
matrix_mautrix_wsproxy_container_labels_traefik_entrypoints: web-secure
matrix_mautrix_wsproxy_container_labels_traefik_tls: "{{ matrix_mautrix_wsproxy_container_labels_traefik_entrypoints != 'web' }}"
matrix_mautrix_wsproxy_container_labels_traefik_tls_certResolver: default # noqa var-naming
matrix_bridge_mautrix_wsproxy_container_labels_traefik_rule: "Host(`{{ matrix_bridge_mautrix_wsproxy_container_labels_traefik_hostname }}`)"
matrix_bridge_mautrix_wsproxy_container_labels_traefik_priority: 0
matrix_bridge_mautrix_wsproxy_container_labels_traefik_entrypoints: web-secure
matrix_bridge_mautrix_wsproxy_container_labels_traefik_tls: "{{ matrix_bridge_mautrix_wsproxy_container_labels_traefik_entrypoints != 'web' }}"
matrix_bridge_mautrix_wsproxy_container_labels_traefik_tls_certResolver: default # noqa var-naming
# Controls which additional headers to attach to all HTTP responses.
# To add your own headers, use `matrix_mautrix_wsproxy_container_labels_traefik_additional_response_headers_custom`
matrix_mautrix_wsproxy_container_labels_traefik_additional_response_headers_auto: {}
matrix_mautrix_wsproxy_container_labels_traefik_additional_response_headers_custom: {}
matrix_mautrix_wsproxy_container_labels_traefik_additional_response_headers: "{{ matrix_mautrix_wsproxy_container_labels_traefik_additional_response_headers_auto | combine(matrix_mautrix_wsproxy_container_labels_traefik_additional_response_headers_custom) }}"
# To add your own headers, use `matrix_bridge_mautrix_wsproxy_container_labels_traefik_additional_response_headers_custom`
matrix_bridge_mautrix_wsproxy_container_labels_traefik_additional_response_headers_auto: {}
matrix_bridge_mautrix_wsproxy_container_labels_traefik_additional_response_headers_custom: {}
matrix_bridge_mautrix_wsproxy_container_labels_traefik_additional_response_headers: "{{ matrix_bridge_mautrix_wsproxy_container_labels_traefik_additional_response_headers_auto | combine(matrix_bridge_mautrix_wsproxy_container_labels_traefik_additional_response_headers_custom) }}"
# matrix_mautrix_wsproxy_container_labels_additional_labels contains a multiline string with additional labels to add to the container label file.
# matrix_bridge_mautrix_wsproxy_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_wsproxy_container_labels_additional_labels: |
# matrix_bridge_mautrix_wsproxy_container_labels_additional_labels: |
# my.label=1
# another.label="here"
matrix_mautrix_wsproxy_container_labels_additional_labels: ''
matrix_bridge_mautrix_wsproxy_container_labels_additional_labels: ''
# A list of extra arguments to pass to the container
matrix_mautrix_wsproxy_container_extra_arguments: []
matrix_bridge_mautrix_wsproxy_container_extra_arguments: []
# List of systemd services that matrix-mautrix-wsproxy.service depends on.
matrix_mautrix_wsproxy_systemd_required_services_list: "{{ matrix_mautrix_wsproxy_systemd_required_services_list_default + matrix_mautrix_wsproxy_systemd_required_services_list_auto + matrix_mautrix_wsproxy_systemd_required_services_list_custom }}"
matrix_mautrix_wsproxy_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_mautrix_wsproxy_systemd_required_services_list_auto: []
matrix_mautrix_wsproxy_systemd_required_services_list_custom: []
matrix_bridge_mautrix_wsproxy_systemd_required_services_list: "{{ matrix_bridge_mautrix_wsproxy_systemd_required_services_list_default + matrix_bridge_mautrix_wsproxy_systemd_required_services_list_auto + matrix_bridge_mautrix_wsproxy_systemd_required_services_list_custom }}"
matrix_bridge_mautrix_wsproxy_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_bridge_mautrix_wsproxy_systemd_required_services_list_auto: []
matrix_bridge_mautrix_wsproxy_systemd_required_services_list_custom: []
# List of systemd services that matrix-mautrix-wsproxy.service wants
matrix_mautrix_wsproxy_systemd_wanted_services_list: []
matrix_bridge_mautrix_wsproxy_systemd_wanted_services_list: []
matrix_mautrix_androidsms_appservice_token: ''
matrix_mautrix_androidsms_homeserver_token: ''
matrix_bridge_mautrix_wsproxy_androidsms_appservice_token: ''
matrix_bridge_mautrix_wsproxy_androidsms_homeserver_token: ''
matrix_mautrix_imessage_appservice_token: ''
matrix_mautrix_imessage_homeserver_token: ''
matrix_bridge_mautrix_wsproxy_imessage_appservice_token: ''
matrix_bridge_mautrix_wsproxy_imessage_homeserver_token: ''
matrix_mautrix_androidsms_appservice_bot_username: androidsmsbot
matrix_mautrix_imessage_appservice_bot_username: imessagebot
matrix_bridge_mautrix_wsproxy_androidsms_appservice_bot_username: androidsmsbot
matrix_bridge_mautrix_wsproxy_imessage_appservice_bot_username: imessagebot
# Default mautrix-wsproxy 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_wsproxy_configuration_extension_yaml`)
# For a more advanced customization, you can extend the default (see `matrix_bridge_mautrix_wsproxy_configuration_extension_yaml`)
# or completely replace this variable with your own template.
matrix_mautrix_wsproxy_configuration_yaml: "{{ lookup('template', 'templates/config.yaml.j2') }}"
matrix_bridge_mautrix_wsproxy_configuration_yaml: "{{ lookup('template', 'templates/config.yaml.j2') }}"
matrix_mautrix_wsproxy_configuration_extension_yaml: |
matrix_bridge_mautrix_wsproxy_configuration_extension_yaml: |
# Your custom YAML configuration goes here.
# This configuration extends the default starting configuration (`matrix_mautrix_wsproxy_configuration_yaml`).
# This configuration extends the default starting configuration (`matrix_bridge_mautrix_wsproxy_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_wsproxy_configuration_yaml`.
# completely redefining `matrix_bridge_mautrix_wsproxy_configuration_yaml`.
matrix_mautrix_wsproxy_configuration_extension: "{{ matrix_mautrix_wsproxy_configuration_extension_yaml | from_yaml if matrix_mautrix_wsproxy_configuration_extension_yaml | from_yaml is mapping else {} }}"
matrix_bridge_mautrix_wsproxy_configuration_extension: "{{ matrix_bridge_mautrix_wsproxy_configuration_extension_yaml | from_yaml if matrix_bridge_mautrix_wsproxy_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_wsproxy_configuration_yaml`.
matrix_mautrix_wsproxy_configuration: "{{ matrix_mautrix_wsproxy_configuration_yaml | from_yaml | combine(matrix_mautrix_wsproxy_configuration_extension, recursive=True) }}"
# You most likely don't need to touch this variable. Instead, see `matrix_bridge_mautrix_wsproxy_configuration_yaml`.
matrix_bridge_mautrix_wsproxy_configuration: "{{ matrix_bridge_mautrix_wsproxy_configuration_yaml | from_yaml | combine(matrix_bridge_mautrix_wsproxy_configuration_extension, recursive=True) }}"
matrix_mautrix_androidsms_registration_yaml: |
matrix_bridge_mautrix_wsproxy_androidsms_registration_yaml: |
id: androidsms
url: {{ matrix_mautrix_wsproxy_appservice_address }}
as_token: "{{ matrix_mautrix_androidsms_appservice_token }}"
hs_token: "{{ matrix_mautrix_androidsms_homeserver_token }}"
sender_localpart: _bot_{{ matrix_mautrix_androidsms_appservice_bot_username }}
url: {{ matrix_bridge_mautrix_wsproxy_appservice_address }}
as_token: "{{ matrix_bridge_mautrix_wsproxy_androidsms_appservice_token }}"
hs_token: "{{ matrix_bridge_mautrix_wsproxy_androidsms_homeserver_token }}"
sender_localpart: _bot_{{ matrix_bridge_mautrix_wsproxy_androidsms_appservice_bot_username }}
rate_limited: false
namespaces:
users:
- regex: '@androidsms_.+:{{ matrix_mautrix_wsproxy_homeserver_domain | regex_escape }}$'
- regex: '@androidsms_.+:{{ matrix_bridge_mautrix_wsproxy_homeserver_domain | regex_escape }}$'
exclusive: true
- exclusive: true
regex: '^@{{ matrix_mautrix_androidsms_appservice_bot_username | regex_escape }}:{{ matrix_mautrix_wsproxy_homeserver_domain | regex_escape }}$'
regex: '^@{{ matrix_bridge_mautrix_wsproxy_androidsms_appservice_bot_username | regex_escape }}:{{ matrix_bridge_mautrix_wsproxy_homeserver_domain | regex_escape }}$'
matrix_mautrix_androidsms_registration: "{{ matrix_mautrix_androidsms_registration_yaml | from_yaml }}"
matrix_bridge_mautrix_wsproxy_androidsms_registration: "{{ matrix_bridge_mautrix_wsproxy_androidsms_registration_yaml | from_yaml }}"
matrix_mautrix_imessage_registration_yaml: |
matrix_bridge_mautrix_wsproxy_imessage_registration_yaml: |
id: imessage
url: {{ matrix_mautrix_wsproxy_appservice_address }}
as_token: "{{ matrix_mautrix_imessage_appservice_token }}"
hs_token: "{{ matrix_mautrix_imessage_homeserver_token }}"
sender_localpart: _bot_{{ matrix_mautrix_imessage_appservice_bot_username }}
url: {{ matrix_bridge_mautrix_wsproxy_appservice_address }}
as_token: "{{ matrix_bridge_mautrix_wsproxy_imessage_appservice_token }}"
hs_token: "{{ matrix_bridge_mautrix_wsproxy_imessage_homeserver_token }}"
sender_localpart: _bot_{{ matrix_bridge_mautrix_wsproxy_imessage_appservice_bot_username }}
rate_limited: false
namespaces:
users:
- regex: '@imessage_.+:{{ matrix_mautrix_wsproxy_homeserver_domain | regex_escape }}$'
- regex: '@imessage_.+:{{ matrix_bridge_mautrix_wsproxy_homeserver_domain | regex_escape }}$'
exclusive: true
- exclusive: true
regex: '^@{{ matrix_mautrix_imessage_appservice_bot_username | regex_escape }}:{{ matrix_mautrix_wsproxy_homeserver_domain | regex_escape }}$'
regex: '^@{{ matrix_bridge_mautrix_wsproxy_imessage_appservice_bot_username | regex_escape }}:{{ matrix_bridge_mautrix_wsproxy_homeserver_domain | regex_escape }}$'
matrix_mautrix_imessage_registration: "{{ matrix_mautrix_imessage_registration_yaml | from_yaml }}"
matrix_bridge_mautrix_wsproxy_imessage_registration: "{{ matrix_bridge_mautrix_wsproxy_imessage_registration_yaml | from_yaml }}"
# Syncproxy-related configuration fields
# renovate: datasource=docker depName=dock.mau.dev/mautrix/syncproxy
matrix_mautrix_wsproxy_syncproxy_version: latest
matrix_bridge_mautrix_wsproxy_syncproxy_version: latest
# See: https://mau.dev/mautrix/wsproxy/container_registry
matrix_mautrix_wsproxy_syncproxy_container_image: "dock.mau.dev/mautrix/syncproxy:{{ matrix_mautrix_wsproxy_syncproxy_version }}"
matrix_mautrix_wsproxy_syncproxy_container_extra_arguments: []
matrix_bridge_mautrix_wsproxy_syncproxy_container_image: "dock.mau.dev/mautrix/syncproxy:{{ matrix_bridge_mautrix_wsproxy_syncproxy_version }}"
matrix_bridge_mautrix_wsproxy_syncproxy_container_extra_arguments: []
matrix_mautrix_wsproxy_syncproxy_systemd_required_services_list: |-
matrix_bridge_mautrix_wsproxy_syncproxy_systemd_required_services_list: |-
{{
([devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [])
+
['matrix-mautrix-wsproxy.service']
}}
matrix_mautrix_wsproxy_syncproxy_systemd_wanted_services_list: []
matrix_bridge_mautrix_wsproxy_syncproxy_systemd_wanted_services_list: []
matrix_mautrix_wsproxy_syncproxy_homeserver_url: ''
matrix_bridge_mautrix_wsproxy_syncproxy_homeserver_url: ''
matrix_mautrix_wsproxy_syncproxy_shared_secret: ''
matrix_mautrix_wsproxy_syncproxy_port: 29332
matrix_mautrix_wsproxy_syncproxy_appservice_address: "http://matrix-mautrix-wsproxy-syncproxy:{{ matrix_mautrix_wsproxy_syncproxy_port }}"
matrix_bridge_mautrix_wsproxy_syncproxy_shared_secret: ''
matrix_bridge_mautrix_wsproxy_syncproxy_port: 29332
matrix_bridge_mautrix_wsproxy_syncproxy_appservice_address: "http://matrix-mautrix-wsproxy-syncproxy:{{ matrix_bridge_mautrix_wsproxy_syncproxy_port }}"
# Database-related configuration fields
#
# This bridge supports Postgres and SQLite.
#
matrix_mautrix_wsproxy_syncproxy_database_engine: 'postgres'
matrix_bridge_mautrix_wsproxy_syncproxy_database_engine: 'postgres'
matrix_mautrix_wsproxy_syncproxy_database_username: 'matrix_mautrix_wsproxy_syncproxy'
matrix_mautrix_wsproxy_syncproxy_database_password: ''
matrix_mautrix_wsproxy_syncproxy_database_hostname: ''
matrix_mautrix_wsproxy_syncproxy_database_port: 5432
matrix_mautrix_wsproxy_syncproxy_database_name: 'matrix_mautrix_wsproxy_syncproxy'
matrix_bridge_mautrix_wsproxy_syncproxy_database_username: 'matrix_bridge_mautrix_wsproxy_syncproxy'
matrix_bridge_mautrix_wsproxy_syncproxy_database_password: ''
matrix_bridge_mautrix_wsproxy_syncproxy_database_hostname: ''
matrix_bridge_mautrix_wsproxy_syncproxy_database_port: 5432
matrix_bridge_mautrix_wsproxy_syncproxy_database_name: 'matrix_bridge_mautrix_wsproxy_syncproxy'
matrix_mautrix_signal_wsproxy_syncproxy_connection_string: 'postgres://{{ matrix_mautrix_wsproxy_syncproxy_database_username }}:{{ matrix_mautrix_wsproxy_syncproxy_database_password }}@{{ matrix_mautrix_wsproxy_syncproxy_database_hostname }}:{{ matrix_mautrix_wsproxy_syncproxy_database_port }}/{{ matrix_mautrix_wsproxy_syncproxy_database_name }}'
matrix_bridge_mautrix_wsproxy_syncproxy_connection_string: 'postgres://{{ matrix_bridge_mautrix_wsproxy_syncproxy_database_username }}:{{ matrix_bridge_mautrix_wsproxy_syncproxy_database_password }}@{{ matrix_bridge_mautrix_wsproxy_syncproxy_database_hostname }}:{{ matrix_bridge_mautrix_wsproxy_syncproxy_database_port }}/{{ matrix_bridge_mautrix_wsproxy_syncproxy_database_name }}'
# matrix_mautrix_wsproxy_restart_necessary controls whether the service
# matrix_bridge_mautrix_wsproxy_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).
#
@@ -185,9 +185,9 @@ matrix_mautrix_signal_wsproxy_syncproxy_connection_string: 'postgres://{{ matrix
# 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_wsproxy_restart_necessary: false
matrix_bridge_mautrix_wsproxy_restart_necessary: false
# matrix_mautrix_wsproxy_syncproxy_restart_necessary controls whether the service
# matrix_bridge_mautrix_wsproxy_syncproxy_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).
#
@@ -195,4 +195,4 @@ matrix_mautrix_wsproxy_restart_necessary: false
# 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_wsproxy_syncproxy_restart_necessary: false
matrix_bridge_mautrix_wsproxy_syncproxy_restart_necessary: false
@@ -11,15 +11,15 @@
- install-all
- install-mautrix-wsproxy
block:
- when: matrix_mautrix_wsproxy_enabled | bool
- when: matrix_bridge_mautrix_wsproxy_enabled | bool
ansible.builtin.include_tasks: "{{ role_path }}/tasks/validate_config.yml"
- when: matrix_mautrix_wsproxy_enabled | bool
- when: matrix_bridge_mautrix_wsproxy_enabled | bool
ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_install.yml"
- tags:
- setup-all
- setup-mautrix-wsproxy
block:
- when: not matrix_mautrix_wsproxy_enabled | bool
- when: not matrix_bridge_mautrix_wsproxy_enabled | bool
ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
@@ -16,10 +16,10 @@
when: "matrix_synapse_role_executed|default(False)"
- ansible.builtin.set_fact:
matrix_mautrix_wsproxy_migration_requires_restart: false
matrix_bridge_mautrix_wsproxy_migration_requires_restart: false
- ansible.builtin.set_fact:
matrix_mautrix_wsproxy_syncproxy_migration_requires_restart: false
matrix_bridge_mautrix_wsproxy_syncproxy_migration_requires_restart: false
- name: Ensure Mautrix wsproxy paths exist
ansible.builtin.file:
@@ -29,39 +29,39 @@
owner: "{{ matrix_user_name }}"
group: "{{ matrix_group_name }}"
with_items:
- path: "{{ matrix_mautrix_wsproxy_base_path }}"
- path: "{{ matrix_bridge_mautrix_wsproxy_base_path }}"
when: true
when: item.when | bool
- name: Ensure Mautrix wsproxy support files installed
ansible.builtin.template:
src: "{{ role_path }}/templates/{{ item }}.j2"
dest: "{{ matrix_mautrix_wsproxy_base_path }}/{{ item }}"
dest: "{{ matrix_bridge_mautrix_wsproxy_base_path }}/{{ item }}"
mode: '0640'
owner: "{{ matrix_user_name }}"
group: "{{ matrix_group_name }}"
with_items:
- syncproxy-env
- wsproxy-labels
register: matrix_mautrix_wsproxy_support_files_result
register: matrix_bridge_mautrix_wsproxy_support_files_result
- name: Ensure Mautrix wsproxy image is pulled
community.docker.docker_image_pull:
name: "{{ matrix_mautrix_wsproxy_container_image }}"
name: "{{ matrix_bridge_mautrix_wsproxy_container_image }}"
pull: always
register: matrix_mautrix_wsproxy_container_image_pull_result
register: matrix_bridge_mautrix_wsproxy_container_image_pull_result
retries: "{{ devture_playbook_help_container_retries_count }}"
delay: "{{ devture_playbook_help_container_retries_delay }}"
until: matrix_mautrix_wsproxy_container_image_pull_result is not failed
until: matrix_bridge_mautrix_wsproxy_container_image_pull_result is not failed
- name: Ensure Mautrix syncproxy image is pulled
community.docker.docker_image_pull:
name: "{{ matrix_mautrix_wsproxy_syncproxy_container_image }}"
name: "{{ matrix_bridge_mautrix_wsproxy_syncproxy_container_image }}"
pull: always
register: matrix_mautrix_wsproxy_syncproxy_container_image_pull_result
register: matrix_bridge_mautrix_wsproxy_syncproxy_container_image_pull_result
retries: "{{ devture_playbook_help_container_retries_count }}"
delay: "{{ devture_playbook_help_container_retries_delay }}"
until: matrix_mautrix_wsproxy_syncproxy_container_image_pull_result is not failed
until: matrix_bridge_mautrix_wsproxy_syncproxy_container_image_pull_result is not failed
- name: Ensure Mautrix wsproxy paths exists
ansible.builtin.file:
@@ -71,46 +71,46 @@
owner: "{{ matrix_user_name }}"
group: "{{ matrix_group_name }}"
with_items:
- "{{ matrix_mautrix_wsproxy_base_path }}"
- "{{ matrix_mautrix_wsproxy_config_path }}"
- "{{ matrix_bridge_mautrix_wsproxy_base_path }}"
- "{{ matrix_bridge_mautrix_wsproxy_config_path }}"
- name: Check if an old Matrix state file exists
ansible.builtin.stat:
path: "{{ matrix_mautrix_wsproxy_base_path }}/mx-state.json"
register: matrix_mautrix_wsproxy_stat_mx_state
path: "{{ matrix_bridge_mautrix_wsproxy_base_path }}/mx-state.json"
register: matrix_bridge_mautrix_wsproxy_stat_mx_state
- name: Ensure mautrix-wsproxy config.yaml installed
ansible.builtin.copy:
content: "{{ matrix_mautrix_wsproxy_configuration | to_nice_yaml }}"
dest: "{{ matrix_mautrix_wsproxy_config_path }}/config.yaml"
content: "{{ matrix_bridge_mautrix_wsproxy_configuration | to_nice_yaml }}"
dest: "{{ matrix_bridge_mautrix_wsproxy_config_path }}/config.yaml"
mode: '0644'
owner: "{{ matrix_user_name }}"
group: "{{ matrix_group_name }}"
register: matrix_mautrix_wsproxy_config_result
register: matrix_bridge_mautrix_wsproxy_config_result
- name: Ensure mautrix-androidsms registration.yaml installed
ansible.builtin.copy:
content: "{{ matrix_mautrix_androidsms_registration | to_nice_yaml }}"
dest: "{{ matrix_mautrix_wsproxy_config_path }}/androidsms-registration.yaml"
content: "{{ matrix_bridge_mautrix_wsproxy_androidsms_registration | to_nice_yaml }}"
dest: "{{ matrix_bridge_mautrix_wsproxy_config_path }}/androidsms-registration.yaml"
mode: '0644'
owner: "{{ matrix_user_name }}"
group: "{{ matrix_group_name }}"
register: matrix_mautrix_wsproxy_registration_androidsms_result
register: matrix_bridge_mautrix_wsproxy_registration_androidsms_result
- name: Ensure mautrix-imessage registration.yaml installed
ansible.builtin.copy:
content: "{{ matrix_mautrix_imessage_registration | to_nice_yaml }}"
dest: "{{ matrix_mautrix_wsproxy_config_path }}/imessage-registration.yaml"
content: "{{ matrix_bridge_mautrix_wsproxy_imessage_registration | to_nice_yaml }}"
dest: "{{ matrix_bridge_mautrix_wsproxy_config_path }}/imessage-registration.yaml"
mode: '0644'
owner: "{{ matrix_user_name }}"
group: "{{ matrix_group_name }}"
register: matrix_mautrix_wsproxy_registration_imessage_result
register: matrix_bridge_mautrix_wsproxy_registration_imessage_result
- name: Ensure mautrix-wsproxy container network is created
when: matrix_mautrix_wsproxy_container_network != 'host'
when: matrix_bridge_mautrix_wsproxy_container_network != 'host'
community.general.docker_network:
enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}"
name: "{{ matrix_mautrix_wsproxy_container_network }}"
name: "{{ matrix_bridge_mautrix_wsproxy_container_network }}"
driver: bridge
driver_options: "{{ devture_systemd_docker_base_container_networks_driver_options }}"
@@ -119,55 +119,55 @@
src: "{{ role_path }}/templates/systemd/matrix-mautrix-wsproxy.service.j2"
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-mautrix-wsproxy.service"
mode: '0644'
register: matrix_mautrix_wsproxy_systemd_service_result
register: matrix_bridge_mautrix_wsproxy_systemd_service_result
- name: Determine whether Mautrix wsproxy needs a restart
ansible.builtin.set_fact:
matrix_mautrix_wsproxy_restart_necessary: >-
matrix_bridge_mautrix_wsproxy_restart_necessary: >-
{{
matrix_mautrix_wsproxy_migration_requires_restart | default(false)
or matrix_mautrix_wsproxy_support_files_result.changed | default(false)
or matrix_mautrix_wsproxy_config_result.changed | default(false)
or matrix_mautrix_wsproxy_registration_androidsms_result.changed | default(false)
or matrix_mautrix_wsproxy_registration_imessage_result.changed | default(false)
or matrix_mautrix_wsproxy_systemd_service_result.changed | default(false)
or matrix_mautrix_wsproxy_container_image_pull_result.changed | default(false)
matrix_bridge_mautrix_wsproxy_migration_requires_restart | default(false)
or matrix_bridge_mautrix_wsproxy_support_files_result.changed | default(false)
or matrix_bridge_mautrix_wsproxy_config_result.changed | default(false)
or matrix_bridge_mautrix_wsproxy_registration_androidsms_result.changed | default(false)
or matrix_bridge_mautrix_wsproxy_registration_imessage_result.changed | default(false)
or matrix_bridge_mautrix_wsproxy_systemd_service_result.changed | default(false)
or matrix_bridge_mautrix_wsproxy_container_image_pull_result.changed | default(false)
}}
- name: Ensure systemd reloaded after matrix-mautrix-wsproxy.service installation
ansible.builtin.service:
daemon_reload: true
when: "matrix_mautrix_wsproxy_systemd_service_result.changed"
when: "matrix_bridge_mautrix_wsproxy_systemd_service_result.changed"
- name: Ensure matrix-mautrix-wsproxy.service restarted, if necessary
ansible.builtin.service:
name: "matrix-mautrix-wsproxy.service"
state: restarted
when: "matrix_mautrix_wsproxy_migration_requires_restart|bool"
when: "matrix_bridge_mautrix_wsproxy_migration_requires_restart|bool"
- name: Ensure matrix-mautrix-wsproxy-syncproxy.service installed
ansible.builtin.template:
src: "{{ role_path }}/templates/systemd/matrix-mautrix-wsproxy-syncproxy.service.j2"
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-mautrix-wsproxy-syncproxy.service"
mode: '0644'
register: matrix_mautrix_wsproxy_syncproxy_systemd_service_result
register: matrix_bridge_mautrix_wsproxy_syncproxy_systemd_service_result
- name: Determine whether Mautrix wsproxy syncproxy needs a restart
ansible.builtin.set_fact:
matrix_mautrix_wsproxy_syncproxy_restart_necessary: >-
matrix_bridge_mautrix_wsproxy_syncproxy_restart_necessary: >-
{{
matrix_mautrix_wsproxy_syncproxy_migration_requires_restart | default(false)
or matrix_mautrix_wsproxy_syncproxy_systemd_service_result.changed | default(false)
or matrix_mautrix_wsproxy_syncproxy_container_image_pull_result.changed | default(false)
matrix_bridge_mautrix_wsproxy_syncproxy_migration_requires_restart | default(false)
or matrix_bridge_mautrix_wsproxy_syncproxy_systemd_service_result.changed | default(false)
or matrix_bridge_mautrix_wsproxy_syncproxy_container_image_pull_result.changed | default(false)
}}
- name: Ensure systemd reloaded after matrix-mautrix-wsproxy-syncproxy.service installation
ansible.builtin.service:
daemon_reload: true
when: "matrix_mautrix_wsproxy_syncproxy_systemd_service_result.changed"
when: "matrix_bridge_mautrix_wsproxy_syncproxy_systemd_service_result.changed"
- name: Ensure matrix-mautrix-wsproxy-syncproxy.service restarted, if necessary
ansible.builtin.service:
name: "matrix-mautrix-wsproxy-syncproxy.service"
state: restarted
when: "matrix_mautrix_wsproxy_syncproxy_migration_requires_restart|bool"
when: "matrix_bridge_mautrix_wsproxy_syncproxy_migration_requires_restart|bool"
@@ -7,45 +7,45 @@
- name: Check existence of matrix-mautrix-wsproxy service
ansible.builtin.stat:
path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-mautrix-wsproxy.service"
register: matrix_mautrix_wsproxy_service_stat
register: matrix_bridge_mautrix_wsproxy_service_stat
- name: Ensure matrix-mautrix-wsproxy is stopped
ansible.builtin.service:
name: matrix-mautrix-wsproxy
state: stopped
daemon_reload: true
when: "matrix_mautrix_wsproxy_service_stat.stat.exists"
when: "matrix_bridge_mautrix_wsproxy_service_stat.stat.exists"
- name: Ensure matrix-mautrix-wsproxy.service doesn't exist
ansible.builtin.file:
path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-mautrix-wsproxy.service"
state: absent
when: "matrix_mautrix_wsproxy_service_stat.stat.exists"
when: "matrix_bridge_mautrix_wsproxy_service_stat.stat.exists"
- name: Ensure systemd reloaded after matrix-mautrix-wsproxy.service removal
ansible.builtin.service:
daemon_reload: true
when: "matrix_mautrix_wsproxy_service_stat.stat.exists"
when: "matrix_bridge_mautrix_wsproxy_service_stat.stat.exists"
- name: Check existence of matrix-mautrix-wsproxy-syncproxy service
ansible.builtin.stat:
path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-mautrix-wsproxy-syncproxy.service"
register: matrix_mautrix_wsproxy_syncproxy_service_stat
register: matrix_bridge_mautrix_wsproxy_syncproxy_service_stat
- name: Ensure matrix-mautrix-wsproxy-syncproxy is stopped
ansible.builtin.service:
name: matrix-mautrix-wsproxy-syncproxy
state: stopped
daemon_reload: true
when: "matrix_mautrix_wsproxy_syncproxy_service_stat.stat.exists"
when: "matrix_bridge_mautrix_wsproxy_syncproxy_service_stat.stat.exists"
- name: Ensure matrix-mautrix-wsproxy-syncproxy.service doesn't exist
ansible.builtin.file:
path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-mautrix-wsproxy-syncproxy.service"
state: absent
when: "matrix_mautrix_wsproxy_syncproxy_service_stat.stat.exists"
when: "matrix_bridge_mautrix_wsproxy_syncproxy_service_stat.stat.exists"
- name: Ensure systemd reloaded after matrix-mautrix-wsproxy-syncproxy.service removal
ansible.builtin.service:
daemon_reload: true
when: "matrix_mautrix_wsproxy_syncproxy_service_stat.stat.exists"
when: "matrix_bridge_mautrix_wsproxy_syncproxy_service_stat.stat.exists"
@@ -12,15 +12,15 @@
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_wsproxy_docker_image', 'new': 'matrix_mautrix_wsproxy_container_image'}
- {'old': 'matrix_mautrix_wsproxy_docker_image_force_pull', 'new': 'matrix_mautrix_wsproxy_container_image_force_pull'}
- {'old': 'matrix_mautrix_wsproxy_docker_image_registry_prefix', 'new': 'matrix_mautrix_wsproxy_container_image_registry_prefix'}
- {'old': 'matrix_mautrix_wsproxy_docker_image_registry_prefix_upstream', 'new': 'matrix_mautrix_wsproxy_container_image_registry_prefix_upstream'}
- {'old': 'matrix_mautrix_wsproxy_docker_image_registry_prefix_upstream_default', 'new': 'matrix_mautrix_wsproxy_container_image_registry_prefix_upstream_default'}
- {'old': 'matrix_mautrix_wsproxy_syncproxy_docker_image', 'new': 'matrix_mautrix_wsproxy_syncproxy_container_image'}
- {'old': 'matrix_mautrix_wsproxy_syncproxy_docker_image_force_pull', 'new': 'matrix_mautrix_wsproxy_syncproxy_container_image_force_pull'}
- {'old': 'matrix_mautrix_wsproxy_container_image_force_pull', 'new': '<removed> (the new community.docker.docker_image_pull module handles this natively)'}
- {'old': 'matrix_mautrix_wsproxy_syncproxy_container_image_force_pull', 'new': '<removed> (the new community.docker.docker_image_pull module handles this natively)'}
- {'old': 'matrix_bridge_mautrix_wsproxy_docker_image', 'new': 'matrix_bridge_mautrix_wsproxy_container_image'}
- {'old': 'matrix_bridge_mautrix_wsproxy_docker_image_force_pull', 'new': 'matrix_bridge_mautrix_wsproxy_container_image_force_pull'}
- {'old': 'matrix_bridge_mautrix_wsproxy_docker_image_registry_prefix', 'new': 'matrix_bridge_mautrix_wsproxy_container_image_registry_prefix'}
- {'old': 'matrix_bridge_mautrix_wsproxy_docker_image_registry_prefix_upstream', 'new': 'matrix_bridge_mautrix_wsproxy_container_image_registry_prefix_upstream'}
- {'old': 'matrix_bridge_mautrix_wsproxy_docker_image_registry_prefix_upstream_default', 'new': 'matrix_bridge_mautrix_wsproxy_container_image_registry_prefix_upstream_default'}
- {'old': 'matrix_bridge_mautrix_wsproxy_syncproxy_docker_image', 'new': 'matrix_bridge_mautrix_wsproxy_syncproxy_container_image'}
- {'old': 'matrix_bridge_mautrix_wsproxy_syncproxy_docker_image_force_pull', 'new': 'matrix_bridge_mautrix_wsproxy_syncproxy_container_image_force_pull'}
- {'old': 'matrix_bridge_mautrix_wsproxy_container_image_force_pull', 'new': '<removed> (the new community.docker.docker_image_pull module handles this natively)'}
- {'old': 'matrix_bridge_mautrix_wsproxy_syncproxy_container_image_force_pull', 'new': '<removed> (the new community.docker.docker_image_pull module handles this natively)'}
- name: Fail if required settings not defined
@@ -29,12 +29,12 @@
You need to define a required configuration setting (`{{ item }}`).
when: "lookup('vars', item, default='') == ''"
with_items:
- "matrix_mautrix_androidsms_appservice_token"
- "matrix_mautrix_androidsms_homeserver_token"
- "matrix_mautrix_imessage_appservice_token"
- "matrix_mautrix_imessage_homeserver_token"
- "matrix_mautrix_wsproxy_homeserver_address"
- "matrix_mautrix_wsproxy_syncproxy_shared_secret"
- "matrix_mautrix_wsproxy_syncproxy_homeserver_url"
- "matrix_mautrix_wsproxy_syncproxy_database_hostname"
- "matrix_mautrix_wsproxy_syncproxy_database_password"
- "matrix_bridge_mautrix_wsproxy_androidsms_appservice_token"
- "matrix_bridge_mautrix_wsproxy_androidsms_homeserver_token"
- "matrix_bridge_mautrix_wsproxy_imessage_appservice_token"
- "matrix_bridge_mautrix_wsproxy_imessage_homeserver_token"
- "matrix_bridge_mautrix_wsproxy_homeserver_address"
- "matrix_bridge_mautrix_wsproxy_syncproxy_shared_secret"
- "matrix_bridge_mautrix_wsproxy_syncproxy_homeserver_url"
- "matrix_bridge_mautrix_wsproxy_syncproxy_database_hostname"
- "matrix_bridge_mautrix_wsproxy_syncproxy_database_password"
@@ -7,14 +7,14 @@ SPDX-License-Identifier: AGPL-3.0-or-later
listen_address: 0.0.0.0:29331
appservices:
- id: androidsms
as: {{ matrix_mautrix_androidsms_appservice_token | to_json }}
hs: {{ matrix_mautrix_androidsms_homeserver_token | to_json }}
as: {{ matrix_bridge_mautrix_wsproxy_androidsms_appservice_token | to_json }}
hs: {{ matrix_bridge_mautrix_wsproxy_androidsms_homeserver_token | to_json }}
- id: imessage
as: {{ matrix_mautrix_imessage_appservice_token | to_json }}
hs: {{ matrix_mautrix_imessage_homeserver_token | to_json }}
as: {{ matrix_bridge_mautrix_wsproxy_imessage_appservice_token | to_json }}
hs: {{ matrix_bridge_mautrix_wsproxy_imessage_homeserver_token | to_json }}
sync_proxy:
# The URL that mautrix-wsproxy can use to reach mautrix-syncproxy
url: {{ matrix_mautrix_wsproxy_syncproxy_appservice_address | to_json }}
url: {{ matrix_bridge_mautrix_wsproxy_syncproxy_appservice_address | to_json }}
# The URL that mautrix-syncproxy can use to reach mautrix-wsproxy
wsproxy_url: {{ matrix_mautrix_wsproxy_appservice_address | to_json }}
shared_secret: {{ matrix_mautrix_wsproxy_syncproxy_shared_secret | to_json }}
wsproxy_url: {{ matrix_bridge_mautrix_wsproxy_appservice_address | to_json }}
shared_secret: {{ matrix_bridge_mautrix_wsproxy_syncproxy_shared_secret | to_json }}
@@ -5,6 +5,6 @@ SPDX-FileCopyrightText: 2024 Slavi Pantaleev
SPDX-License-Identifier: AGPL-3.0-or-later
#}
DATABASE_URL={{ matrix_mautrix_signal_wsproxy_syncproxy_connection_string }}
HOMESERVER_URL={{ matrix_mautrix_wsproxy_syncproxy_homeserver_url }}
SHARED_SECRET={{ matrix_mautrix_wsproxy_syncproxy_shared_secret }}
DATABASE_URL={{ matrix_bridge_mautrix_wsproxy_syncproxy_connection_string }}
HOMESERVER_URL={{ matrix_bridge_mautrix_wsproxy_syncproxy_homeserver_url }}
SHARED_SECRET={{ matrix_bridge_mautrix_wsproxy_syncproxy_shared_secret }}
@@ -1,11 +1,11 @@
#jinja2: lstrip_blocks: True
[Unit]
Description=Matrix Mautrix wsproxy syncproxy
{% for service in matrix_mautrix_wsproxy_syncproxy_systemd_required_services_list %}
{% for service in matrix_bridge_mautrix_wsproxy_syncproxy_systemd_required_services_list %}
Requires={{ service }}
After={{ service }}
{% endfor %}
{% for service in matrix_mautrix_wsproxy_syncproxy_systemd_wanted_services_list %}
{% for service in matrix_bridge_mautrix_wsproxy_syncproxy_systemd_wanted_services_list %}
Wants={{ service }}
{% endfor %}
DefaultDependencies=no
@@ -22,15 +22,15 @@ 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_wsproxy_container_network }} \
--env-file={{ matrix_mautrix_wsproxy_base_path }}/syncproxy-env \
{% for arg in matrix_mautrix_wsproxy_syncproxy_container_extra_arguments %}
--network={{ matrix_bridge_mautrix_wsproxy_container_network }} \
--env-file={{ matrix_bridge_mautrix_wsproxy_base_path }}/syncproxy-env \
{% for arg in matrix_bridge_mautrix_wsproxy_syncproxy_container_extra_arguments %}
{{ arg }} \
{% endfor %}
{{ matrix_mautrix_wsproxy_syncproxy_container_image }}
{{ matrix_bridge_mautrix_wsproxy_syncproxy_container_image }}
{% if matrix_mautrix_wsproxy_container_network != 'host' %}
{% for network in matrix_mautrix_wsproxy_container_additional_networks %}
{% if matrix_bridge_mautrix_wsproxy_container_network != 'host' %}
{% for network in matrix_bridge_mautrix_wsproxy_container_additional_networks %}
ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network connect {{ network }} matrix-mautrix-wsproxy-syncproxy
{% endfor %}
{% endif %}
@@ -1,11 +1,11 @@
#jinja2: lstrip_blocks: True
[Unit]
Description=Matrix Mautrix wsproxy bridge
{% for service in matrix_mautrix_wsproxy_systemd_required_services_list %}
{% for service in matrix_bridge_mautrix_wsproxy_systemd_required_services_list %}
Requires={{ service }}
After={{ service }}
{% endfor %}
{% for service in matrix_mautrix_wsproxy_systemd_wanted_services_list %}
{% for service in matrix_bridge_mautrix_wsproxy_systemd_wanted_services_list %}
Wants={{ service }}
{% endfor %}
DefaultDependencies=no
@@ -20,20 +20,20 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create --rm -
--log-driver=none \
--user={{ matrix_user_uid }}:{{ matrix_user_gid }} \
--cap-drop=ALL \
--network={{ matrix_mautrix_wsproxy_container_network }} \
{% if matrix_mautrix_wsproxy_bind_port %}
-p {{ matrix_mautrix_wsproxy_port }}:29331 \
--network={{ matrix_bridge_mautrix_wsproxy_container_network }} \
{% if matrix_bridge_mautrix_wsproxy_bind_port %}
-p {{ matrix_bridge_mautrix_wsproxy_port }}:29331 \
{% endif %}
--mount type=bind,src={{ matrix_mautrix_wsproxy_config_path }},dst=/data \
--label-file={{ matrix_mautrix_wsproxy_base_path }}/wsproxy-labels \
{% for arg in matrix_mautrix_wsproxy_container_extra_arguments %}
--mount type=bind,src={{ matrix_bridge_mautrix_wsproxy_config_path }},dst=/data \
--label-file={{ matrix_bridge_mautrix_wsproxy_base_path }}/wsproxy-labels \
{% for arg in matrix_bridge_mautrix_wsproxy_container_extra_arguments %}
{{ arg }} \
{% endfor %}
{{ matrix_mautrix_wsproxy_container_image }} \
{{ matrix_bridge_mautrix_wsproxy_container_image }} \
/usr/bin/mautrix-wsproxy -config /data/config.yaml
{% if matrix_mautrix_wsproxy_container_network != 'host' %}
{% for network in matrix_mautrix_wsproxy_container_additional_networks %}
{% if matrix_bridge_mautrix_wsproxy_container_network != 'host' %}
{% for network in matrix_bridge_mautrix_wsproxy_container_additional_networks %}
ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network connect {{ network }} matrix-mautrix-wsproxy
{% endfor %}
{% endif %}
@@ -4,37 +4,37 @@ SPDX-FileCopyrightText: 2023 Johan Swetzén
SPDX-License-Identifier: AGPL-3.0-or-later
#}
{% if matrix_mautrix_wsproxy_container_labels_traefik_enabled %}
{% if matrix_bridge_mautrix_wsproxy_container_labels_traefik_enabled %}
traefik.enable=true
{% if matrix_mautrix_wsproxy_container_labels_traefik_docker_network %}
traefik.docker.network={{ matrix_mautrix_wsproxy_container_labels_traefik_docker_network }}
{% if matrix_bridge_mautrix_wsproxy_container_labels_traefik_docker_network %}
traefik.docker.network={{ matrix_bridge_mautrix_wsproxy_container_labels_traefik_docker_network }}
{% endif %}
{% set middlewares = [] %}
{% if matrix_mautrix_wsproxy_container_labels_traefik_additional_response_headers.keys() | length > 0 %}
{% for name, value in matrix_mautrix_wsproxy_container_labels_traefik_additional_response_headers.items() %}
{% if matrix_bridge_mautrix_wsproxy_container_labels_traefik_additional_response_headers.keys() | length > 0 %}
{% for name, value in matrix_bridge_mautrix_wsproxy_container_labels_traefik_additional_response_headers.items() %}
traefik.http.middlewares.matrix-mautrix-wsproxy-add-headers.headers.customresponseheaders.{{ name }}={{ value }}
{% endfor %}
{% set middlewares = middlewares + ['matrix-mautrix-wsproxy-add-headers'] %}
{% endif %}
traefik.http.routers.matrix-mautrix-wsproxy.rule={{ matrix_mautrix_wsproxy_container_labels_traefik_rule }}
{% if matrix_mautrix_wsproxy_container_labels_traefik_priority | int > 0 %}
traefik.http.routers.matrix-mautrix-wsproxy.priority={{ matrix_mautrix_wsproxy_container_labels_traefik_priority }}
traefik.http.routers.matrix-mautrix-wsproxy.rule={{ matrix_bridge_mautrix_wsproxy_container_labels_traefik_rule }}
{% if matrix_bridge_mautrix_wsproxy_container_labels_traefik_priority | int > 0 %}
traefik.http.routers.matrix-mautrix-wsproxy.priority={{ matrix_bridge_mautrix_wsproxy_container_labels_traefik_priority }}
{% endif %}
traefik.http.routers.matrix-mautrix-wsproxy.service=matrix-mautrix-wsproxy
{% if middlewares | length > 0 %}
traefik.http.routers.matrix-mautrix-wsproxy.middlewares={{ middlewares | join(',') }}
{% endif %}
traefik.http.routers.matrix-mautrix-wsproxy.entrypoints={{ matrix_mautrix_wsproxy_container_labels_traefik_entrypoints }}
traefik.http.routers.matrix-mautrix-wsproxy.tls={{ matrix_mautrix_wsproxy_container_labels_traefik_tls | to_json }}
{% if matrix_mautrix_wsproxy_container_labels_traefik_tls %}
traefik.http.routers.matrix-mautrix-wsproxy.tls.certResolver={{ matrix_mautrix_wsproxy_container_labels_traefik_tls_certResolver }}
traefik.http.routers.matrix-mautrix-wsproxy.entrypoints={{ matrix_bridge_mautrix_wsproxy_container_labels_traefik_entrypoints }}
traefik.http.routers.matrix-mautrix-wsproxy.tls={{ matrix_bridge_mautrix_wsproxy_container_labels_traefik_tls | to_json }}
{% if matrix_bridge_mautrix_wsproxy_container_labels_traefik_tls %}
traefik.http.routers.matrix-mautrix-wsproxy.tls.certResolver={{ matrix_bridge_mautrix_wsproxy_container_labels_traefik_tls_certResolver }}
{% endif %}
traefik.http.services.matrix-mautrix-wsproxy.loadbalancer.server.port={{ matrix_mautrix_wsproxy_port }}
traefik.http.services.matrix-mautrix-wsproxy.loadbalancer.server.port={{ matrix_bridge_mautrix_wsproxy_port }}
{% endif %}
{{ matrix_mautrix_wsproxy_container_labels_additional_labels }}
{{ matrix_bridge_mautrix_wsproxy_container_labels_additional_labels }}