Remove matrix-bridge-mautrix-hangouts
role
Closes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3863
This commit is contained in:
parent
98d5ede2c6
commit
c399992542
11
CHANGELOG.md
11
CHANGELOG.md
@ -1,3 +1,14 @@
|
|||||||
|
# 2025-02-03
|
||||||
|
|
||||||
|
## The mautrix-hangouts bridge has been removed from the playbook
|
||||||
|
|
||||||
|
The [mautrix-hangouts](./docs/configuring-playbook-bridge-mautrix-hangouts.md) bridge has been deprecated in the playbook since December 2024 and finally got completely removed from the playbook in February 2025.
|
||||||
|
|
||||||
|
This is because Google Hangouts has been discontinued since the 1st of November 2022.
|
||||||
|
|
||||||
|
The playbook will let you know if you're using any `matrix_mautrix_hangouts_*` variables. You'll need to remove them from `vars.yml` and potentially [uninstall the bridge manually](./docs/configuring-playbook-bridge-mautrix-hangouts.md#uninstalling-the-bridge-manually).
|
||||||
|
|
||||||
|
|
||||||
# 2025-01-27
|
# 2025-01-27
|
||||||
|
|
||||||
## Redis and KeyDB are no longer part of the playbook
|
## Redis and KeyDB are no longer part of the playbook
|
||||||
|
@ -1,58 +1,17 @@
|
|||||||
# Setting up Mautrix Hangouts bridging (optional, deprecated)
|
# Setting up Mautrix Hangouts bridging (optional, deprecated)
|
||||||
|
|
||||||
<sup>Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)</sup>
|
🪦 The playbook used to be able to install and configure [mautrix-hangouts](https://github.com/mautrix/hangouts), but no longer includes this component, because Google Hangouts has been discontinued since the 1st of November 2022.
|
||||||
|
|
||||||
💡 **Note**: This bridge has been deprecated in favor of [Google Chat bridge](https://github.com/mautrix/googlechat), which can be installed using [this playbook](configuring-playbook-bridge-mautrix-googlechat.md). Installing the mautrix-hangouts bridge is **no longer possible**. For now, this documentation page remains here for historical purposes.
|
You may wish to use the [Google Chat bridge](https://github.com/mautrix/googlechat) instead.
|
||||||
|
|
||||||
The playbook can install and configure [mautrix-hangouts](https://github.com/mautrix/hangouts) for you.
|
## Uninstalling the bridge manually
|
||||||
|
|
||||||
## Prerequisite (optional)
|
If you still have the Hangouts bridge installed on your Matrix server, the playbook can no longer help you uninstall it and you will need to do it manually. To uninstall manually, run these commands on the server:
|
||||||
|
|
||||||
### Enable Shared Secret Auth
|
|
||||||
|
|
||||||
If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) for this playbook.
|
|
||||||
|
|
||||||
See [this section](configuring-playbook-bridge-mautrix-bridges.md#set-up-double-puppeting-optional) on the [common guide for configuring mautrix bridges](configuring-playbook-bridge-mautrix-bridges.md) for details about setting up Double Puppeting.
|
|
||||||
|
|
||||||
**Note**: double puppeting with the Shared Secret Auth works at the time of writing, but is deprecated and will stop working in the future.
|
|
||||||
|
|
||||||
## Adjusting the playbook configuration
|
|
||||||
|
|
||||||
To enable the [Google Hangouts](https://hangouts.google.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
matrix_mautrix_hangouts_enabled: true
|
|
||||||
```
|
|
||||||
|
|
||||||
### Extending the configuration
|
|
||||||
|
|
||||||
There are some additional things you may wish to configure about the bridge.
|
|
||||||
|
|
||||||
See [this section](configuring-playbook-bridge-mautrix-bridges.md#extending-the-configuration) on the [common guide for configuring mautrix bridges](configuring-playbook-bridge-mautrix-bridges.md) for details about variables that you can customize and the bridge's default configuration, including [bridge permissions](configuring-playbook-bridge-mautrix-bridges.md#configure-bridge-permissions-optional), [encryption support](configuring-playbook-bridge-mautrix-bridges.md#enable-encryption-optional), [relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc.
|
|
||||||
|
|
||||||
## Installing
|
|
||||||
|
|
||||||
After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:
|
|
||||||
|
|
||||||
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. -->
|
|
||||||
```sh
|
```sh
|
||||||
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-users-created,start
|
systemctl disable --now matrix-mautrix-hangouts.service
|
||||||
|
|
||||||
|
rm -rf /matrix/mautrix-hangouts
|
||||||
|
|
||||||
|
/matrix/postgres/bin/cli-non-interactive 'DROP DATABASE matrix_mautrix_hangouts;'
|
||||||
```
|
```
|
||||||
|
|
||||||
**Notes**:
|
|
||||||
|
|
||||||
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account.
|
|
||||||
|
|
||||||
- The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
|
|
||||||
|
|
||||||
`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed.
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
To use the bridge, you need to start a chat with `@hangoutsbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain).
|
|
||||||
|
|
||||||
You then need to send `login` to the bridge bot to receive a link to the portal from which you can enable the bridging. Open the link sent by the bot and follow the instructions.
|
|
||||||
|
|
||||||
Automatic login may not work. If it does not, reload the page and select the "Manual login" checkbox before starting. Manual login involves logging into your Google account normally and then manually getting the OAuth token from browser cookies with developer tools.
|
|
||||||
|
|
||||||
Once logged in, recent chats should show up as new conversations automatically. Other chats will get portals as you receive messages.
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Setting up MX Puppet Skype bridging (optional, removed)
|
# Setting up MX Puppet Skype bridging (optional, removed)
|
||||||
|
|
||||||
The playbook used to be able to install and configure [mx-puppet-skype](https://github.com/Sorunome/mx-puppet-skype), but no longer includes this component, because it has been broken and unmaintained for a long time.
|
🪦 The playbook used to be able to install and configure [mx-puppet-skype](https://github.com/Sorunome/mx-puppet-skype), but no longer includes this component, because it has been broken and unmaintained for a long time.
|
||||||
|
|
||||||
Bridging to [Skype](https://www.skype.com/) can also happen via the [go-skype-bridge](configuring-playbook-bridge-go-skype-bridge.md) bridge supported by the playbook.
|
Bridging to [Skype](https://www.skype.com/) can also happen via the [go-skype-bridge](configuring-playbook-bridge-go-skype-bridge.md) bridge supported by the playbook.
|
||||||
|
@ -250,8 +250,6 @@ Various services that don't fit any other categories.
|
|||||||
|
|
||||||
- [Setting up Mautrix Facebook bridging](configuring-playbook-bridge-mautrix-facebook.md) (deprecated in favor of the Messenger/Instagram bridge with [mautrix-meta-messenger](configuring-playbook-bridge-mautrix-meta-messenger.md))
|
- [Setting up Mautrix Facebook bridging](configuring-playbook-bridge-mautrix-facebook.md) (deprecated in favor of the Messenger/Instagram bridge with [mautrix-meta-messenger](configuring-playbook-bridge-mautrix-meta-messenger.md))
|
||||||
|
|
||||||
- [Setting up Mautrix Hangouts bridging](configuring-playbook-bridge-mautrix-hangouts.md) (deprecated in favor of the Google Chat bridge with [mautrix-googlechat](configuring-playbook-bridge-mautrix-googlechat.md))
|
|
||||||
|
|
||||||
- [Setting up Mautrix Instagram bridging](configuring-playbook-bridge-mautrix-instagram.md) (deprecated in favor of the Messenger/Instagram bridge with [mautrix-meta-instagram](configuring-playbook-bridge-mautrix-meta-instagram.md))
|
- [Setting up Mautrix Instagram bridging](configuring-playbook-bridge-mautrix-instagram.md) (deprecated in favor of the Messenger/Instagram bridge with [mautrix-meta-instagram](configuring-playbook-bridge-mautrix-meta-instagram.md))
|
||||||
|
|
||||||
- [Setting up MX Puppet Skype bridging](configuring-playbook-bridge-mx-puppet-skype.md) (removed; this component has been broken for a long time, so it has been removed from the playbook. Consider [setting up Go Skype Bridge bridging](configuring-playbook-bridge-go-skype-bridge.md))
|
- [Setting up MX Puppet Skype bridging](configuring-playbook-bridge-mx-puppet-skype.md) (removed; this component has been broken for a long time, so it has been removed from the playbook. Consider [setting up Go Skype Bridge bridging](configuring-playbook-bridge-go-skype-bridge.md))
|
||||||
|
@ -161,5 +161,4 @@ The list of the deprecated or unmaintained services is available [here](configur
|
|||||||
| [Go-NEB](configuring-playbook-bot-go-neb.md) | [matrixdotorg/go-neb](https://hub.docker.com/r/matrixdotorg/go-neb) | ❌ | Multi functional bot written in Go |
|
| [Go-NEB](configuring-playbook-bot-go-neb.md) | [matrixdotorg/go-neb](https://hub.docker.com/r/matrixdotorg/go-neb) | ❌ | Multi functional bot written in Go |
|
||||||
| [matrix-chatgpt-bot](configuring-playbook-bot-chatgpt.md) | [matrixgpt/matrix-chatgpt-bot](https://ghcr.io/matrixgpt/matrix-chatgpt-bot) | ❌ | Accessing ChatGPT via your favourite Matrix client |
|
| [matrix-chatgpt-bot](configuring-playbook-bot-chatgpt.md) | [matrixgpt/matrix-chatgpt-bot](https://ghcr.io/matrixgpt/matrix-chatgpt-bot) | ❌ | Accessing ChatGPT via your favourite Matrix client |
|
||||||
| [mautrix-facebook](configuring-playbook-bridge-mautrix-facebook.md) | [mautrix/facebook](https://mau.dev/mautrix/facebook/container_registry) | ❌ | Bridge to [Facebook](https://facebook.com/) |
|
| [mautrix-facebook](configuring-playbook-bridge-mautrix-facebook.md) | [mautrix/facebook](https://mau.dev/mautrix/facebook/container_registry) | ❌ | Bridge to [Facebook](https://facebook.com/) |
|
||||||
| [mautrix-hangouts](configuring-playbook-bridge-mautrix-hangouts.md) | [mautrix/hangouts](https://mau.dev/mautrix/hangouts/container_registry) | ❌ | Bridge to [Google Hangouts](https://en.wikipedia.org/wiki/Google_Hangouts) |
|
|
||||||
| [mautrix-instagram](configuring-playbook-bridge-mautrix-instagram.md) | [mautrix/instagram](https://mau.dev/mautrix/instagram/container_registry) | ❌ | Bridge to [Instagram](https://instagram.com/) |
|
| [mautrix-instagram](configuring-playbook-bridge-mautrix-instagram.md) | [mautrix/instagram](https://mau.dev/mautrix/instagram/container_registry) | ❌ | Bridge to [Instagram](https://instagram.com/) |
|
||||||
|
@ -28,7 +28,6 @@ Possibly outdated list of roles where self-building the Docker image is currentl
|
|||||||
- `matrix-bridge-appservice-webhooks`
|
- `matrix-bridge-appservice-webhooks`
|
||||||
- `matrix-bridge-beeper-linkedin`
|
- `matrix-bridge-beeper-linkedin`
|
||||||
- `matrix-bridge-mautrix-facebook`
|
- `matrix-bridge-mautrix-facebook`
|
||||||
- `matrix-bridge-mautrix-hangouts`
|
|
||||||
- `matrix-bridge-mautrix-googlechat`
|
- `matrix-bridge-mautrix-googlechat`
|
||||||
- `matrix-bridge-mautrix-telegram`
|
- `matrix-bridge-mautrix-telegram`
|
||||||
- `matrix-bridge-mautrix-signal`
|
- `matrix-bridge-mautrix-signal`
|
||||||
|
@ -115,8 +115,6 @@ matrix_homeserver_container_extra_arguments_auto: |
|
|||||||
+
|
+
|
||||||
(['--mount type=bind,src=' + matrix_mautrix_googlechat_config_path + '/registration.yaml,dst=/matrix-mautrix-googlechat-registration.yaml,ro'] if matrix_mautrix_googlechat_enabled else [])
|
(['--mount type=bind,src=' + matrix_mautrix_googlechat_config_path + '/registration.yaml,dst=/matrix-mautrix-googlechat-registration.yaml,ro'] if matrix_mautrix_googlechat_enabled else [])
|
||||||
+
|
+
|
||||||
(['--mount type=bind,src=' + matrix_mautrix_hangouts_config_path + '/registration.yaml,dst=/matrix-mautrix-hangouts-registration.yaml,ro'] if matrix_mautrix_hangouts_enabled else [])
|
|
||||||
+
|
|
||||||
(['--mount type=bind,src=' + matrix_mautrix_instagram_config_path + '/registration.yaml,dst=/matrix-mautrix-instagram-registration.yaml,ro'] if matrix_mautrix_instagram_enabled else [])
|
(['--mount type=bind,src=' + matrix_mautrix_instagram_config_path + '/registration.yaml,dst=/matrix-mautrix-instagram-registration.yaml,ro'] if matrix_mautrix_instagram_enabled else [])
|
||||||
+
|
+
|
||||||
(['--mount type=bind,src=' + matrix_mautrix_signal_config_path + '/registration.yaml,dst=/matrix-mautrix-signal-registration.yaml,ro'] if matrix_mautrix_signal_enabled else [])
|
(['--mount type=bind,src=' + matrix_mautrix_signal_config_path + '/registration.yaml,dst=/matrix-mautrix-signal-registration.yaml,ro'] if matrix_mautrix_signal_enabled else [])
|
||||||
@ -188,8 +186,6 @@ matrix_homeserver_app_service_config_files_auto: |
|
|||||||
+
|
+
|
||||||
(['/matrix-mautrix-googlechat-registration.yaml'] if matrix_mautrix_googlechat_enabled else [])
|
(['/matrix-mautrix-googlechat-registration.yaml'] if matrix_mautrix_googlechat_enabled else [])
|
||||||
+
|
+
|
||||||
(['/matrix-mautrix-hangouts-registration.yaml'] if matrix_mautrix_hangouts_enabled else [])
|
|
||||||
+
|
|
||||||
(['/matrix-mautrix-instagram-registration.yaml'] if matrix_mautrix_instagram_enabled else [])
|
(['/matrix-mautrix-instagram-registration.yaml'] if matrix_mautrix_instagram_enabled else [])
|
||||||
+
|
+
|
||||||
(['/matrix-mautrix-signal-registration.yaml'] if matrix_mautrix_signal_enabled else [])
|
(['/matrix-mautrix-signal-registration.yaml'] if matrix_mautrix_signal_enabled else [])
|
||||||
@ -332,8 +328,6 @@ devture_systemd_service_manager_services_list_auto: |
|
|||||||
+
|
+
|
||||||
([{'name': 'matrix-mautrix-googlechat.service', 'priority': 2000, 'groups': ['matrix', 'bridges', 'mautrix-googlechat']}] if matrix_mautrix_googlechat_enabled else [])
|
([{'name': 'matrix-mautrix-googlechat.service', 'priority': 2000, 'groups': ['matrix', 'bridges', 'mautrix-googlechat']}] if matrix_mautrix_googlechat_enabled else [])
|
||||||
+
|
+
|
||||||
([{'name': 'matrix-mautrix-hangouts.service', 'priority': 2000, 'groups': ['matrix', 'bridges', 'mautrix-hangouts']}] if matrix_mautrix_hangouts_enabled else [])
|
|
||||||
+
|
|
||||||
([{'name': 'matrix-mautrix-instagram.service', 'priority': 2000, 'groups': ['matrix', 'bridges', 'mautrix-instagram']}] if matrix_mautrix_instagram_enabled else [])
|
([{'name': 'matrix-mautrix-instagram.service', 'priority': 2000, 'groups': ['matrix', 'bridges', 'mautrix-instagram']}] if matrix_mautrix_instagram_enabled else [])
|
||||||
+
|
+
|
||||||
([{'name': 'matrix-mautrix-signal.service', 'priority': 2000, 'groups': ['matrix', 'bridges', 'mautrix-signal', 'mautrix-signal']}] if matrix_mautrix_signal_enabled else [])
|
([{'name': 'matrix-mautrix-signal.service', 'priority': 2000, 'groups': ['matrix', 'bridges', 'mautrix-signal', 'mautrix-signal']}] if matrix_mautrix_signal_enabled else [])
|
||||||
@ -1362,73 +1356,6 @@ matrix_mautrix_googlechat_database_password: "{{ '%s' | format(matrix_homeserver
|
|||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
|
|
||||||
######################################################################
|
|
||||||
#
|
|
||||||
# matrix-bridge-mautrix-hangouts
|
|
||||||
#
|
|
||||||
######################################################################
|
|
||||||
|
|
||||||
# We don't enable bridges by default.
|
|
||||||
matrix_mautrix_hangouts_enabled: false
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_systemd_required_services_list_auto: |
|
|
||||||
{{
|
|
||||||
matrix_addons_homeserver_systemd_services_list
|
|
||||||
+
|
|
||||||
([postgres_identifier ~ '.service'] if (postgres_enabled and matrix_mautrix_hangouts_database_hostname == postgres_connection_hostname) else [])
|
|
||||||
}}
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_container_image_self_build: "{{ matrix_architecture not in ['amd64', 'arm64'] }}"
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '9007') if matrix_playbook_service_host_bind_interface_prefix else '' }}"
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_container_network: "{{ matrix_addons_container_network }}"
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_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_hangouts_database_hostname == postgres_connection_hostname and matrix_mautrix_hangouts_container_network != postgres_container_network) else [])
|
|
||||||
+
|
|
||||||
([matrix_playbook_reverse_proxyable_services_additional_network] if (matrix_playbook_reverse_proxyable_services_additional_network and matrix_mautrix_gmessages_container_labels_traefik_enabled) else [])
|
|
||||||
) | unique
|
|
||||||
}}
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_container_labels_traefik_enabled: "{{ matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] }}"
|
|
||||||
matrix_mautrix_hangouts_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}"
|
|
||||||
matrix_mautrix_hangouts_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}"
|
|
||||||
matrix_mautrix_hangouts_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}"
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_container_labels_public_endpoint_hostname: "{{ matrix_server_fqn_matrix }}"
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_container_labels_metrics_middleware_basic_auth_enabled: "{{ matrix_metrics_exposure_http_basic_auth_enabled }}"
|
|
||||||
matrix_mautrix_hangouts_container_labels_metrics_middleware_basic_auth_users: "{{ matrix_metrics_exposure_http_basic_auth_users }}"
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_appservice_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'ho.as.token', rounds=655555) | to_uuid }}"
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_homeserver_address: "{{ matrix_addons_homeserver_client_api_url }}"
|
|
||||||
matrix_mautrix_hangouts_homeserver_token: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'ho.hs.token', rounds=655555) | to_uuid }}"
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_login_shared_secret: "{{ matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret if matrix_synapse_ext_password_provider_shared_secret_auth_enabled else '' }}"
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_metrics_enabled: "{{ prometheus_enabled or matrix_metrics_exposure_enabled }}"
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_metrics_proxying_enabled: "{{ matrix_mautrix_hangouts_metrics_enabled and matrix_metrics_exposure_enabled }}"
|
|
||||||
matrix_mautrix_hangouts_metrics_proxying_hostname: "{{ matrix_metrics_exposure_hostname }}"
|
|
||||||
matrix_mautrix_hangouts_metrics_proxying_path_prefix: "{{ matrix_metrics_exposure_path_prefix }}/mautrix-hangouts"
|
|
||||||
|
|
||||||
# Postgres is the default, except if not using internal Postgres server
|
|
||||||
matrix_mautrix_hangouts_database_engine: "{{ 'postgres' if postgres_enabled else 'sqlite' }}"
|
|
||||||
matrix_mautrix_hangouts_database_hostname: "{{ postgres_connection_hostname if postgres_enabled else '' }}"
|
|
||||||
matrix_mautrix_hangouts_database_password: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'mau.hangouts.db', rounds=655555) | to_uuid }}"
|
|
||||||
|
|
||||||
######################################################################
|
|
||||||
#
|
|
||||||
# /matrix-bridge-mautrix-hangouts
|
|
||||||
#
|
|
||||||
######################################################################
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
#
|
#
|
||||||
@ -4139,12 +4066,6 @@ postgres_managed_databases_auto: |
|
|||||||
'password': matrix_mautrix_facebook_database_password,
|
'password': matrix_mautrix_facebook_database_password,
|
||||||
}] if (matrix_mautrix_facebook_enabled and matrix_mautrix_facebook_database_engine == 'postgres' and matrix_mautrix_facebook_database_hostname == postgres_connection_hostname) else [])
|
}] if (matrix_mautrix_facebook_enabled and matrix_mautrix_facebook_database_engine == 'postgres' and matrix_mautrix_facebook_database_hostname == postgres_connection_hostname) else [])
|
||||||
+
|
+
|
||||||
([{
|
|
||||||
'name': matrix_mautrix_hangouts_database_name,
|
|
||||||
'username': matrix_mautrix_hangouts_database_username,
|
|
||||||
'password': matrix_mautrix_hangouts_database_password,
|
|
||||||
}] if (matrix_mautrix_hangouts_enabled and matrix_mautrix_hangouts_database_engine == 'postgres' and matrix_mautrix_hangouts_database_hostname == postgres_connection_hostname) else [])
|
|
||||||
+
|
|
||||||
([{
|
([{
|
||||||
'name': matrix_mautrix_googlechat_database_name,
|
'name': matrix_mautrix_googlechat_database_name,
|
||||||
'username': matrix_mautrix_googlechat_database_username,
|
'username': matrix_mautrix_googlechat_database_username,
|
||||||
@ -5009,11 +4930,6 @@ matrix_synapse_admin_config_asManagedUsers_auto: |
|
|||||||
'^@googlechat_[a-zA-Z0-9]+:'+(matrix_domain | regex_escape)+'$',
|
'^@googlechat_[a-zA-Z0-9]+:'+(matrix_domain | regex_escape)+'$',
|
||||||
] if matrix_mautrix_googlechat_enabled else [])
|
] if matrix_mautrix_googlechat_enabled else [])
|
||||||
+
|
+
|
||||||
([
|
|
||||||
'^@'+(matrix_mautrix_hangouts_appservice_bot_username | default('') | regex_escape)+':'+(matrix_domain | regex_escape)+'$',
|
|
||||||
'^@hangouts_[a-zA-Z0-9]+:'+(matrix_domain | regex_escape)+'$',
|
|
||||||
] if matrix_mautrix_hangouts_enabled else [])
|
|
||||||
+
|
|
||||||
([
|
([
|
||||||
'^@'+(matrix_mautrix_instagram_appservice_bot_username | default('') | regex_escape)+':'+(matrix_domain | regex_escape)+'$',
|
'^@'+(matrix_mautrix_instagram_appservice_bot_username | default('') | regex_escape)+':'+(matrix_domain | regex_escape)+'$',
|
||||||
'^@instagram_[a-zA-Z0-9]+:'+(matrix_domain | regex_escape)+'$',
|
'^@instagram_[a-zA-Z0-9]+:'+(matrix_domain | regex_escape)+'$',
|
||||||
|
@ -1,190 +0,0 @@
|
|||||||
---
|
|
||||||
# mautrix-hangouts is a Matrix <-> Hangouts bridge
|
|
||||||
# Project source code URL: https://github.com/mautrix/hangouts
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_enabled: true
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_container_image_self_build: false
|
|
||||||
matrix_mautrix_hangouts_container_image_self_build_repo: "https://github.com/mautrix/hangouts.git"
|
|
||||||
matrix_mautrix_hangouts_container_image_self_build_repo_version: "{{ 'master' if matrix_mautrix_hangouts_version == 'latest' else matrix_mautrix_hangouts_version }}"
|
|
||||||
|
|
||||||
# renovate: datasource=docker depName=dock.mau.dev/mautrix/hangouts
|
|
||||||
matrix_mautrix_hangouts_version: latest
|
|
||||||
# See: https://mau.dev/mautrix/hangouts/container_registry
|
|
||||||
matrix_mautrix_hangouts_docker_image: "{{ matrix_mautrix_hangouts_docker_image_name_prefix }}mautrix/hangouts:{{ matrix_mautrix_hangouts_version }}"
|
|
||||||
matrix_mautrix_hangouts_docker_image_name_prefix: "{{ 'localhost/' if matrix_mautrix_hangouts_container_image_self_build else 'dock.mau.dev/' }}"
|
|
||||||
matrix_mautrix_hangouts_docker_image_force_pull: "{{ matrix_mautrix_hangouts_docker_image.endswith(':latest') }}"
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_base_path: "{{ matrix_base_data_path }}/mautrix-hangouts"
|
|
||||||
matrix_mautrix_hangouts_config_path: "{{ matrix_mautrix_hangouts_base_path }}/config"
|
|
||||||
matrix_mautrix_hangouts_data_path: "{{ matrix_mautrix_hangouts_base_path }}/data"
|
|
||||||
matrix_mautrix_hangouts_docker_src_files_path: "{{ matrix_mautrix_hangouts_base_path }}/docker-src"
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_public_endpoint: '/mautrix-hangouts'
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_homeserver_address: ""
|
|
||||||
matrix_mautrix_hangouts_homeserver_domain: '{{ matrix_domain }}'
|
|
||||||
matrix_mautrix_hangouts_appservice_address: 'http://matrix-mautrix-hangouts:8080'
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_command_prefix: "!HO"
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_bridge_permissions: |
|
|
||||||
{{
|
|
||||||
{matrix_mautrix_hangouts_homeserver_domain: 'user'}
|
|
||||||
| combine({matrix_admin: 'admin'} if matrix_admin else {})
|
|
||||||
}}
|
|
||||||
|
|
||||||
# Controls whether the matrix-mautrix-hangouts container exposes its HTTP port (tcp/8080 in the container).
|
|
||||||
#
|
|
||||||
# Takes an "<ip>:<port>" or "<port>" value (e.g. "127.0.0.1:9007"), or empty string to not expose.
|
|
||||||
matrix_mautrix_hangouts_container_http_host_bind_port: ''
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_container_network: ""
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_container_additional_networks: "{{ matrix_mautrix_hangouts_container_additional_networks_auto + matrix_mautrix_hangouts_container_additional_networks_custom }}"
|
|
||||||
matrix_mautrix_hangouts_container_additional_networks_auto: []
|
|
||||||
matrix_mautrix_hangouts_container_additional_networks_custom: []
|
|
||||||
|
|
||||||
# matrix_mautrix_hangouts_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_hangouts_container_labels_additional_labels`.
|
|
||||||
matrix_mautrix_hangouts_container_labels_traefik_enabled: true
|
|
||||||
matrix_mautrix_hangouts_container_labels_traefik_docker_network: "{{ matrix_mautrix_hangouts_container_network }}"
|
|
||||||
matrix_mautrix_hangouts_container_labels_traefik_entrypoints: web-secure
|
|
||||||
matrix_mautrix_hangouts_container_labels_traefik_tls_certResolver: default # noqa var-naming
|
|
||||||
|
|
||||||
# Controls whether labels will be added that expose mautrix-googlechat's public endpoint
|
|
||||||
matrix_mautrix_hangouts_container_labels_public_endpoint_enabled: true
|
|
||||||
matrix_mautrix_hangouts_container_labels_public_endpoint_hostname: ""
|
|
||||||
matrix_mautrix_hangouts_container_labels_public_endpoint_path_prefix: "{{ matrix_mautrix_hangouts_public_endpoint }}"
|
|
||||||
matrix_mautrix_hangouts_container_labels_public_endpoint_traefik_rule: "Host(`{{ matrix_mautrix_hangouts_container_labels_public_endpoint_hostname }}`) && PathPrefix(`{{ matrix_mautrix_hangouts_container_labels_public_endpoint_path_prefix }}`)"
|
|
||||||
matrix_mautrix_hangouts_container_labels_public_endpoint_traefik_priority: 0
|
|
||||||
matrix_mautrix_hangouts_container_labels_public_endpoint_traefik_entrypoints: "{{ matrix_mautrix_hangouts_container_labels_traefik_entrypoints }}"
|
|
||||||
matrix_mautrix_hangouts_container_labels_public_endpoint_traefik_tls: "{{ matrix_mautrix_hangouts_container_labels_public_endpoint_traefik_entrypoints != 'web' }}"
|
|
||||||
matrix_mautrix_hangouts_container_labels_public_endpoint_traefik_tls_certResolver: "{{ matrix_mautrix_hangouts_container_labels_traefik_tls_certResolver }}" # noqa var-naming
|
|
||||||
|
|
||||||
# Controls whether labels will be added that expose mautrix-googlechat's metrics
|
|
||||||
matrix_mautrix_hangouts_container_labels_metrics_enabled: "{{ matrix_mautrix_hangouts_metrics_enabled and matrix_mautrix_hangouts_metrics_proxying_enabled }}"
|
|
||||||
matrix_mautrix_hangouts_container_labels_metrics_traefik_rule: "Host(`{{ matrix_mautrix_hangouts_metrics_proxying_hostname }}`) && PathPrefix(`{{ matrix_mautrix_hangouts_metrics_proxying_path_prefix }}`)"
|
|
||||||
matrix_mautrix_hangouts_container_labels_metrics_traefik_priority: 0
|
|
||||||
matrix_mautrix_hangouts_container_labels_metrics_traefik_entrypoints: "{{ matrix_mautrix_hangouts_container_labels_traefik_entrypoints }}"
|
|
||||||
matrix_mautrix_hangouts_container_labels_metrics_traefik_tls: "{{ matrix_mautrix_hangouts_container_labels_metrics_traefik_entrypoints != 'web' }}"
|
|
||||||
matrix_mautrix_hangouts_container_labels_metrics_traefik_tls_certResolver: "{{ matrix_mautrix_hangouts_container_labels_traefik_tls_certResolver }}" # noqa var-naming
|
|
||||||
matrix_mautrix_hangouts_container_labels_metrics_middleware_basic_auth_enabled: false
|
|
||||||
# See: https://doc.traefik.io/traefik/middlewares/http/basicauth/#users
|
|
||||||
matrix_mautrix_hangouts_container_labels_metrics_middleware_basic_auth_users: ''
|
|
||||||
|
|
||||||
# matrix_mautrix_hangouts_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_hangouts_container_labels_additional_labels: |
|
|
||||||
# my.label=1
|
|
||||||
# another.label="here"
|
|
||||||
matrix_mautrix_hangouts_container_labels_additional_labels: ''
|
|
||||||
|
|
||||||
# A list of extra arguments to pass to the container
|
|
||||||
matrix_mautrix_hangouts_container_extra_arguments: []
|
|
||||||
|
|
||||||
# List of systemd services that matrix-mautrix-hangouts.service depends on.
|
|
||||||
matrix_mautrix_hangouts_systemd_required_services_list: "{{ matrix_mautrix_hangouts_systemd_required_services_list_default + matrix_mautrix_hangouts_systemd_required_services_list_auto + matrix_mautrix_hangouts_systemd_required_services_list_custom }}"
|
|
||||||
matrix_mautrix_hangouts_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
|
|
||||||
matrix_mautrix_hangouts_systemd_required_services_list_auto: []
|
|
||||||
matrix_mautrix_hangouts_systemd_required_services_list_custom: []
|
|
||||||
|
|
||||||
# List of systemd services that matrix-mautrix-hangouts.service wants
|
|
||||||
matrix_mautrix_hangouts_systemd_wanted_services_list: []
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_appservice_token: ''
|
|
||||||
matrix_mautrix_hangouts_homeserver_token: ''
|
|
||||||
|
|
||||||
# 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_hangouts_metrics_proxying_enabled`.
|
|
||||||
matrix_mautrix_hangouts_metrics_enabled: false
|
|
||||||
|
|
||||||
# Controls whether metrics should be proxied (exposed) on a public URL.
|
|
||||||
matrix_mautrix_hangouts_metrics_proxying_enabled: false
|
|
||||||
matrix_mautrix_hangouts_metrics_proxying_hostname: ''
|
|
||||||
matrix_mautrix_hangouts_metrics_proxying_path_prefix: ''
|
|
||||||
|
|
||||||
# Database-related configuration fields.
|
|
||||||
#
|
|
||||||
# To use SQLite, stick to these defaults.
|
|
||||||
#
|
|
||||||
# To use Postgres:
|
|
||||||
# - change the engine (`matrix_mautrix_hangouts_database_engine: 'postgres'`)
|
|
||||||
# - adjust your database credentials via the `matrix_mautrix_hangouts_database_*` variables
|
|
||||||
matrix_mautrix_hangouts_database_engine: 'sqlite'
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_sqlite_database_path_local: "{{ matrix_mautrix_hangouts_data_path }}/mautrix-hangouts.db"
|
|
||||||
matrix_mautrix_hangouts_sqlite_database_path_in_container: "/data/mautrix-hangouts.db"
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_database_username: 'matrix_mautrix_hangouts'
|
|
||||||
matrix_mautrix_hangouts_database_password: 'some-password'
|
|
||||||
matrix_mautrix_hangouts_database_hostname: ''
|
|
||||||
matrix_mautrix_hangouts_database_port: 5432
|
|
||||||
matrix_mautrix_hangouts_database_name: 'matrix_mautrix_hangouts'
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_database_connection_string: 'postgres://{{ matrix_mautrix_hangouts_database_username }}:{{ matrix_mautrix_hangouts_database_password }}@{{ matrix_mautrix_hangouts_database_hostname }}:{{ matrix_mautrix_hangouts_database_port }}/{{ matrix_mautrix_hangouts_database_name }}'
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_appservice_database: "{{
|
|
||||||
{
|
|
||||||
'sqlite': ('sqlite:///' + matrix_mautrix_hangouts_sqlite_database_path_in_container),
|
|
||||||
'postgres': matrix_mautrix_hangouts_database_connection_string,
|
|
||||||
}[matrix_mautrix_hangouts_database_engine]
|
|
||||||
}}"
|
|
||||||
|
|
||||||
|
|
||||||
# Can be set to enable automatic double-puppeting via Shared Secret Auth (https://github.com/devture/matrix-synapse-shared-secret-auth).
|
|
||||||
matrix_mautrix_hangouts_login_shared_secret: ''
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_appservice_bot_username: hangoutsbot
|
|
||||||
|
|
||||||
# Specifies the default log level for all bridge loggers.
|
|
||||||
matrix_mautrix_hangouts_logging_level: WARNING
|
|
||||||
|
|
||||||
# Default 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_hangouts_configuration_extension_yaml`)
|
|
||||||
# or completely replace this variable with your own template.
|
|
||||||
matrix_mautrix_hangouts_configuration_yaml: "{{ lookup('template', 'templates/config.yaml.j2') }}"
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_configuration_extension_yaml: |
|
|
||||||
# Your custom YAML configuration goes here.
|
|
||||||
# This configuration extends the default starting configuration (`matrix_mautrix_hangouts_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_hangouts_configuration_yaml`.
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_configuration_extension: "{{ matrix_mautrix_hangouts_configuration_extension_yaml | from_yaml if matrix_mautrix_hangouts_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_hangouts_configuration_yaml`.
|
|
||||||
matrix_mautrix_hangouts_configuration: "{{ matrix_mautrix_hangouts_configuration_yaml | from_yaml | combine(matrix_mautrix_hangouts_configuration_extension, recursive=True) }}"
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_registration_yaml: |
|
|
||||||
id: hangouts
|
|
||||||
as_token: "{{ matrix_mautrix_hangouts_appservice_token }}"
|
|
||||||
hs_token: "{{ matrix_mautrix_hangouts_homeserver_token }}"
|
|
||||||
namespaces:
|
|
||||||
users:
|
|
||||||
- exclusive: true
|
|
||||||
regex: '^@hangouts_.+:{{ matrix_mautrix_hangouts_homeserver_domain | regex_escape }}$'
|
|
||||||
- exclusive: true
|
|
||||||
regex: '^@{{ matrix_mautrix_hangouts_appservice_bot_username | regex_escape }}:{{ matrix_mautrix_hangouts_homeserver_domain | regex_escape }}$'
|
|
||||||
url: {{ matrix_mautrix_hangouts_appservice_address }}
|
|
||||||
# See https://github.com/mautrix/signal/issues/43
|
|
||||||
sender_localpart: _bot_{{ matrix_mautrix_hangouts_appservice_bot_username }}
|
|
||||||
rate_limited: false
|
|
||||||
de.sorunome.msc2409.push_ephemeral: true
|
|
||||||
|
|
||||||
matrix_mautrix_hangouts_registration: "{{ matrix_mautrix_hangouts_registration_yaml | from_yaml }}"
|
|
||||||
|
|
||||||
# Enable End-to-bridge encryption
|
|
||||||
matrix_mautrix_hangouts_bridge_encryption_allow: "{{ matrix_bridges_encryption_enabled }}"
|
|
||||||
matrix_mautrix_hangouts_bridge_encryption_default: "{{ matrix_bridges_encryption_default }}"
|
|
@ -1,20 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
- tags:
|
|
||||||
- setup-all
|
|
||||||
- setup-mautrix-hangouts
|
|
||||||
- install-all
|
|
||||||
- install-mautrix-hangouts
|
|
||||||
block:
|
|
||||||
- when: matrix_mautrix_hangouts_enabled | bool
|
|
||||||
ansible.builtin.include_tasks: "{{ role_path }}/tasks/validate_config.yml"
|
|
||||||
|
|
||||||
- when: matrix_mautrix_hangouts_enabled | bool
|
|
||||||
ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_install.yml"
|
|
||||||
|
|
||||||
- tags:
|
|
||||||
- setup-all
|
|
||||||
- setup-mautrix-hangouts
|
|
||||||
block:
|
|
||||||
- when: not matrix_mautrix_hangouts_enabled | bool
|
|
||||||
ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
|
|
@ -1,144 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
- ansible.builtin.set_fact:
|
|
||||||
matrix_mautrix_hangouts_requires_restart: false
|
|
||||||
|
|
||||||
- when: "matrix_mautrix_hangouts_database_engine == 'postgres'"
|
|
||||||
block:
|
|
||||||
- name: Check if an SQLite database already exists
|
|
||||||
ansible.builtin.stat:
|
|
||||||
path: "{{ matrix_mautrix_hangouts_sqlite_database_path_local }}"
|
|
||||||
register: matrix_mautrix_hangouts_sqlite_database_path_local_stat_result
|
|
||||||
|
|
||||||
- when: "matrix_mautrix_hangouts_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_hangouts_sqlite_database_path_local }}"
|
|
||||||
dst: "{{ matrix_mautrix_hangouts_database_connection_string }}"
|
|
||||||
caller: "{{ role_path | basename }}"
|
|
||||||
engine_variable_name: 'matrix_mautrix_hangouts_database_engine'
|
|
||||||
engine_old: 'sqlite'
|
|
||||||
systemd_services_to_stop: ['matrix-mautrix-hangouts.service']
|
|
||||||
|
|
||||||
- ansible.builtin.set_fact:
|
|
||||||
matrix_mautrix_hangouts_requires_restart: true
|
|
||||||
|
|
||||||
- name: Ensure Mautrix Hangouts image is pulled
|
|
||||||
community.docker.docker_image:
|
|
||||||
name: "{{ matrix_mautrix_hangouts_docker_image }}"
|
|
||||||
source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
|
|
||||||
force_source: "{{ matrix_mautrix_hangouts_docker_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
|
|
||||||
force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_mautrix_hangouts_docker_image_force_pull }}"
|
|
||||||
when: not matrix_mautrix_hangouts_container_image_self_build
|
|
||||||
register: result
|
|
||||||
retries: "{{ devture_playbook_help_container_retries_count }}"
|
|
||||||
delay: "{{ devture_playbook_help_container_retries_delay }}"
|
|
||||||
until: result is not failed
|
|
||||||
|
|
||||||
- name: Ensure Mautrix Hangouts paths exist
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: "{{ item.path }}"
|
|
||||||
state: directory
|
|
||||||
mode: 0750
|
|
||||||
owner: "{{ matrix_user_username }}"
|
|
||||||
group: "{{ matrix_user_groupname }}"
|
|
||||||
with_items:
|
|
||||||
- {path: "{{ matrix_mautrix_hangouts_base_path }}", when: true}
|
|
||||||
- {path: "{{ matrix_mautrix_hangouts_config_path }}", when: true}
|
|
||||||
- {path: "{{ matrix_mautrix_hangouts_data_path }}", when: true}
|
|
||||||
- {path: "{{ matrix_mautrix_hangouts_docker_src_files_path }}", when: "{{ matrix_mautrix_hangouts_container_image_self_build }}"}
|
|
||||||
when: "item.when | bool"
|
|
||||||
|
|
||||||
- name: Ensure Mautrix Hangots repository is present on self build
|
|
||||||
ansible.builtin.git:
|
|
||||||
repo: "{{ matrix_mautrix_hangouts_container_image_self_build_repo }}"
|
|
||||||
version: "{{ matrix_mautrix_hangouts_container_image_self_build_repo_version }}"
|
|
||||||
dest: "{{ matrix_mautrix_hangouts_docker_src_files_path }}"
|
|
||||||
force: "yes"
|
|
||||||
become: true
|
|
||||||
become_user: "{{ matrix_user_username }}"
|
|
||||||
register: matrix_mautrix_hangouts_git_pull_results
|
|
||||||
when: "matrix_mautrix_hangouts_container_image_self_build | bool"
|
|
||||||
|
|
||||||
- name: Ensure Mautrix Hangouts Docker image is built
|
|
||||||
community.docker.docker_image:
|
|
||||||
name: "{{ matrix_mautrix_hangouts_docker_image }}"
|
|
||||||
source: build
|
|
||||||
force_source: "{{ matrix_mautrix_hangouts_git_pull_results.changed if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
|
|
||||||
force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_mautrix_hangouts_git_pull_results.changed }}"
|
|
||||||
build:
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
path: "{{ matrix_mautrix_hangouts_docker_src_files_path }}"
|
|
||||||
pull: true
|
|
||||||
when: "matrix_mautrix_hangouts_container_image_self_build | bool"
|
|
||||||
|
|
||||||
- name: Check if an old database file already exists
|
|
||||||
ansible.builtin.stat:
|
|
||||||
path: "{{ matrix_mautrix_hangouts_base_path }}/mautrix-hangouts.db"
|
|
||||||
register: matrix_mautrix_hangouts_stat_database
|
|
||||||
|
|
||||||
- name: (Data relocation) Ensure matrix-mautrix-hangouts.service is stopped
|
|
||||||
ansible.builtin.service:
|
|
||||||
name: matrix-mautrix-hangouts
|
|
||||||
state: stopped
|
|
||||||
enabled: false
|
|
||||||
daemon_reload: true
|
|
||||||
failed_when: false
|
|
||||||
when: "matrix_mautrix_hangouts_stat_database.stat.exists"
|
|
||||||
|
|
||||||
- name: (Data relocation) Move mautrix-hangouts database file to ./data directory
|
|
||||||
ansible.builtin.command:
|
|
||||||
cmd: "mv {{ matrix_mautrix_hangouts_base_path }}/mautrix-hangouts.db {{ matrix_mautrix_hangouts_data_path }}/mautrix-hangouts.db"
|
|
||||||
creates: "{{ matrix_mautrix_hangouts_data_path }}/mautrix-hangouts.db"
|
|
||||||
removes: "{{ matrix_mautrix_hangouts_base_path }}/mautrix-hangouts.db"
|
|
||||||
when: "matrix_mautrix_hangouts_stat_database.stat.exists"
|
|
||||||
|
|
||||||
- name: Ensure mautrix-hangouts config.yaml installed
|
|
||||||
ansible.builtin.copy:
|
|
||||||
content: "{{ matrix_mautrix_hangouts_configuration | to_nice_yaml(indent=2, width=999999) }}"
|
|
||||||
dest: "{{ matrix_mautrix_hangouts_config_path }}/config.yaml"
|
|
||||||
mode: 0644
|
|
||||||
owner: "{{ matrix_user_username }}"
|
|
||||||
group: "{{ matrix_user_groupname }}"
|
|
||||||
|
|
||||||
- name: Ensure mautrix-hangouts registration.yaml installed
|
|
||||||
ansible.builtin.copy:
|
|
||||||
content: "{{ matrix_mautrix_hangouts_registration | to_nice_yaml(indent=2, width=999999) }}"
|
|
||||||
dest: "{{ matrix_mautrix_hangouts_config_path }}/registration.yaml"
|
|
||||||
mode: 0644
|
|
||||||
owner: "{{ matrix_user_username }}"
|
|
||||||
group: "{{ matrix_user_groupname }}"
|
|
||||||
|
|
||||||
- name: Ensure mautrix-hangouts support files installed
|
|
||||||
ansible.builtin.template:
|
|
||||||
src: "{{ role_path }}/templates/{{ item }}.j2"
|
|
||||||
dest: "{{ matrix_mautrix_hangouts_base_path }}/{{ item }}"
|
|
||||||
mode: 0640
|
|
||||||
owner: "{{ matrix_user_username }}"
|
|
||||||
group: "{{ matrix_user_groupname }}"
|
|
||||||
with_items:
|
|
||||||
- labels
|
|
||||||
|
|
||||||
- name: Ensure matrix-mautrix-hangouts container network is created
|
|
||||||
community.general.docker_network:
|
|
||||||
enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}"
|
|
||||||
name: "{{ matrix_mautrix_hangouts_container_network }}"
|
|
||||||
driver: bridge
|
|
||||||
driver_options: "{{ devture_systemd_docker_base_container_networks_driver_options }}"
|
|
||||||
|
|
||||||
- name: Ensure matrix-mautrix-hangouts.service installed
|
|
||||||
ansible.builtin.template:
|
|
||||||
src: "{{ role_path }}/templates/systemd/matrix-mautrix-hangouts.service.j2"
|
|
||||||
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-mautrix-hangouts.service"
|
|
||||||
mode: 0644
|
|
||||||
|
|
||||||
- name: Ensure matrix-mautrix-hangouts.service restarted, if necessary
|
|
||||||
ansible.builtin.service:
|
|
||||||
name: "matrix-mautrix-hangouts.service"
|
|
||||||
state: restarted
|
|
||||||
daemon_reload: true
|
|
||||||
when: "matrix_mautrix_hangouts_requires_restart | bool"
|
|
@ -1,20 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
- name: Check existence of matrix-mautrix-hangouts service
|
|
||||||
ansible.builtin.stat:
|
|
||||||
path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-mautrix-hangouts.service"
|
|
||||||
register: matrix_mautrix_hangouts_service_stat
|
|
||||||
|
|
||||||
- when: matrix_mautrix_hangouts_service_stat.stat.exists | bool
|
|
||||||
block:
|
|
||||||
- name: Ensure matrix-mautrix-hangouts is stopped
|
|
||||||
ansible.builtin.service:
|
|
||||||
name: matrix-mautrix-hangouts
|
|
||||||
state: stopped
|
|
||||||
enabled: false
|
|
||||||
daemon_reload: true
|
|
||||||
|
|
||||||
- name: Ensure matrix-mautrix-hangouts.service doesn't exist
|
|
||||||
ansible.builtin.file:
|
|
||||||
path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-mautrix-hangouts.service"
|
|
||||||
state: absent
|
|
@ -1,31 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
- ansible.builtin.fail:
|
|
||||||
msg: |-
|
|
||||||
The Google Hangouts service was discontinued on November 1st, 2022.
|
|
||||||
The mautrix-hangouts bridge (which you have enabled via the `matrix_mautrix_hangouts_enabled` variable) will be removed from the playbook soon (in February 2025).
|
|
||||||
|
|
||||||
We suggest that you uninstall this bridge by:
|
|
||||||
1. Tweaking your `vars.yml` file - setting `matrix_mautrix_hangouts_enabled` to `false` or better yet removing all `matrix_mautrix_hangouts_*` variables
|
|
||||||
2. Re-running the playbook with the `setup-all` (e.g. `just setup-all`) or `setup-mautrix-hangouts` tag (e.g. `just run-tags setup-mautrix-hangouts`), so that uninstallation tasks will run.
|
|
||||||
|
|
||||||
In the future, an error will be raised for any `matrix_mautrix_hangouts_*` variables that the playbook detects in your `vars.yml` configuration file.
|
|
||||||
|
|
||||||
Also see: https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3863
|
|
||||||
|
|
||||||
- name: Fail if required mautrix-hangouts settings not defined
|
|
||||||
ansible.builtin.fail:
|
|
||||||
msg: >-
|
|
||||||
You need to define a required configuration setting (`{{ item.name }}`).
|
|
||||||
when: "item.when | bool and vars[item.name] == ''"
|
|
||||||
with_items:
|
|
||||||
- {'name': 'matrix_mautrix_hangouts_public_endpoint', when: true}
|
|
||||||
- {'name': 'matrix_mautrix_hangouts_appservice_token', when: true}
|
|
||||||
- {'name': 'matrix_mautrix_hangouts_homeserver_token', when: true}
|
|
||||||
- {'name': 'matrix_mautrix_hangouts_homeserver_address', when: true}
|
|
||||||
- {'name': 'matrix_mautrix_hangouts_database_hostname', when: "{{ matrix_mautrix_hangouts_database_engine == 'postgres' }}"}
|
|
||||||
- {'name': 'matrix_mautrix_hangouts_container_network', when: true}
|
|
||||||
- {'name': 'matrix_mautrix_hangouts_metrics_proxying_hostname', when: "{{ matrix_mautrix_hangouts_metrics_proxying_enabled }}"}
|
|
||||||
- {'name': 'matrix_mautrix_hangouts_metrics_proxying_path_prefix', when: "{{ matrix_mautrix_hangouts_metrics_proxying_enabled }}"}
|
|
||||||
- {'name': 'matrix_mautrix_hangouts_container_labels_public_endpoint_hostname', when: "{{ matrix_mautrix_hangouts_container_labels_public_endpoint_enabled }}"}
|
|
||||||
- {'name': 'matrix_mautrix_hangouts_container_labels_public_endpoint_path_prefix', when: "{{ matrix_mautrix_hangouts_container_labels_public_endpoint_enabled }}"}
|
|
@ -1,149 +0,0 @@
|
|||||||
#jinja2: lstrip_blocks: "True"
|
|
||||||
# Homeserver details
|
|
||||||
homeserver:
|
|
||||||
# The address that this appservice can use to connect to the homeserver.
|
|
||||||
address: {{ matrix_mautrix_hangouts_homeserver_address }}
|
|
||||||
# The domain of the homeserver (for MXIDs, etc).
|
|
||||||
domain: {{ matrix_mautrix_hangouts_homeserver_domain }}
|
|
||||||
# Whether or not to verify the SSL certificate of the homeserver.
|
|
||||||
# Only applies if address starts with https://
|
|
||||||
verify_ssl: true
|
|
||||||
|
|
||||||
# Application service host/registration related details
|
|
||||||
# Changing these values requires regeneration of the registration.
|
|
||||||
appservice:
|
|
||||||
# The address that the homeserver can use to connect to this appservice.
|
|
||||||
address: {{ matrix_mautrix_hangouts_appservice_address }}
|
|
||||||
|
|
||||||
# The hostname and port where this appservice should listen.
|
|
||||||
hostname: 0.0.0.0
|
|
||||||
port: 8080
|
|
||||||
# The maximum body size of appservice API requests (from the homeserver) in mebibytes
|
|
||||||
# Usually 1 is enough, but on high-traffic bridges you might need to increase this to avoid 413s
|
|
||||||
max_body_size: 1
|
|
||||||
|
|
||||||
# The full URI to the database. SQLite and Postgres are fully supported.
|
|
||||||
# Other DBMSes supported by SQLAlchemy may or may not work.
|
|
||||||
# Format examples:
|
|
||||||
# SQLite: sqlite:///filename.db
|
|
||||||
# Postgres: postgres://username:password@hostname/dbname
|
|
||||||
database: {{ matrix_mautrix_hangouts_appservice_database|to_json }}
|
|
||||||
|
|
||||||
# The unique ID of this appservice.
|
|
||||||
id: hangouts
|
|
||||||
# Username of the appservice bot.
|
|
||||||
bot_username: {{ matrix_mautrix_hangouts_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.
|
|
||||||
bot_displayname: Hangouts bridge bot
|
|
||||||
bot_avatar: mxc://maunium.net/FBXZnpfORkBEruORbikmleAy
|
|
||||||
|
|
||||||
# Authentication tokens for AS <-> HS communication.
|
|
||||||
as_token: "{{ matrix_mautrix_hangouts_appservice_token }}"
|
|
||||||
hs_token: "{{ matrix_mautrix_hangouts_homeserver_token }}"
|
|
||||||
|
|
||||||
# Prometheus telemetry config. Requires prometheus-client to be installed.
|
|
||||||
metrics:
|
|
||||||
enabled: {{ matrix_mautrix_hangouts_metrics_enabled | to_json }}
|
|
||||||
listen_port: 8000
|
|
||||||
|
|
||||||
# Bridge config
|
|
||||||
bridge:
|
|
||||||
# Localpart template of MXIDs for Hangouts users.
|
|
||||||
# {userid} is replaced with the user ID of the Hangouts user.
|
|
||||||
username_template: "hangouts_{userid}"
|
|
||||||
# Displayname template for Hangouts users.
|
|
||||||
# {displayname} is replaced with the display name of the Hangouts user
|
|
||||||
# as defined below in displayname_preference.
|
|
||||||
# Keys available for displayname_preference are also available here.
|
|
||||||
displayname_template: '{full_name} (Hangouts)'
|
|
||||||
# Available keys:
|
|
||||||
# "name" (full name)
|
|
||||||
# "first_name"
|
|
||||||
# "last_name"
|
|
||||||
# "nickname"
|
|
||||||
# "own_nickname" (user-specific!)
|
|
||||||
displayname_preference:
|
|
||||||
- name
|
|
||||||
|
|
||||||
# The prefix for commands. Only required in non-management rooms.
|
|
||||||
command_prefix: "{{ matrix_mautrix_hangouts_command_prefix }}"
|
|
||||||
|
|
||||||
# Number of chats to sync (and create portals for) on startup/login.
|
|
||||||
# Maximum 20, set 0 to disable automatic syncing.
|
|
||||||
initial_chat_sync: 20
|
|
||||||
# Whether or not the Hangouts users of logged in Matrix users should be
|
|
||||||
# invited to private chats when the user sends a message from another client.
|
|
||||||
invite_own_puppet_to_pm: false
|
|
||||||
# Whether or not to use /sync to get presence, read receipts and typing notifications when using
|
|
||||||
# your own Matrix account as the Matrix puppet for your Hangouts account.
|
|
||||||
sync_with_custom_puppets: true
|
|
||||||
# Shared secret for https://github.com/devture/matrix-synapse-shared-secret-auth
|
|
||||||
#
|
|
||||||
# If set, custom puppets will be enabled automatically for local users
|
|
||||||
# instead of users having to find an access token and run `login-matrix`
|
|
||||||
# manually.
|
|
||||||
login_shared_secret: {{ matrix_mautrix_hangouts_login_shared_secret|to_json }}
|
|
||||||
# Whether or not to update avatars when syncing all contacts at startup.
|
|
||||||
update_avatar_initial_sync: true
|
|
||||||
# End-to-bridge encryption support options. These require matrix-nio to be installed with pip
|
|
||||||
# and login_shared_secret to be configured in order to get a device for the bridge bot.
|
|
||||||
#
|
|
||||||
# Additionally, https://github.com/matrix-org/synapse/pull/5758 is required if using a normal
|
|
||||||
# application service.
|
|
||||||
encryption:
|
|
||||||
# Allow encryption, work in group chat rooms with e2ee enabled
|
|
||||||
allow: {{ matrix_mautrix_hangouts_bridge_encryption_allow|to_json }}
|
|
||||||
# Default to encryption, force-enable encryption in all portals the bridge creates
|
|
||||||
# This will cause the bridge bot to be in private chats for the encryption to work properly.
|
|
||||||
default: {{ matrix_mautrix_hangouts_bridge_encryption_default|to_json }}
|
|
||||||
|
|
||||||
# Public website and API configs
|
|
||||||
web:
|
|
||||||
# Auth server config
|
|
||||||
auth:
|
|
||||||
# Publicly accessible base URL for the login endpoints.
|
|
||||||
# The prefix below is not implicitly added. This URL and all subpaths should be proxied
|
|
||||||
# or otherwise pointed to the appservice's webserver to the path specified below (prefix).
|
|
||||||
# This path should usually include a trailing slash.
|
|
||||||
# Internal prefix in the appservice web server for the login endpoints.
|
|
||||||
public: "{{ matrix_homeserver_url }}{{ matrix_mautrix_hangouts_public_endpoint }}/login"
|
|
||||||
prefix: "{{ matrix_mautrix_hangouts_public_endpoint }}/login"
|
|
||||||
|
|
||||||
|
|
||||||
# Permissions for using the bridge.
|
|
||||||
# Permitted values:
|
|
||||||
# user - Use the bridge with puppeting.
|
|
||||||
# admin - Use and administrate the bridge.
|
|
||||||
# Permitted keys:
|
|
||||||
# * - All Matrix users
|
|
||||||
# domain - All users on that homeserver
|
|
||||||
# mxid - Specific user
|
|
||||||
permissions: {{ matrix_mautrix_hangouts_bridge_permissions|to_json }}
|
|
||||||
|
|
||||||
# Python logging configuration.
|
|
||||||
#
|
|
||||||
# See section 16.7.2 of the Python documentation for more info:
|
|
||||||
# https://docs.python.org/3.6/library/logging.config.html#configuration-dictionary-schema
|
|
||||||
logging:
|
|
||||||
version: 1
|
|
||||||
formatters:
|
|
||||||
colored:
|
|
||||||
(): mautrix_hangouts.util.ColorFormatter
|
|
||||||
format: "[%(asctime)s] [%(levelname)s@%(name)s] %(message)s"
|
|
||||||
normal:
|
|
||||||
format: "[%(asctime)s] [%(levelname)s@%(name)s] %(message)s"
|
|
||||||
handlers:
|
|
||||||
console:
|
|
||||||
class: logging.StreamHandler
|
|
||||||
formatter: colored
|
|
||||||
loggers:
|
|
||||||
mau:
|
|
||||||
level: {{ matrix_mautrix_hangouts_logging_level|to_json }}
|
|
||||||
hangups:
|
|
||||||
level: {{ matrix_mautrix_hangouts_logging_level|to_json }}
|
|
||||||
aiohttp:
|
|
||||||
level: {{ matrix_mautrix_hangouts_logging_level|to_json }}
|
|
||||||
root:
|
|
||||||
level: {{ matrix_mautrix_hangouts_logging_level|to_json }}
|
|
||||||
handlers: [console]
|
|
@ -1,76 +0,0 @@
|
|||||||
{% if matrix_mautrix_hangouts_container_labels_traefik_enabled %}
|
|
||||||
traefik.enable=true
|
|
||||||
|
|
||||||
{% if matrix_mautrix_hangouts_container_labels_traefik_docker_network %}
|
|
||||||
traefik.docker.network={{ matrix_mautrix_hangouts_container_labels_traefik_docker_network }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
traefik.http.services.matrix-mautrix-hangouts-public.loadbalancer.server.port=8080
|
|
||||||
traefik.http.services.matrix-mautrix-hangouts-metrics.loadbalancer.server.port=8000
|
|
||||||
|
|
||||||
{% if matrix_mautrix_hangouts_container_labels_public_endpoint_enabled %}
|
|
||||||
############################################################
|
|
||||||
# #
|
|
||||||
# Public #
|
|
||||||
# #
|
|
||||||
############################################################
|
|
||||||
|
|
||||||
traefik.http.routers.matrix-mautrix-hangouts-public.rule={{ matrix_mautrix_hangouts_container_labels_public_endpoint_traefik_rule }}
|
|
||||||
|
|
||||||
{% if matrix_mautrix_hangouts_container_labels_public_endpoint_traefik_priority | int > 0 %}
|
|
||||||
traefik.http.routers.matrix-mautrix-hangouts-public.priority={{ matrix_mautrix_hangouts_container_labels_public_endpoint_traefik_priority }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
traefik.http.routers.matrix-mautrix-hangouts-public.service=matrix-mautrix-hangouts-public
|
|
||||||
traefik.http.routers.matrix-mautrix-hangouts-public.entrypoints={{ matrix_mautrix_hangouts_container_labels_public_endpoint_traefik_entrypoints }}
|
|
||||||
|
|
||||||
traefik.http.routers.matrix-mautrix-hangouts-public.tls={{ matrix_mautrix_hangouts_container_labels_public_endpoint_traefik_tls | to_json }}
|
|
||||||
{% if matrix_mautrix_hangouts_container_labels_public_endpoint_traefik_tls %}
|
|
||||||
traefik.http.routers.matrix-mautrix-hangouts-public.tls.certResolver={{ matrix_mautrix_hangouts_container_labels_public_endpoint_traefik_tls_certResolver }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
############################################################
|
|
||||||
# #
|
|
||||||
# /Public #
|
|
||||||
# #
|
|
||||||
############################################################
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
|
|
||||||
{% if matrix_mautrix_hangouts_container_labels_metrics_enabled %}
|
|
||||||
############################################################
|
|
||||||
# #
|
|
||||||
# Metrics #
|
|
||||||
# #
|
|
||||||
############################################################
|
|
||||||
|
|
||||||
{% if matrix_mautrix_hangouts_container_labels_metrics_middleware_basic_auth_enabled %}
|
|
||||||
traefik.http.middlewares.matrix-mautrix-hangouts-metrics-basic-auth.basicauth.users={{ matrix_mautrix_hangouts_container_labels_metrics_middleware_basic_auth_users }}
|
|
||||||
traefik.http.routers.matrix-mautrix-hangouts-metrics.middlewares=matrix-mautrix-hangouts-metrics-basic-auth
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
traefik.http.routers.matrix-mautrix-hangouts-metrics.rule={{ matrix_mautrix_hangouts_container_labels_metrics_traefik_rule }}
|
|
||||||
|
|
||||||
{% if matrix_mautrix_hangouts_container_labels_metrics_traefik_priority | int > 0 %}
|
|
||||||
traefik.http.routers.matrix-mautrix-hangouts-metrics.priority={{ matrix_mautrix_hangouts_container_labels_metrics_traefik_priority }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
traefik.http.routers.matrix-mautrix-hangouts-metrics.service=matrix-mautrix-hangouts-metrics
|
|
||||||
traefik.http.routers.matrix-mautrix-hangouts-metrics.entrypoints={{ matrix_mautrix_hangouts_container_labels_metrics_traefik_entrypoints }}
|
|
||||||
|
|
||||||
traefik.http.routers.matrix-mautrix-hangouts-metrics.tls={{ matrix_mautrix_hangouts_container_labels_metrics_traefik_tls | to_json }}
|
|
||||||
{% if matrix_mautrix_hangouts_container_labels_metrics_traefik_tls %}
|
|
||||||
traefik.http.routers.matrix-mautrix-hangouts-metrics.tls.certResolver={{ matrix_mautrix_hangouts_container_labels_metrics_traefik_tls_certResolver }}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
############################################################
|
|
||||||
# #
|
|
||||||
# /Metrics #
|
|
||||||
# #
|
|
||||||
############################################################
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{{ matrix_mautrix_hangouts_container_labels_additional_labels }}
|
|
@ -1,69 +0,0 @@
|
|||||||
#jinja2: lstrip_blocks: "True"
|
|
||||||
[Unit]
|
|
||||||
Description=Matrix Mautrix Hangouts bridge
|
|
||||||
{% for service in matrix_mautrix_hangouts_systemd_required_services_list %}
|
|
||||||
Requires={{ service }}
|
|
||||||
After={{ service }}
|
|
||||||
{% endfor %}
|
|
||||||
{% for service in matrix_mautrix_hangouts_systemd_wanted_services_list %}
|
|
||||||
Wants={{ service }}
|
|
||||||
{% endfor %}
|
|
||||||
DefaultDependencies=no
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}"
|
|
||||||
ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-hangouts matrix-mautrix-hangouts-db 2>/dev/null || true'
|
|
||||||
ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mautrix-hangouts matrix-mautrix-hangouts-db 2>/dev/null || true'
|
|
||||||
|
|
||||||
ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \
|
|
||||||
--rm \
|
|
||||||
--name=matrix-mautrix-hangouts-db \
|
|
||||||
--log-driver=none \
|
|
||||||
--user={{ matrix_user_uid }}:{{ matrix_user_gid }} \
|
|
||||||
--cap-drop=ALL \
|
|
||||||
--network={{ matrix_mautrix_hangouts_container_network }} \
|
|
||||||
--mount type=bind,src={{ matrix_mautrix_hangouts_config_path }},dst=/config \
|
|
||||||
--mount type=bind,src={{ matrix_mautrix_hangouts_data_path }},dst=/data \
|
|
||||||
{{ matrix_mautrix_hangouts_docker_image }} \
|
|
||||||
alembic -x config=/config/config.yaml upgrade head
|
|
||||||
|
|
||||||
{% for network in matrix_mautrix_hangouts_container_additional_networks %}
|
|
||||||
ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network connect {{ network }} matrix-mautrix-hangouts-db
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-mautrix-hangouts-db
|
|
||||||
|
|
||||||
ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \
|
|
||||||
--rm \
|
|
||||||
--name=matrix-mautrix-hangouts \
|
|
||||||
--log-driver=none \
|
|
||||||
--user={{ matrix_user_uid }}:{{ matrix_user_gid }} \
|
|
||||||
--cap-drop=ALL \
|
|
||||||
--network={{ matrix_mautrix_hangouts_container_network }} \
|
|
||||||
{% if matrix_mautrix_hangouts_container_http_host_bind_port %}
|
|
||||||
-p {{ matrix_mautrix_hangouts_container_http_host_bind_port }}:8080 \
|
|
||||||
{% endif %}
|
|
||||||
--mount type=bind,src={{ matrix_mautrix_hangouts_config_path }},dst=/config \
|
|
||||||
--mount type=bind,src={{ matrix_mautrix_hangouts_data_path }},dst=/data \
|
|
||||||
--label-file={{ matrix_mautrix_hangouts_base_path }}/labels \
|
|
||||||
{% for arg in matrix_mautrix_hangouts_container_extra_arguments %}
|
|
||||||
{{ arg }} \
|
|
||||||
{% endfor %}
|
|
||||||
{{ matrix_mautrix_hangouts_docker_image }} \
|
|
||||||
python3 -m mautrix_hangouts -c /config/config.yaml --no-update
|
|
||||||
|
|
||||||
{% for network in matrix_mautrix_hangouts_container_additional_networks %}
|
|
||||||
ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network connect {{ network }} matrix-mautrix-hangouts
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-mautrix-hangouts
|
|
||||||
|
|
||||||
ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop --time={{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-mautrix-hangouts 2>/dev/null || true'
|
|
||||||
ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-mautrix-hangouts 2>/dev/null || true'
|
|
||||||
Restart=always
|
|
||||||
RestartSec=30
|
|
||||||
SyslogIdentifier=matrix-mautrix-hangouts
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
@ -452,3 +452,16 @@
|
|||||||
|
|
||||||
The following variables in your configuration need to be renamed: {{ vars | dict2items | selectattr('key', 'match', 'devture_traefik_.*') | map (attribute='key') | join(', ') }}
|
The following variables in your configuration need to be renamed: {{ vars | dict2items | selectattr('key', 'match', 'devture_traefik_.*') | map (attribute='key') | join(', ') }}
|
||||||
when: "vars | dict2items | selectattr('key', 'match', 'devture_traefik_.*') | list | items2dict"
|
when: "vars | dict2items | selectattr('key', 'match', 'devture_traefik_.*') | list | items2dict"
|
||||||
|
|
||||||
|
- name: (Deprecation) Catch and report mautrix-hangouts variables
|
||||||
|
ansible.builtin.fail:
|
||||||
|
msg: |-
|
||||||
|
The Google Hangouts service was discontinued on 1st of November 2022.
|
||||||
|
The mautrix-hangouts bridge has been deprecated in the playbook since December 2024 and was completely removed from the playbook in February 2025.
|
||||||
|
|
||||||
|
Please change your configuration (`vars.yml`) to remove all `matrix_mautrix_hangouts_*` variables.
|
||||||
|
|
||||||
|
You may also wish to uninstall the bridge manually. See `docs/configuring-playbook-bridge-mautrix-hangouts.md` for more information.
|
||||||
|
|
||||||
|
The following variables in your configuration need to be removed: {{ vars | dict2items | selectattr('key', 'match', 'matrix_mautrix_hangouts_.*') | map (attribute='key') | join(', ') }}
|
||||||
|
when: "vars | dict2items | selectattr('key', 'match', 'matrix_mautrix_hangouts_.*') | list | items2dict"
|
||||||
|
@ -64,7 +64,6 @@
|
|||||||
- custom/matrix-bridge-wechat
|
- custom/matrix-bridge-wechat
|
||||||
- custom/matrix-bridge-mautrix-facebook
|
- custom/matrix-bridge-mautrix-facebook
|
||||||
- custom/matrix-bridge-mautrix-twitter
|
- custom/matrix-bridge-mautrix-twitter
|
||||||
- custom/matrix-bridge-mautrix-hangouts
|
|
||||||
- custom/matrix-bridge-mautrix-googlechat
|
- custom/matrix-bridge-mautrix-googlechat
|
||||||
- custom/matrix-bridge-mautrix-instagram
|
- custom/matrix-bridge-mautrix-instagram
|
||||||
- custom/matrix-bridge-mautrix-meta-messenger
|
- custom/matrix-bridge-mautrix-meta-messenger
|
||||||
|
Loading…
x
Reference in New Issue
Block a user