Compare commits
64 Commits
aa952d1f1c
...
c7ae7d6c90
Author | SHA1 | Date | |
---|---|---|---|
c7ae7d6c90 | |||
dfe0d048be | |||
7eca7452c9 | |||
|
fc751f0330 | ||
|
2734adfb4e | ||
|
3b27ce2ff6 | ||
|
2e73dac39f | ||
|
df39a9bb72 | ||
|
110d91b06e | ||
|
8cbddc7558 | ||
|
d41e9230da | ||
|
e1a6d1e4b2 | ||
|
f8fe68b385 | ||
|
75cb4ce3b0 | ||
|
b4fb819481 | ||
|
6bbc2054b8 | ||
|
394ecb0acc | ||
|
d3a9ec98de | ||
|
5fc533eca5 | ||
|
949ae80117 | ||
|
b272e6147a | ||
|
1ec67f49b0 | ||
|
e216508774 | ||
|
788999d29c | ||
|
adf2dc13b3 | ||
|
3535c97117 | ||
|
ae122466fc | ||
|
e72ae8bc48 | ||
|
c1bc7b9f93 | ||
|
ba48aa70f7 | ||
|
a536f5764e | ||
|
dc4452ac21 | ||
|
edf63bfdd7 | ||
|
994c0e504c | ||
|
0152ecef1c | ||
|
8c3e25de1b | ||
|
28d9c3192e | ||
|
07496069c8 | ||
|
0d4764a213 | ||
|
266bdbc902 | ||
|
c08880d175 | ||
|
10523b700c | ||
|
8abe1ac483 | ||
|
20efa5ee70 | ||
|
708a7108b3 | ||
|
4ff8fddd72 | ||
|
1d0e594def | ||
|
afccc2b11f | ||
|
61b743f86d | ||
|
5e97f5a4e6 | ||
|
7756cc4c8e | ||
|
24fd455a9e | ||
|
c0656448f7 | ||
|
c07d15ec6c | ||
|
f01b9c3865 | ||
|
b195760301 | ||
|
c4d2c8394c | ||
|
dc70e94a31 | ||
|
cd26af2f6f | ||
|
7a4f49c457 | ||
|
735c966ab6 | ||
|
f5fd9661fa | ||
|
367cddb715 | ||
|
143b0f26d9 |
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,7 +1,3 @@
|
|||||||
/inventory/*
|
|
||||||
!/inventory/.gitkeep
|
|
||||||
!/inventory/host_vars/.gitkeep
|
|
||||||
!/inventory/scripts
|
|
||||||
/roles/*/files/scratchpad
|
/roles/*/files/scratchpad
|
||||||
.DS_Store
|
.DS_Store
|
||||||
.python-version
|
.python-version
|
||||||
|
11
CHANGELOG.md
11
CHANGELOG.md
@ -1,3 +1,12 @@
|
|||||||
|
# 2021-11-11
|
||||||
|
|
||||||
|
## Dropped support for Postgres v9.6
|
||||||
|
|
||||||
|
Postgres v9.6 reached its end of life today, so the playbook will refuse to run for you if you're still on that version.
|
||||||
|
|
||||||
|
Synapse still supports v9.6 (for now), but we're retiring support for it early, to avoid having to maintain support for so many Postgres versions. Users that are still on Postgres v9.6 can easily [upgrade Postgres](docs/maintenance-postgres.md#upgrading-postgresql) via the playbook.
|
||||||
|
|
||||||
|
|
||||||
# 2021-10-23
|
# 2021-10-23
|
||||||
|
|
||||||
## Hangouts bridge no longer updated, superseded by a Googlechat bridge
|
## Hangouts bridge no longer updated, superseded by a Googlechat bridge
|
||||||
@ -244,6 +253,8 @@ The fact that we've renamed Synapse's database from `homeserver` to `synapse` (i
|
|||||||
|
|
||||||
## (Breaking Change) The mautrix-facebook bridge now requires a Postgres database
|
## (Breaking Change) The mautrix-facebook bridge now requires a Postgres database
|
||||||
|
|
||||||
|
**Update from 2021-11-15**: SQLite support has been re-added to the mautrix-facebook bridge in [v0.3.2](https://github.com/mautrix/facebook/releases/tag/v0.3.2). You can ignore this changelog entry.
|
||||||
|
|
||||||
A new version of the [mautrix-facebook](https://github.com/tulir/mautrix-facebook) bridge has been released. It's a full rewrite of its backend and the bridge now requires Postgres. New versions of the bridge can no longer run on SQLite.
|
A new version of the [mautrix-facebook](https://github.com/tulir/mautrix-facebook) bridge has been released. It's a full rewrite of its backend and the bridge now requires Postgres. New versions of the bridge can no longer run on SQLite.
|
||||||
|
|
||||||
**TLDR**: if you're NOT using an [external Postgres server](docs/configuring-playbook-external-postgres.md) and have NOT forcefully kept the bridge on SQLite during [The big move to all-on-Postgres (potentially dangerous)](#the-big-move-to-all-on-postgres-potentially-dangerous), you will be automatically upgraded without manual intervention. All you need to do is send a `login` message to the Facebook bridge bot again.
|
**TLDR**: if you're NOT using an [external Postgres server](docs/configuring-playbook-external-postgres.md) and have NOT forcefully kept the bridge on SQLite during [The big move to all-on-Postgres (potentially dangerous)](#the-big-move-to-all-on-postgres-potentially-dangerous), you will be automatically upgraded without manual intervention. All you need to do is send a `login` message to the Facebook bridge bot again.
|
||||||
|
@ -1,6 +1,11 @@
|
|||||||
[defaults]
|
[defaults]
|
||||||
|
|
||||||
|
vault_password_file = gpg/open_vault.sh
|
||||||
|
|
||||||
retry_files_enabled = False
|
retry_files_enabled = False
|
||||||
stdout_callback = yaml
|
stdout_callback = yaml
|
||||||
|
|
||||||
|
inventory = inventory/hosts
|
||||||
|
|
||||||
[connection]
|
[connection]
|
||||||
pipelining = True
|
pipelining = True
|
||||||
|
@ -8,8 +8,25 @@ Use the following playbook configuration:
|
|||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
matrix_mautrix_whatsapp_enabled: true
|
matrix_mautrix_whatsapp_enabled: true
|
||||||
```
|
```
|
||||||
|
Whatsapp multidevice beta is required, now it is enough if Whatsapp is connected to the Internet every 2 weeks.
|
||||||
|
|
||||||
|
## Enable backfilling history
|
||||||
|
This requires a server with MSC2716 support, which is currently an experimental feature in synapse.
|
||||||
|
Note that as of Synapse 1.46, there are still some bugs with the implementation, especially if using event persistence workers.
|
||||||
|
Use the following playbook configuration:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
matrix_synapse_configuration_extension_yaml: |
|
||||||
|
experimental_features:
|
||||||
|
msc2716_enabled: true
|
||||||
|
```
|
||||||
|
```yaml
|
||||||
|
matrix_mautrix_whatsapp_configuration_extension_yaml:
|
||||||
|
bridge:
|
||||||
|
history_sync:
|
||||||
|
backfill: true
|
||||||
|
```
|
||||||
|
|
||||||
## Set up Double Puppeting
|
## Set up Double Puppeting
|
||||||
|
|
||||||
|
@ -37,6 +37,7 @@ matrix_synapse_ext_password_provider_rest_auth_endpoint: "http://matrix-corporal
|
|||||||
|
|
||||||
matrix_corporal_enabled: true
|
matrix_corporal_enabled: true
|
||||||
|
|
||||||
|
# See below for an example of how to use a locally-stored static policy
|
||||||
matrix_corporal_policy_provider_config: |
|
matrix_corporal_policy_provider_config: |
|
||||||
{
|
{
|
||||||
"Type": "http",
|
"Type": "http",
|
||||||
@ -74,10 +75,48 @@ Matrix Corporal operates with a specific Matrix user on your server.
|
|||||||
By default, it's `matrix-corporal` (controllable by the `matrix_corporal_reconciliation_user_id_local_part` setting, see above).
|
By default, it's `matrix-corporal` (controllable by the `matrix_corporal_reconciliation_user_id_local_part` setting, see above).
|
||||||
No matter what Matrix user id you configure to run it with, make sure that:
|
No matter what Matrix user id you configure to run it with, make sure that:
|
||||||
|
|
||||||
- the Matrix Corporal user is created by [registering it](registering-users.md). Use a password you remember, as you'll need to log in from time to time to create or join rooms
|
- the Matrix Corporal user is created by [registering it](registering-users.md) **with administrator privileges**. Use a password you remember, as you'll need to log in from time to time to create or join rooms
|
||||||
|
|
||||||
- the Matrix Corporal user is joined and has Admin/Moderator-level access to any rooms you want it to manage
|
- the Matrix Corporal user is joined and has Admin/Moderator-level access to any rooms you want it to manage
|
||||||
|
|
||||||
|
### Using a locally-stored static policy
|
||||||
|
|
||||||
|
If you'd like to use a [static policy file](https://github.com/devture/matrix-corporal/blob/master/docs/policy-providers.md#static-file-pull-style-policy-provider), you can use a configuration like this:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
matrix_corporal_policy_provider_config: |
|
||||||
|
{
|
||||||
|
"Type": "static_file",
|
||||||
|
"Path": "/etc/matrix-corporal/policy.json"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Modify the policy below as you see fit
|
||||||
|
matrix_aux_file_definitions:
|
||||||
|
- dest: "{{ matrix_corporal_config_dir_path }}/policy.json"
|
||||||
|
content: |
|
||||||
|
{
|
||||||
|
"schemaVersion": 1,
|
||||||
|
"identificationStamp": "stamp-1",
|
||||||
|
"flags": {
|
||||||
|
"allowCustomUserDisplayNames": false,
|
||||||
|
"allowCustomUserAvatars": false,
|
||||||
|
"forbidRoomCreation": false,
|
||||||
|
"forbidEncryptedRoomCreation": true,
|
||||||
|
"forbidUnencryptedRoomCreation": false,
|
||||||
|
"allowCustomPassthroughUserPasswords": true,
|
||||||
|
"allowUnauthenticatedPasswordResets": false,
|
||||||
|
"allow3pidLogin": false
|
||||||
|
},
|
||||||
|
"managedCommunityIds": [],
|
||||||
|
"managedRoomIds": [],
|
||||||
|
"users": []
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
To learn more about what the policy configuration, see the matrix-corporal documentation on [policy](https://github.com/devture/matrix-corporal/blob/master/docs/policy.md).
|
||||||
|
|
||||||
|
Each time you update the policy in your `vars.yml` file, you'd need to re-run the playbook and restart matrix-corporal (`--tags=setup-all,start` or `--tags=setup-aux-files,setup-corporal,start`).
|
||||||
|
|
||||||
|
|
||||||
## Matrix Corporal files
|
## Matrix Corporal files
|
||||||
|
|
||||||
|
5
gpg/open_vault.sh
Executable file
5
gpg/open_vault.sh
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e -u
|
||||||
|
|
||||||
|
gpg2 --batch --use-agent --decrypt $(dirname $0)/vault_passphrase.gpg 2>/dev/null
|
18
gpg/vault_passphrase.gpg
Normal file
18
gpg/vault_passphrase.gpg
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
|
hQIMAxEs7W/4x4lxARAAssinIzR2rGs+Qkm0Q2tRdSXSXRx3OhH+2T5p0Rz3YkqU
|
||||||
|
iyiUtyT/Ll7RMUAlAEDZITvirXe4ZZImDcxQegEzFgO7BowQYJDRdhaRmLKZpiuQ
|
||||||
|
foRnJAAR12sf49arjJjaBQb91ViOp5MkxAtXiiqWyXwSSII+cV88flMq143cFmfC
|
||||||
|
C5OdIQd3SqrbFhGRTjUzoIMqnJH8xksjwph9GS811dY14rQv5X1Ybt5zehMJ7/m/
|
||||||
|
luLNg2zgQgYOUxcovddCVMI54ThXyDubDox/5xLvVjyVOFHgwC/VLn+QXHuPY/r5
|
||||||
|
+rVzz/30eq0uOLKD3LnDBQskCWRVWGC2ulKaZtlylBq6KRzIM6c6+VPSHCjoFyES
|
||||||
|
RRpRHeIXGLs31eLkr8dc+VNbPKpMsjm/E/4ZVE2JBpy7S/kh1XYVQxT6ahDKT1tD
|
||||||
|
4YN9O0JyNXzjiyNaTTLwNGh5+ICEd3ZCfa4O/og2LySGPOw6mX8ukgP029LHVp6+
|
||||||
|
0tRwSWiIM3US/NIVGA+o9e9I/I5Bp/cnzJgd7faUIlzcVPP+euCbo4GsYWpX3Nca
|
||||||
|
eRcr7AVY3wwuZtl7/s8KbQKk0ulLxS4Lo2XmdpQl8CPGwASdbMf/H8B256+xiUQ3
|
||||||
|
ml400ZaCC7Loeduwl1ez1H/dFFzmpUziaxxtWW4aFtOUYhGeSCTu6ZIgxVq3eBnS
|
||||||
|
jAGv8bt+0Xnrpih3mZWM92cw2VKfzYD9WG+dCB4DtZMKhl1ub2bkeTC/B9F+QuP6
|
||||||
|
anlonYHs2wmPXzjcx8ajonbYrYXanoNRHDId6OqVAbjYqbua6TG6H9LUFweIj1RV
|
||||||
|
yhUPejzhA8xEB0nUcKJZKLvuqvwPbr06GODnAKY5TQ4yILMAnBx0pNzfQNzo
|
||||||
|
=Cecg
|
||||||
|
-----END PGP MESSAGE-----
|
@ -19,9 +19,9 @@ matrix_container_global_registry_prefix: "docker.io/"
|
|||||||
|
|
||||||
matrix_identity_server_url: "{{ ('https://' + matrix_server_fqn_matrix) if matrix_ma1sd_enabled else None }}"
|
matrix_identity_server_url: "{{ ('https://' + matrix_server_fqn_matrix) if matrix_ma1sd_enabled else None }}"
|
||||||
|
|
||||||
# If Synapse workers are enabled and matrix-nginx-proxy is disabled, certain APIs may not work over 'http://matrix-synapse:8008'.
|
# If Synapse workers are enabled and matrix-nginx-proxy is disabled, certain APIs may not work over 'http://matrix-synapse:{{ matrix_synapse_container_client_api_port }}'.
|
||||||
# This is because we explicitly disable them for the main Synapse process.
|
# This is because we explicitly disable them for the main Synapse process.
|
||||||
matrix_homeserver_container_url: "{{ 'http://matrix-nginx-proxy:12080' if matrix_nginx_proxy_enabled else 'http://matrix-synapse:8008' }}"
|
matrix_homeserver_container_url: "{{ 'http://matrix-nginx-proxy:12080' if matrix_nginx_proxy_enabled else 'http://matrix-synapse:'+ matrix_synapse_container_client_api_port|string }}"
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
#
|
#
|
||||||
@ -113,6 +113,7 @@ matrix_appservice_webhooks_container_http_host_bind_port: "{{ '' if matrix_nginx
|
|||||||
|
|
||||||
matrix_appservice_webhooks_appservice_token: "{{ matrix_synapse_macaroon_secret_key | password_hash('sha512', 'webhook.as.token') | to_uuid }}"
|
matrix_appservice_webhooks_appservice_token: "{{ matrix_synapse_macaroon_secret_key | password_hash('sha512', 'webhook.as.token') | to_uuid }}"
|
||||||
|
|
||||||
|
matrix_appservice_webhooks_homeserver_url: "http://matrix-synapse:{{ matrix_synapse_container_client_api_port }}"
|
||||||
matrix_appservice_webhooks_homeserver_token: "{{ matrix_synapse_macaroon_secret_key | password_hash('sha512', 'webhook.hs.token') | to_uuid }}"
|
matrix_appservice_webhooks_homeserver_token: "{{ matrix_synapse_macaroon_secret_key | password_hash('sha512', 'webhook.hs.token') | to_uuid }}"
|
||||||
|
|
||||||
matrix_appservice_webhooks_id_token: "{{ matrix_synapse_macaroon_secret_key | password_hash('sha512', 'webhook.id.token') | to_uuid }}"
|
matrix_appservice_webhooks_id_token: "{{ matrix_synapse_macaroon_secret_key | password_hash('sha512', 'webhook.id.token') | to_uuid }}"
|
||||||
@ -151,6 +152,7 @@ matrix_appservice_slack_container_http_host_bind_port: "{{ '' if matrix_nginx_pr
|
|||||||
|
|
||||||
matrix_appservice_slack_appservice_token: "{{ matrix_synapse_macaroon_secret_key | password_hash('sha512', 'slack.as.token') | to_uuid }}"
|
matrix_appservice_slack_appservice_token: "{{ matrix_synapse_macaroon_secret_key | password_hash('sha512', 'slack.as.token') | to_uuid }}"
|
||||||
|
|
||||||
|
matrix_appservice_slack_homeserver_url: "http://matrix-synapse:{{ matrix_synapse_container_client_api_port }}"
|
||||||
matrix_appservice_slack_homeserver_token: "{{ matrix_synapse_macaroon_secret_key | password_hash('sha512', 'slack.hs.token') | to_uuid }}"
|
matrix_appservice_slack_homeserver_token: "{{ matrix_synapse_macaroon_secret_key | password_hash('sha512', 'slack.hs.token') | to_uuid }}"
|
||||||
|
|
||||||
matrix_appservice_slack_id_token: "{{ matrix_synapse_macaroon_secret_key | password_hash('sha512', 'slack.id.token') | to_uuid }}"
|
matrix_appservice_slack_id_token: "{{ matrix_synapse_macaroon_secret_key | password_hash('sha512', 'slack.id.token') | to_uuid }}"
|
||||||
@ -567,6 +569,7 @@ matrix_sms_bridge_systemd_required_services_list: |
|
|||||||
|
|
||||||
matrix_sms_bridge_appservice_token: "{{ matrix_synapse_macaroon_secret_key | password_hash('sha512', 'sms.as.token') | to_uuid }}"
|
matrix_sms_bridge_appservice_token: "{{ matrix_synapse_macaroon_secret_key | password_hash('sha512', 'sms.as.token') | to_uuid }}"
|
||||||
|
|
||||||
|
matrix_sms_bridge_homeserver_port: "{{ matrix_synapse_container_client_api_port }}"
|
||||||
matrix_sms_bridge_homeserver_token: "{{ matrix_synapse_macaroon_secret_key | password_hash('sha512', 'sms.hs.token') | to_uuid }}"
|
matrix_sms_bridge_homeserver_token: "{{ matrix_synapse_macaroon_secret_key | password_hash('sha512', 'sms.hs.token') | to_uuid }}"
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
@ -1047,6 +1050,8 @@ matrix_dimension_enabled: false
|
|||||||
# the Dimension HTTP port to the local host.
|
# the Dimension HTTP port to the local host.
|
||||||
matrix_dimension_container_http_host_bind_port: "{{ '' if matrix_nginx_proxy_enabled else '127.0.0.1:8184' }}"
|
matrix_dimension_container_http_host_bind_port: "{{ '' if matrix_nginx_proxy_enabled else '127.0.0.1:8184' }}"
|
||||||
|
|
||||||
|
matrix_dimension_homeserver_federationUrl: "http://matrix-synapse:{{matrix_synapse_container_federation_api_plain_port|string}}"
|
||||||
|
|
||||||
matrix_integration_manager_rest_url: "{{ matrix_dimension_integrations_rest_url if matrix_dimension_enabled else None }}"
|
matrix_integration_manager_rest_url: "{{ matrix_dimension_integrations_rest_url if matrix_dimension_enabled else None }}"
|
||||||
matrix_integration_manager_ui_url: "{{ matrix_dimension_integrations_ui_url if matrix_dimension_enabled else None }}"
|
matrix_integration_manager_ui_url: "{{ matrix_dimension_integrations_ui_url if matrix_dimension_enabled else None }}"
|
||||||
|
|
||||||
@ -1212,7 +1217,8 @@ matrix_ma1sd_container_image_self_build: "{{ matrix_architecture != 'amd64' }}"
|
|||||||
# Normally, matrix-nginx-proxy is enabled and nginx can reach ma1sd over the container network.
|
# Normally, matrix-nginx-proxy is enabled and nginx can reach ma1sd over the container network.
|
||||||
# If matrix-nginx-proxy is not enabled, or you otherwise have a need for it, you can expose
|
# If matrix-nginx-proxy is not enabled, or you otherwise have a need for it, you can expose
|
||||||
# ma1sd's web-server port.
|
# ma1sd's web-server port.
|
||||||
matrix_ma1sd_container_http_host_bind_port: "{{ '' if matrix_nginx_proxy_enabled else '127.0.0.1:' + matrix_ma1sd_default_port|string }}"
|
matrix_ma1sd_container_http_host_bind_port: "{{ '' if matrix_nginx_proxy_enabled else '127.0.0.1:' + matrix_ma1sd_container_port|string }}"
|
||||||
|
|
||||||
|
|
||||||
# We enable Synapse integration via its Postgres database by default.
|
# We enable Synapse integration via its Postgres database by default.
|
||||||
# When using another Identity store, you might wish to disable this and define
|
# When using another Identity store, you might wish to disable this and define
|
||||||
@ -1294,8 +1300,8 @@ matrix_nginx_proxy_proxy_matrix_corporal_api_addr_with_container: "matrix-corpor
|
|||||||
matrix_nginx_proxy_proxy_matrix_corporal_api_addr_sans_container: "127.0.0.1:41081"
|
matrix_nginx_proxy_proxy_matrix_corporal_api_addr_sans_container: "127.0.0.1:41081"
|
||||||
|
|
||||||
matrix_nginx_proxy_proxy_matrix_identity_api_enabled: "{{ matrix_ma1sd_enabled }}"
|
matrix_nginx_proxy_proxy_matrix_identity_api_enabled: "{{ matrix_ma1sd_enabled }}"
|
||||||
matrix_nginx_proxy_proxy_matrix_identity_api_addr_with_container: "matrix-ma1sd:{{ matrix_ma1sd_default_port }}"
|
matrix_nginx_proxy_proxy_matrix_identity_api_addr_with_container: "matrix-ma1sd:{{ matrix_ma1sd_container_port }}"
|
||||||
matrix_nginx_proxy_proxy_matrix_identity_api_addr_sans_container: "127.0.0.1:{{ matrix_ma1sd_default_port }}"
|
matrix_nginx_proxy_proxy_matrix_identity_api_addr_sans_container: "127.0.0.1:{{ matrix_ma1sd_container_port }}"
|
||||||
|
|
||||||
# By default, we do TLS termination for the Matrix Federation API (port 8448) at matrix-nginx-proxy.
|
# By default, we do TLS termination for the Matrix Federation API (port 8448) at matrix-nginx-proxy.
|
||||||
# Unless this is handled there OR Synapse's federation listener port is disabled, we'll reverse-proxy.
|
# Unless this is handled there OR Synapse's federation listener port is disabled, we'll reverse-proxy.
|
||||||
@ -1306,6 +1312,12 @@ matrix_nginx_proxy_proxy_matrix_federation_api_addr_sans_container: "127.0.0.1:1
|
|||||||
# Settings controlling matrix-synapse-proxy.conf
|
# Settings controlling matrix-synapse-proxy.conf
|
||||||
matrix_nginx_proxy_proxy_synapse_enabled: "{{ matrix_synapse_enabled }}"
|
matrix_nginx_proxy_proxy_synapse_enabled: "{{ matrix_synapse_enabled }}"
|
||||||
|
|
||||||
|
matrix_nginx_proxy_proxy_synapse_client_api_addr_with_container: "matrix-synapse:{{ matrix_synapse_container_client_api_port }}"
|
||||||
|
matrix_nginx_proxy_proxy_synapse_client_api_addr_sans_container: "127.0.0.1:{{ matrix_synapse_container_client_api_port }}"
|
||||||
|
|
||||||
|
matrix_nginx_proxy_proxy_synapse_federation_api_addr_with_container: "matrix-synapse:{{matrix_synapse_container_federation_api_plain_port|string}}"
|
||||||
|
matrix_nginx_proxy_proxy_synapse_federation_api_addr_sans_container: "localhost:{{matrix_synapse_container_federation_api_plain_port|string}}"
|
||||||
|
|
||||||
# When matrix-nginx-proxy is disabled, the actual port number that the vhost uses may begin to matter.
|
# When matrix-nginx-proxy is disabled, the actual port number that the vhost uses may begin to matter.
|
||||||
matrix_nginx_proxy_proxy_matrix_federation_port: "{{ matrix_federation_public_port }}"
|
matrix_nginx_proxy_proxy_matrix_federation_port: "{{ matrix_federation_public_port }}"
|
||||||
|
|
||||||
@ -1709,18 +1721,18 @@ matrix_synapse_container_image_self_build: "{{ matrix_architecture not in ['arm6
|
|||||||
|
|
||||||
# When ma1sd is enabled, we can use it to validate email addresses and phone numbers.
|
# When ma1sd is enabled, we can use it to validate email addresses and phone numbers.
|
||||||
# Synapse can validate email addresses by itself as well, but it's probably not what we want by default when we have an identity server.
|
# Synapse can validate email addresses by itself as well, but it's probably not what we want by default when we have an identity server.
|
||||||
matrix_synapse_account_threepid_delegates_email: "{{ 'http://matrix-ma1sd:' + matrix_ma1sd_default_port|string if matrix_ma1sd_enabled else '' }}"
|
matrix_synapse_account_threepid_delegates_email: "{{ 'http://matrix-ma1sd:' + matrix_ma1sd_container_port|string if matrix_ma1sd_enabled else '' }}"
|
||||||
matrix_synapse_account_threepid_delegates_msisdn: "{{ 'http://matrix-ma1sd:' + matrix_ma1sd_default_port|string if matrix_ma1sd_enabled else '' }}"
|
matrix_synapse_account_threepid_delegates_msisdn: "{{ 'http://matrix-ma1sd:' + matrix_ma1sd_container_port|string if matrix_ma1sd_enabled else '' }}"
|
||||||
|
|
||||||
# Normally, matrix-nginx-proxy is enabled and nginx can reach Synapse over the container network.
|
# Normally, matrix-nginx-proxy is enabled and nginx can reach Synapse over the container network.
|
||||||
# If matrix-nginx-proxy is not enabled, or you otherwise have a need for it,
|
# If matrix-nginx-proxy is not enabled, or you otherwise have a need for it,
|
||||||
# you can expose Synapse's ports to the host.
|
# you can expose Synapse's ports to the host.
|
||||||
#
|
#
|
||||||
# For exposing the Matrix Client API's port (plain HTTP) to the local host.
|
# For exposing the Matrix Client API's port (plain HTTP) to the local host.
|
||||||
matrix_synapse_container_client_api_host_bind_port: "{{ '' if matrix_nginx_proxy_enabled else '127.0.0.1:8008' }}"
|
matrix_synapse_container_client_api_host_bind_port: "{{ '' if matrix_nginx_proxy_enabled else '127.0.0.1:' + matrix_synapse_container_client_api_port|string }}"
|
||||||
#
|
#
|
||||||
# For exposing the Matrix Federation API's plain port (plain HTTP) to the local host.
|
# For exposing the Matrix Federation API's plain port (plain HTTP) to the local host.
|
||||||
matrix_synapse_container_federation_api_plain_host_bind_port: "{{ '' if matrix_nginx_proxy_enabled else '127.0.0.1:8048' }}"
|
matrix_synapse_container_federation_api_plain_host_bind_port: "{{ '' if matrix_nginx_proxy_enabled else '127.0.0.1:' + matrix_synapse_container_federation_api_plain_port|string }}"
|
||||||
#
|
#
|
||||||
# For exposing the Matrix Federation API's TLS port (HTTPS) to the internet on all network interfaces.
|
# For exposing the Matrix Federation API's TLS port (HTTPS) to the internet on all network interfaces.
|
||||||
matrix_synapse_container_federation_api_tls_host_bind_port: "{{ matrix_federation_public_port if (matrix_synapse_federation_enabled and matrix_synapse_tls_federation_listener_enabled) else '' }}"
|
matrix_synapse_container_federation_api_tls_host_bind_port: "{{ matrix_federation_public_port if (matrix_synapse_federation_enabled and matrix_synapse_tls_federation_listener_enabled) else '' }}"
|
||||||
|
339
inventory/host_vars/matrix.finallycoffee.eu/vars.yml
Normal file
339
inventory/host_vars/matrix.finallycoffee.eu/vars.yml
Normal file
@ -0,0 +1,339 @@
|
|||||||
|
#
|
||||||
|
# General config
|
||||||
|
# Domain of the matrix server and SSL config
|
||||||
|
#
|
||||||
|
matrix_domain: finallycoffee.eu
|
||||||
|
matrix_ssl_retrieval_method: none
|
||||||
|
matrix_nginx_proxy_enabled: false
|
||||||
|
matrix_base_data_path: "{{ vault_matrix_base_data_path }}"
|
||||||
|
matrix_server_fqn_element: "chat.{{ matrix_domain }}"
|
||||||
|
|
||||||
|
web_user: "web"
|
||||||
|
revproxy_autoload_dir: "/vault/services/web/sites.d"
|
||||||
|
|
||||||
|
#matrix_client_element_version: v1.8.4
|
||||||
|
#matrix_synapse_docker_image: "{{ matrix_synapse_docker_image_name_prefix }}matrixdotorg/synapse:v1.37.1"
|
||||||
|
#matrix_mautrix_telegram_version: v0.10.0
|
||||||
|
|
||||||
|
#
|
||||||
|
# General Synapse config
|
||||||
|
#
|
||||||
|
matrix_postgres_connection_password: "{{ vault_matrix_postgres_connection_password }}"
|
||||||
|
# A secret used to protect access keys issued by the server.
|
||||||
|
matrix_synapse_macaroon_secret_key: "{{ vault_matrix_synapse_macaroon_secret_key }}"
|
||||||
|
# Make synapse accept larger media aswell
|
||||||
|
matrix_synapse_max_upload_size_mb: 100
|
||||||
|
# Enable metrics at (default) :9100/_synapse/metrics
|
||||||
|
matrix_synapse_metrics_enabled: true
|
||||||
|
matrix_synapse_enable_group_creation: true
|
||||||
|
matrix_synapse_turn_shared_secret: "{{ vault_matrix_coturn_turn_static_auth_secret }}"
|
||||||
|
matrix_synapse_turn_uris:
|
||||||
|
- "turns:voip.matrix.finallycoffee.eu?transport=udp"
|
||||||
|
- "turns:voip.matrix.finallycoffee.eu?transport=tcp"
|
||||||
|
# Auto-join all users into those rooms
|
||||||
|
matrix_synapse_auto_join_rooms:
|
||||||
|
- "#welcome:finallycoffee.eu"
|
||||||
|
- "#announcements:finallycoffee.eu"
|
||||||
|
|
||||||
|
## Synapse rate limits
|
||||||
|
matrix_synapse_rc_federation:
|
||||||
|
window_size: 1000
|
||||||
|
sleep_limit: 25
|
||||||
|
sleep_delay: 500
|
||||||
|
reject_limit: 50
|
||||||
|
concurrent: 5
|
||||||
|
matrix_synapse_rc_message:
|
||||||
|
per_second: 0.5
|
||||||
|
burst_count: 25
|
||||||
|
|
||||||
|
## Synapse cache tuning
|
||||||
|
matrix_synapse_caches_global_factor: 0.7
|
||||||
|
matrix_synapse_event_cache_size: "200K"
|
||||||
|
|
||||||
|
## Synapse workers
|
||||||
|
matrix_synapse_workers_enabled: true
|
||||||
|
matrix_synapse_workers_preset: "little-federation-helper"
|
||||||
|
matrix_synapse_workers_generic_worker_client_server_count: 0
|
||||||
|
matrix_synapse_workers_media_repository_workers_count: 0
|
||||||
|
matrix_synapse_workers_federation_sender_workers_count: 1
|
||||||
|
matrix_synapse_workers_pusher_workers_count: 0
|
||||||
|
matrix_synapse_workers_appservice_workers_count: 1
|
||||||
|
|
||||||
|
# Static secret auth for matrix-synapse-shared-secret-auth
|
||||||
|
matrix_synapse_ext_password_provider_shared_secret_auth_enabled: true
|
||||||
|
matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret: "{{ vault_matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret }}"
|
||||||
|
matrix_synapse_ext_password_provider_rest_auth_enabled: true
|
||||||
|
matrix_synapse_ext_password_provider_rest_auth_endpoint: "http://matrix-ma1sd:8090"
|
||||||
|
matrix_synapse_ext_password_provider_rest_auth_registration_enforce_lowercase: false
|
||||||
|
matrix_synapse_ext_password_provider_rest_auth_registration_profile_name_autofill: true
|
||||||
|
matrix_synapse_ext_password_provider_rest_auth_login_profile_name_autofill: false
|
||||||
|
|
||||||
|
# Enable experimental spaces support
|
||||||
|
matrix_synapse_configuration_extension_yaml: |
|
||||||
|
experimental_features:
|
||||||
|
spaces_enabled: true
|
||||||
|
|
||||||
|
#
|
||||||
|
# synapse-admin tool
|
||||||
|
#
|
||||||
|
matrix_synapse_admin_enabled: true
|
||||||
|
matrix_synapse_admin_container_http_host_bind_port: 8985
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# VoIP / CoTURN config
|
||||||
|
#
|
||||||
|
# A shared secret (between Synapse and Coturn) used for authentication.
|
||||||
|
matrix_coturn_turn_static_auth_secret: "{{ vault_matrix_coturn_turn_static_auth_secret }}"
|
||||||
|
# Disable coturn, as we use own instance
|
||||||
|
matrix_coturn_enabled: false
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# dimension (integration manager) config
|
||||||
|
#
|
||||||
|
matrix_dimension_enabled: true
|
||||||
|
matrix_dimension_admins: "{{ vault_matrix_dimension_admins }}"
|
||||||
|
matrix_server_fqn_dimension: "dimension.matrix.{{ matrix_domain }}"
|
||||||
|
matrix_dimension_access_token: "{{ vault_matrix_dimension_access_token }}"
|
||||||
|
matrix_dimension_configuration_extension_yaml: |
|
||||||
|
telegram:
|
||||||
|
botToken: "{{ vault_matrix_dimension_configuration_telegram_bot_token }}"
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# mautrix-whatsapp config
|
||||||
|
#
|
||||||
|
matrix_mautrix_whatsapp_enabled: true
|
||||||
|
matrix_mautrix_whatsapp_container_http_monitoring_host_bind_port: 9402
|
||||||
|
matrix_mautrix_whatsapp_container_extra_arguments:
|
||||||
|
- "-p 127.0.0.1:{{ matrix_mautrix_whatsapp_container_http_monitoring_host_bind_port }}:{{ matrix_mautrix_whatsapp_container_http_monitoring_host_bind_port }}"
|
||||||
|
matrix_mautrix_whatsapp_configuration_extension_yaml: |
|
||||||
|
bridge:
|
||||||
|
displayname_template: "{% raw %}{{.Name}} ({{if .Notify}}{{.Notify}}{{else}}{{.Jid}}{{end}}) (via WhatsApp){% endraw %}"
|
||||||
|
max_connection_attempts: 5
|
||||||
|
connection_timeout: 30
|
||||||
|
contact_wait_delay: 5
|
||||||
|
private_chat_portal_meta: true
|
||||||
|
login_shared_secret: "{{ matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret }}"
|
||||||
|
logging:
|
||||||
|
print_level: info
|
||||||
|
metrics:
|
||||||
|
enabled: true
|
||||||
|
listen: 0.0.0.0:{{ matrix_mautrix_whatsapp_container_http_monitoring_host_bind_port }}
|
||||||
|
whatsapp:
|
||||||
|
os_name: Linux mautrix-whatsapp
|
||||||
|
browser_name: Chrome
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# mautrix-telegram config
|
||||||
|
#
|
||||||
|
matrix_mautrix_telegram_enabled: true
|
||||||
|
matrix_mautrix_telegram_api_id: "{{ vault_matrix_mautrix_telegram_api_id }}"
|
||||||
|
matrix_mautrix_telegram_api_hash: "{{ vault_matrix_mautrix_telegram_api_hash }}"
|
||||||
|
matrix_mautrix_telegram_public_endpoint: '/bridge/telegram'
|
||||||
|
matrix_mautrix_telegram_container_http_monitoring_host_bind_port: 9401
|
||||||
|
matrix_mautrix_telegram_container_http_host_bind_port_public: 8980
|
||||||
|
matrix_mautrix_telegram_container_extra_arguments:
|
||||||
|
- "-p 127.0.0.1:{{ matrix_mautrix_telegram_container_http_monitoring_host_bind_port }}:{{ matrix_mautrix_telegram_container_http_monitoring_host_bind_port }}"
|
||||||
|
- "-p 127.0.0.1:{{ matrix_mautrix_telegram_container_http_host_bind_port_public }}:80"
|
||||||
|
matrix_mautrix_telegram_configuration_extension_yaml: |
|
||||||
|
bridge:
|
||||||
|
displayname_template: "{displayname} (via Telegram)"
|
||||||
|
parallel_file_transfer: false
|
||||||
|
inline_images: false
|
||||||
|
image_as_file_size: 20
|
||||||
|
delivery_receipts: true
|
||||||
|
login_shared_secret: "{{ matrix_synapse_ext_password_provider_shared_secret_auth_shared_secret }}"
|
||||||
|
animated_sticker:
|
||||||
|
target: webm
|
||||||
|
encryption:
|
||||||
|
allow: true
|
||||||
|
default: true
|
||||||
|
permissions:
|
||||||
|
"@transcaffeine:finallycoffee.eu": "admin"
|
||||||
|
"gruenhage.xyz": "full"
|
||||||
|
logging:
|
||||||
|
root:
|
||||||
|
level: INFO
|
||||||
|
metrics:
|
||||||
|
enabled: true
|
||||||
|
listen_port: {{ matrix_mautrix_telegram_container_http_monitoring_host_bind_port }}
|
||||||
|
# permissions: "{{ vault_matrix_mautrix_telegram_permission_map | from_yaml }}"
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# mautrix-signal config
|
||||||
|
#
|
||||||
|
matrix_mautrix_signal_enabled: true
|
||||||
|
matrix_mautrix_signal_container_http_monitoring_host_bind_port: 9408
|
||||||
|
matrix_mautrix_signal_container_extra_arguments:
|
||||||
|
- "-p 127.0.0.1:{{ matrix_mautrix_signal_container_http_monitoring_host_bind_port }}:{{ matrix_mautrix_signal_container_http_monitoring_host_bind_port }}"
|
||||||
|
matrix_mautrix_signal_configuration_extension_yaml: |
|
||||||
|
bridge:
|
||||||
|
displayname_template: "{displayname} (via Signal)"
|
||||||
|
community_id: "+signal:finallycoffee.eu"
|
||||||
|
encryption:
|
||||||
|
allow: true
|
||||||
|
default: true
|
||||||
|
key_sharing:
|
||||||
|
allow: true
|
||||||
|
require_verification: false
|
||||||
|
delivery_receipts: true
|
||||||
|
logging:
|
||||||
|
root:
|
||||||
|
level: INFO
|
||||||
|
metrics:
|
||||||
|
enabled: true
|
||||||
|
listen_port: {{ matrix_mautrix_signal_container_http_monitoring_host_bind_port }}
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# mx-puppet-instagram configuration
|
||||||
|
#
|
||||||
|
matrix_mx_puppet_instagram_enabled: true
|
||||||
|
matrix_mx_puppet_instagram_container_http_monitoring_host_bind_port: 9403
|
||||||
|
matrix_mx_puppet_instagram_container_extra_arguments:
|
||||||
|
- "-p 127.0.0.1:{{ matrix_mx_puppet_instagram_container_http_monitoring_host_bind_port }}:{{ matrix_mx_puppet_instagram_container_http_monitoring_host_bind_port }}"
|
||||||
|
matrix_mx_puppet_instagram_configuration_extension_yaml: |
|
||||||
|
bridge:
|
||||||
|
enableGroupSync: true
|
||||||
|
avatarUrl: mxc://finallycoffee.eu/acmiSAinuHDOULofFFeolTvr
|
||||||
|
metrics:
|
||||||
|
enabled: true
|
||||||
|
port: {{ matrix_mx_puppet_instagram_container_http_monitoring_host_bind_port }}
|
||||||
|
path: /metrics
|
||||||
|
presence:
|
||||||
|
enabled: true
|
||||||
|
interval: 3000
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# mx-puppet-skype configuration
|
||||||
|
#
|
||||||
|
matrix_mx_puppet_skype_enabled: true
|
||||||
|
matrix_mx_puppet_skype_container_http_monitoring_host_bind_port: 9405
|
||||||
|
matrix_mx_puppet_skype_container_extra_arguments:
|
||||||
|
- "-p 127.0.0.1:{{ matrix_mx_puppet_skype_container_http_monitoring_host_bind_port }}:{{ matrix_mx_puppet_skype_container_http_monitoring_host_bind_port }}"
|
||||||
|
matrix_mx_puppet_skype_configuration_extension_yaml: |
|
||||||
|
bridge:
|
||||||
|
enableGroupSync: true
|
||||||
|
avatarUrl: mxc://finallycoffee.eu/jjXDuFqtpFOBOnywoHgzTuYt
|
||||||
|
metrics:
|
||||||
|
enabled: true
|
||||||
|
port: {{ matrix_mx_puppet_skype_container_http_monitoring_host_bind_port }}
|
||||||
|
path: /metrics
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# mx-puppet-discord configuration
|
||||||
|
#
|
||||||
|
matrix_mx_puppet_discord_enabled: true
|
||||||
|
matrix_mx_puppet_discord_client_id: "{{ vault_matrix_mx_puppet_discord_client_id }}"
|
||||||
|
matrix_mx_puppet_discord_client_secret: "{{ vault_matrix_mx_puppet_discord_client_secret }}"
|
||||||
|
matrix_mx_puppet_discord_container_http_monitoring_host_bind_port: 9404
|
||||||
|
matrix_mx_puppet_discord_container_extra_arguments:
|
||||||
|
- "-p 127.0.0.1:{{ matrix_mx_puppet_discord_container_http_monitoring_host_bind_port }}:{{ matrix_mx_puppet_discord_container_http_monitoring_host_bind_port }}"
|
||||||
|
matrix_mx_puppet_discord_configuration_extension_yaml: |
|
||||||
|
bridge:
|
||||||
|
enableGroupSync: true
|
||||||
|
avatarUrl: mxc://finallycoffee.eu/BxcAAhjXmglMbtthStEHtCzd
|
||||||
|
metrics:
|
||||||
|
enabled: true
|
||||||
|
port: {{ matrix_mx_puppet_discord_container_http_monitoring_host_bind_port }}
|
||||||
|
path: /metrics
|
||||||
|
limits:
|
||||||
|
maxAutojoinUsers: 500
|
||||||
|
roomUserAutojoinDelay: 50
|
||||||
|
presence:
|
||||||
|
enabled: true
|
||||||
|
interval: 3000
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# mx-puppet-slack configuration
|
||||||
|
#
|
||||||
|
matrix_mx_puppet_slack_enabled: true
|
||||||
|
matrix_mx_puppet_slack_client_id: "{{ vault_matrix_mx_puppet_slack_client_id }}"
|
||||||
|
matrix_mx_puppet_slack_client_secret: "{{ vault_matrix_mx_puppet_slack_client_secret }}"
|
||||||
|
matrix_mx_puppet_slack_redirect_path: '/bridge/slack/oauth'
|
||||||
|
matrix_mx_puppet_slack_container_http_auth_host_bind_port: 8981
|
||||||
|
matrix_mx_puppet_slack_container_http_monitoring_host_bind_port: 9406
|
||||||
|
matrix_mx_puppet_slack_container_extra_arguments:
|
||||||
|
- "-p 127.0.0.1:{{ matrix_mx_puppet_slack_container_http_monitoring_host_bind_port }}:{{ matrix_mx_puppet_slack_container_http_monitoring_host_bind_port }}"
|
||||||
|
- "-p 127.0.0.1:{{ matrix_mx_puppet_slack_container_http_auth_host_bind_port }}:8008"
|
||||||
|
matrix_mx_puppet_slack_configuration_extension_yaml: |
|
||||||
|
bridge:
|
||||||
|
enableGroupSync: true
|
||||||
|
metrics:
|
||||||
|
enabled: true
|
||||||
|
port: {{ matrix_mx_puppet_slack_container_http_monitoring_host_bind_port }}
|
||||||
|
path: /metrics
|
||||||
|
limits:
|
||||||
|
maxAutojoinUsers: 500
|
||||||
|
roomUserAutojoinDelay: 50
|
||||||
|
presence:
|
||||||
|
enabled: true
|
||||||
|
interval: 3000
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Element web configuration
|
||||||
|
#
|
||||||
|
# Branding config
|
||||||
|
matrix_client_element_brand: "Chat"
|
||||||
|
matrix_client_element_default_theme: "dark"
|
||||||
|
matrix_client_element_themes_enabled: true
|
||||||
|
matrix_client_element_welcome_headline: "Welcome to chat.finallycoffee.eu"
|
||||||
|
matrix_client_element_welcome_text: |
|
||||||
|
Decentralised, encrypted chat & collaboration,<br />
|
||||||
|
hosted on finallycoffee.eu, powered by element.io &
|
||||||
|
<a href="https://matrix.org" target="_blank" rel="noreferrer noopener">
|
||||||
|
<img width="79" height="34" alt="[matrix]" style="padding-left: 1px;vertical-align: middle" src="welcome/images/matrix.svg" />
|
||||||
|
</a>
|
||||||
|
matrix_client_element_welcome_logo: "welcome/images/logo.png"
|
||||||
|
matrix_client_element_welcome_logo_link: "https://{{ matrix_domain }}"
|
||||||
|
matrix_client_element_branding_authHeaderLogoUrl: "welcome/images/logo.png"
|
||||||
|
matrix_client_element_branding_welcomeBackgroundUrl: "welcome/images/background.jpg"
|
||||||
|
matrix_client_element_container_extra_arguments:
|
||||||
|
- "-v {{ matrix_client_element_data_path }}/background.jpg:/app/{{ matrix_client_element_branding_welcomeBackgroundUrl }}:ro"
|
||||||
|
- "-v {{ matrix_client_element_data_path }}/logo.png:/app/{{ matrix_client_element_branding_authHeaderLogoUrl }}:ro"
|
||||||
|
# Integration and capabilites config
|
||||||
|
matrix_client_element_integrations_ui_url: "https://{{ matrix_server_fqn_dimension }}/element"
|
||||||
|
matrix_client_element_integrations_rest_url: "https://{{ matrix_server_fqn_dimension }}/api/v1/scalar"
|
||||||
|
matrix_client_element_integrations_widgets_urls:
|
||||||
|
- "https://{{ matrix_server_fqn_dimension }}/widgets"
|
||||||
|
- "https://scalar.vector.im/api"
|
||||||
|
matrix_client_element_integrations_jitsi_widget_url: "https://{{ matrix_server_fqn_dimension }}/widgets/jitsi"
|
||||||
|
matrix_client_element_disable_custom_urls: false
|
||||||
|
matrix_client_element_roomdir_servers:
|
||||||
|
- "matrix.org"
|
||||||
|
- "finallycoffee.eu"
|
||||||
|
- "entropia.de"
|
||||||
|
matrix_client_element_enable_presence_by_hs_url:
|
||||||
|
https://matrix.org: false
|
||||||
|
|
||||||
|
|
||||||
|
# Matrix ma1sd extended configuration
|
||||||
|
matrix_ma1sd_configuration_extension_yaml: |
|
||||||
|
hashing:
|
||||||
|
enabled: true
|
||||||
|
pepperLength: 20
|
||||||
|
rotationPolicy: per_requests
|
||||||
|
requests: 10
|
||||||
|
hashStorageType: sql
|
||||||
|
algorithms:
|
||||||
|
- none
|
||||||
|
- sha256
|
||||||
|
|
||||||
|
|
||||||
|
# Matrix mail notification relay setup
|
||||||
|
matrix_mailer_enabled: true
|
||||||
|
matrix_mailer_sender_address: "Matrix on finallycoffee.eu <system-matrix@{{ matrix_domain }}>"
|
||||||
|
matrix_mailer_relay_use: true
|
||||||
|
matrix_mailer_relay_host_name: "{{ vault_matrix_mailer_relay_host_name }}"
|
||||||
|
matrix_mailer_relay_host_port: 587
|
||||||
|
matrix_mailer_relay_auth: true
|
||||||
|
matrix_mailer_relay_auth_username: "{{ vault_matrix_mailer_relay_auth_username }}"
|
||||||
|
matrix_mailer_relay_auth_password: "{{ vault_matrix_mailer_relay_auth_password }}"
|
100
inventory/host_vars/matrix.finallycoffee.eu/vault.yml
Normal file
100
inventory/host_vars/matrix.finallycoffee.eu/vault.yml
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
|
64343261653838626666353837393238353033353632393763363634303466613033376235386235
|
||||||
|
6333386536323034643139656232636133386463393264300a663333333237656337343562366336
|
||||||
|
66663064393930656566396636333430373233373362346339383866623066316133323366663961
|
||||||
|
3732666162363238300a636230346163656334393063343030333064393962663431326461653239
|
||||||
|
36653030393234623335313335383832646463663835653035303765633064666435373464653336
|
||||||
|
31323433373734633531353562333065623039623633633163376235353737343935623133326663
|
||||||
|
65333761383130336165356439623066363964313033666433316231663533393532333738333430
|
||||||
|
36633463343335366364343565353862363531376539626237613263303331323631333366363830
|
||||||
|
33613937346531323139343166613839366233383663363732353561643238383362353964373135
|
||||||
|
61633430353037316266343962376238383238366562323764373135646365383030626130383433
|
||||||
|
32313263663165656366313633653431663332636532656465623465353062643934343738633434
|
||||||
|
63346333326331633830363663666631326466353138646233383235313532383864633233613134
|
||||||
|
39363734353165653065343938643861646630376334303832613163663265373839323765396234
|
||||||
|
38633336393739666565346565343865346233373639363530383533386533616337373033613865
|
||||||
|
66353434653262663263326237626265636430646630313866383532376264383933343933326264
|
||||||
|
65316337323863343935306138343462336666313332396439656234613831356262663630663038
|
||||||
|
31376539653638333263333933633134303734656662343039396563343636366433396130653830
|
||||||
|
33326539636432646438613236356430343435623539333062666630373265306635343233646333
|
||||||
|
39653934323738303239643834663463396165656235393437396635623131316532333465316231
|
||||||
|
65373130393463383932383837383830656637653963666638653665356437303239376262613062
|
||||||
|
34613830613164323365636461303035616136636330323531383164376334363862383762366665
|
||||||
|
62643839333662373461363038326436616639326264633735316139346536373839666236653634
|
||||||
|
30376536386137636336363562376339393261373739333162373461656364353139626339346637
|
||||||
|
30366431336534663037653438376330346238636562383932653561306134626566333861333630
|
||||||
|
39633536653233393161333136316564623631313839633461333438633166363064303238663464
|
||||||
|
65353338353464313635333934623833303965393462373530303666643537336662376266613434
|
||||||
|
37356664616539323631373535316434383361323935376638666437646538316537613030653231
|
||||||
|
62636263663935646466383663306535626465633239366562373038356366366331333537333663
|
||||||
|
64363130386535306362646533393161643737366662313631623132356465636565313530353363
|
||||||
|
35366165383837326564623363636632616331393834313130303937303664353436363266323033
|
||||||
|
61373532383962393937666261626263666631346235646237656337363831633734623733633835
|
||||||
|
39613736373031633263396530626566303665343039663866333632636565633034376366356635
|
||||||
|
35383633336465636331306232353434653739653339396437363163313630393035366665383263
|
||||||
|
34353238656563306366336466376363316430636666353965356535653334343630633532313034
|
||||||
|
64626436643030656335616337653564653331326463383461643739333163613361333133633639
|
||||||
|
66656137313937356134646362623536363065633564633166343766356436313130373663663334
|
||||||
|
63626138356562303761323336646332383761646663383032386261623936633661653735343637
|
||||||
|
35326137343532333635353436376665326633633135656537623631326336353138346136636239
|
||||||
|
37396135326362613039663136333964626237353562343966383764613231363061333534316233
|
||||||
|
38636130313261643061613138656235396530656366313132346362383430333734663866383666
|
||||||
|
61633631353830643565313437306664636262666135353133656531623563616335643737373438
|
||||||
|
63633235363566616466663262333466383939373336383139643362376365623763386137666332
|
||||||
|
39353363636437393236303764343337633233386236303563636634353836363537383632306434
|
||||||
|
33653632373064646361616364323133343138363437373436636232373261663639616330666465
|
||||||
|
37333130393435613134366437396361363830656137663963643132303334633331633661363061
|
||||||
|
38356439666161643431356532353334383539353566386333666461663562613231383331623063
|
||||||
|
33336435636239343663663937353864306363363264663033303539616434333436353134383034
|
||||||
|
64663533366134306462366565333236383235373233656132396538663437616333343534333166
|
||||||
|
66646566623734636532666230326530633538656639353262343665316235386534376534386634
|
||||||
|
65663032303930353661363162373533363762353237393030346238306532326264303636383264
|
||||||
|
63363063326265396166313533663362346539333532386665316466386131623161313738623239
|
||||||
|
66386236656561396539356634636234393436323239396330366237333539343761393431336138
|
||||||
|
66396230656435356365356530343132373861376336346532653063666331343366393761373131
|
||||||
|
66313864373362326139316461666232386132306535616561663566623963353034313961666266
|
||||||
|
34373534363834626334386139653532656564333863323363343165643538336430386434613235
|
||||||
|
64386564643564636530313565326433623365303738386433323463396437653066636134313564
|
||||||
|
33383035393436393163373864353331376163653137316136376564643066636335313735396664
|
||||||
|
33623735353438643237333734353766363863313763653737633135353332363066336232363131
|
||||||
|
33333532653737633033666336326331376561636330643935323636626562303439346338633135
|
||||||
|
33663035366461336339666665663835373235633338613664636439393837303932643363643830
|
||||||
|
63333862643430383235663836653161376637373265646463313538386531666362376532663738
|
||||||
|
62333536383537613562336235666431393164616263303863323834343735326133646131303063
|
||||||
|
62623836313730363832313764363562306666383337396561633865336561396632303539333166
|
||||||
|
35623063336534653531303134653630666264333133393864626665623564313466363731316339
|
||||||
|
36646666653062326665346332373963376439396538396663656130616333316533623331346461
|
||||||
|
39643862356663316338333662646464353233356635303931626366323831303136366462366133
|
||||||
|
34303234343064393265303866636137646461336530653733623264383261653864633332346435
|
||||||
|
62383065353662303564633239326664356364366365626466666266326466333834316437383134
|
||||||
|
35383261373437643261623533623533326335393932356632653634326432376235393038333464
|
||||||
|
33626361366565316533663537343237316563343730363632663639623930313963316665663965
|
||||||
|
33386435663462626435383733383336343064333935356364623436626632356535333430343262
|
||||||
|
62363136353562633631613965353062363231343037626166363035376530646537646136363730
|
||||||
|
35303530343361616230383662333139333533333138613834323437636238656538656436623433
|
||||||
|
38353363336665346637643631663934633061626532376330633731316565336166313936393533
|
||||||
|
35323535376539633937376532333536323234376632306362633438626565376234353235353836
|
||||||
|
37663735366165393963313536356437653361306232313736356164656635616333306332356637
|
||||||
|
39353465633536313539366264646364343231653466346165313863623365333465623336376635
|
||||||
|
37396663333638356565306439636365653438623935363361356464316663613465303933346537
|
||||||
|
61303863323631343264613665323866363935383265323562326364346364343133393965333135
|
||||||
|
33306434646533333662613930666337646330303439333938326433376161613836663237303534
|
||||||
|
63636139636338656664333034356635653330666362633563366663616661303266326135643036
|
||||||
|
34383939613035323331366261356531343961303239626365383332313633393561623963643134
|
||||||
|
30353239356234336635616663313830396133643035663838653837613262616364623637616237
|
||||||
|
37363662663466396330323830343963366262643339316162643164353430663763613634346233
|
||||||
|
62303539336433313066346339363163336236373334613938613061613038613466636632336335
|
||||||
|
35326133373061323164623436623338316466396261393630623466313164393736353566356237
|
||||||
|
34396530383361613464643461313336663331643438313136353039386263633134616534666464
|
||||||
|
33373536326637316635326461656130383333613832386662643431666435663565343565616266
|
||||||
|
35303738656362663266653735373833613765356366626436336437326665396635636335616566
|
||||||
|
32663733396432656430356335383262613133623066636238623166613839393833616436653936
|
||||||
|
34306536343664643732356262663435623834313732373564613337373765373130653734386632
|
||||||
|
35623038623639346564393466393463613238363231663965633037353337353332663464336539
|
||||||
|
33616131353734663463336436303866306334336339316364313962346430383338306161636462
|
||||||
|
64303064313135346236346434316333346434303764356237636530663239633631383561393537
|
||||||
|
66383836326634666362613661353533363432303437663235393336396331356465633031326430
|
||||||
|
35333263633731626564326430613937343136633562386432396537363663653438333333366135
|
||||||
|
33333339376165303736643661343535356561353938346131653662363966643839653262363537
|
||||||
|
38373331353539313463363236383633326138366534313064303739626337343962653830653663
|
||||||
|
626263633730663932376165333438323835
|
22
inventory/hosts
Normal file
22
inventory/hosts
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
|
31336566376336626265653165306635633033376662656164383037383834653239656136333734
|
||||||
|
3833666339393037323035343565343235396163636166370a643933333933386133366564396465
|
||||||
|
30393637613164356564393337633361653432333232383664303739363736633435363764343530
|
||||||
|
3532313739363963660a343434356534316230623133636366386334323465376139363162616238
|
||||||
|
39396638366262313531653635326361616537396338363533303961623165343931373939306239
|
||||||
|
31336632643166633662653765333231393461643933306464303165633037343061323636313034
|
||||||
|
34376631656563646665373566633431366638383863666130323264316337663237343135306236
|
||||||
|
66323536346164663239343139623430303230333466633437643337343930363530653964626163
|
||||||
|
38336363633730393136333637383631636266396636646533356262376630646139303636666538
|
||||||
|
32366437353163663865623234643061313639646162643965393535353938313133326237313265
|
||||||
|
66646163333535396539646461356334633532313530653834623263386265383765356130333466
|
||||||
|
30373531306137393935363030313739666536363138363962646565306439393239303030643162
|
||||||
|
33333166663430393866666439653532623034396130313066383035396535646633366237303264
|
||||||
|
36356665366461323664373038366364623937386233313039323837666333653764616462333365
|
||||||
|
31326264633236373937313537633961633164323138356135633765663639323537656263633766
|
||||||
|
38653836323263386333376131333330326237393666363064326463663961633839393039323835
|
||||||
|
61306265333232623037356465393133323733363634646364336261326333366239346565366338
|
||||||
|
61646132333033373866623739343830336164316461646366666237313565626639323537623732
|
||||||
|
38323830656136323137323530343764666433633432366136643538323832653130376363653135
|
||||||
|
64376261386635636533353961613335663962306337353866616464613636303735336230623962
|
||||||
|
3336
|
@ -5,10 +5,11 @@ import json
|
|||||||
|
|
||||||
janitor_token = sys.argv[1]
|
janitor_token = sys.argv[1]
|
||||||
synapse_container_ip = sys.argv[2]
|
synapse_container_ip = sys.argv[2]
|
||||||
|
synapse_container_port = sys.argv[3]
|
||||||
|
|
||||||
# collect total amount of rooms
|
# collect total amount of rooms
|
||||||
|
|
||||||
rooms_raw_url = 'http://' + synapse_container_ip + ':8008/_synapse/admin/v1/rooms'
|
rooms_raw_url = 'http://' + synapse_container_ip + ':' + synapse_container_port + '/_synapse/admin/v1/rooms'
|
||||||
rooms_raw_header = {'Authorization': 'Bearer ' + janitor_token}
|
rooms_raw_header = {'Authorization': 'Bearer ' + janitor_token}
|
||||||
rooms_raw = requests.get(rooms_raw_url, headers=rooms_raw_header)
|
rooms_raw = requests.get(rooms_raw_url, headers=rooms_raw_header)
|
||||||
rooms_raw_python = json.loads(rooms_raw.text)
|
rooms_raw_python = json.loads(rooms_raw.text)
|
||||||
@ -19,7 +20,7 @@ total_rooms = rooms_raw_python["total_rooms"]
|
|||||||
room_list_file = open("/tmp/room_list_complete.json", "w")
|
room_list_file = open("/tmp/room_list_complete.json", "w")
|
||||||
|
|
||||||
for i in range(0, total_rooms, 100):
|
for i in range(0, total_rooms, 100):
|
||||||
rooms_inc_url = 'http://' + synapse_container_ip + ':8008/_synapse/admin/v1/rooms?from=' + str(i)
|
rooms_inc_url = 'http://' + synapse_container_ip + ':' + synapse_container_port + '/_synapse/admin/v1/rooms?from=' + str(i)
|
||||||
rooms_inc = requests.get(rooms_inc_url, headers=rooms_raw_header)
|
rooms_inc = requests.get(rooms_inc_url, headers=rooms_raw_header)
|
||||||
room_list_file.write(rooms_inc.text)
|
room_list_file.write(rooms_inc.text)
|
||||||
|
|
||||||
|
@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
- name: Collect entire room list into stdout
|
- name: Collect entire room list into stdout
|
||||||
shell: |
|
shell: |
|
||||||
curl -X GET --header "Authorization: Bearer {{ janitors_token.stdout[1:-1] }}" '{{ synapse_container_ip.stdout }}:8008/_synapse/admin/v1/rooms?from={{ item }}'
|
curl -X GET --header "Authorization: Bearer {{ janitors_token.stdout[1:-1] }}" '{{ synapse_container_ip.stdout }}:{{ matrix_synapse_container_client_api_port }}/_synapse/admin/v1/rooms?from={{ item }}'
|
||||||
register: awx_rooms_output
|
register: awx_rooms_output
|
||||||
|
|
||||||
- name: Print stdout to file
|
- name: Print stdout to file
|
||||||
delegate_to: 127.0.0.1
|
delegate_to: 127.0.0.1
|
||||||
shell: |
|
shell: |
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
- name: Purge all rooms with more then N events
|
- name: Purge all rooms with more then N events
|
||||||
shell: |
|
shell: |
|
||||||
curl --header "Authorization: Bearer {{ awx_janitors_token.stdout[1:-1] }}" -X POST -H "Content-Type: application/json" -d '{ "delete_local_events": false, "purge_up_to_ts": {{ awx_purge_epoche_time.stdout }}000 }' "{{ awx_synapse_container_ip.stdout }}:8008/_synapse/admin/v1/purge_history/{{ item[1:-1] }}"
|
curl --header "Authorization: Bearer {{ awx_janitors_token.stdout[1:-1] }}" -X POST -H "Content-Type: application/json" -d '{ "delete_local_events": false, "purge_up_to_ts": {{ awx_purge_epoche_time.stdout }}000 }' "{{ awx_synapse_container_ip.stdout }}:{{ matrix_synapse_container_client_api_port }}/_synapse/admin/v1/purge_history/{{ item[1:-1] }}"
|
||||||
register: awx_purge_command
|
register: awx_purge_command
|
||||||
|
|
||||||
- name: Print output of purge command
|
- name: Print output of purge command
|
||||||
debug:
|
debug:
|
||||||
msg: "{{ awx_purge_command.stdout }}"
|
msg: "{{ awx_purge_command.stdout }}"
|
||||||
|
|
||||||
- name: Pause for 5 seconds to let Synapse breathe
|
- name: Pause for 5 seconds to let Synapse breathe
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
|
|
||||||
- name: Collect access token for janitor user
|
- name: Collect access token for janitor user
|
||||||
shell: |
|
shell: |
|
||||||
curl -X POST -d '{"type":"m.login.password", "user":"janitor", "password":"{{ awx_janitor_user_password }}"}' "{{ awx_synapse_container_ip.stdout }}:8008/_matrix/client/r0/login" | jq '.access_token'
|
curl -X POST -d '{"type":"m.login.password", "user":"janitor", "password":"{{ awx_janitor_user_password }}"}' "{{ awx_synapse_container_ip.stdout }}:{{ matrix_synapse_container_client_api_port }}/_matrix/client/r0/login" | jq '.access_token'
|
||||||
when: (awx_purge_mode.find("No local users [recommended]") != -1) or (awx_purge_mode.find("Number of users [slower]") != -1) or (awx_purge_mode.find("Number of events [slower]") != -1)
|
when: (awx_purge_mode.find("No local users [recommended]") != -1) or (awx_purge_mode.find("Number of users [slower]") != -1) or (awx_purge_mode.find("Number of events [slower]") != -1)
|
||||||
register: awx_janitors_token
|
register: awx_janitors_token
|
||||||
no_log: True
|
no_log: True
|
||||||
@ -47,7 +47,7 @@
|
|||||||
|
|
||||||
- name: Run build_room_list.py script
|
- name: Run build_room_list.py script
|
||||||
shell: |
|
shell: |
|
||||||
runuser -u matrix -- python3 /usr/local/bin/matrix_build_room_list.py {{ awx_janitors_token.stdout[1:-1] }} {{ awx_synapse_container_ip.stdout }}
|
runuser -u matrix -- python3 /usr/local/bin/matrix_build_room_list.py {{ awx_janitors_token.stdout[1:-1] }} {{ awx_synapse_container_ip.stdout }} {{ matrix_synapse_container_client_api_port.stdout }}
|
||||||
register: awx_rooms_total
|
register: awx_rooms_total
|
||||||
when: (awx_purge_mode.find("No local users [recommended]") != -1) or (awx_purge_mode.find("Number of users [slower]") != -1) or (awx_purge_mode.find("Number of events [slower]") != -1)
|
when: (awx_purge_mode.find("No local users [recommended]") != -1) or (awx_purge_mode.find("Number of users [slower]") != -1) or (awx_purge_mode.find("Number of events [slower]") != -1)
|
||||||
|
|
||||||
@ -69,7 +69,7 @@
|
|||||||
shell: |
|
shell: |
|
||||||
jq 'try .rooms[] | select(.joined_local_members == 0) | .room_id' < /tmp/{{ subscription_id }}_room_list_complete.json > /tmp/{{ subscription_id }}_room_list_no_local_users.txt
|
jq 'try .rooms[] | select(.joined_local_members == 0) | .room_id' < /tmp/{{ subscription_id }}_room_list_complete.json > /tmp/{{ subscription_id }}_room_list_no_local_users.txt
|
||||||
when: (awx_purge_mode.find("No local users [recommended]") != -1) or (awx_purge_mode.find("Number of users [slower]") != -1) or (awx_purge_mode.find("Number of events [slower]") != -1)
|
when: (awx_purge_mode.find("No local users [recommended]") != -1) or (awx_purge_mode.find("Number of users [slower]") != -1) or (awx_purge_mode.find("Number of events [slower]") != -1)
|
||||||
|
|
||||||
- name: Count number of rooms with no local users
|
- name: Count number of rooms with no local users
|
||||||
delegate_to: 127.0.0.1
|
delegate_to: 127.0.0.1
|
||||||
shell: |
|
shell: |
|
||||||
@ -84,7 +84,7 @@
|
|||||||
when: (awx_purge_mode.find("No local users [recommended]") != -1) or (awx_purge_mode.find("Number of users [slower]") != -1) or (awx_purge_mode.find("Number of events [slower]") != -1)
|
when: (awx_purge_mode.find("No local users [recommended]") != -1) or (awx_purge_mode.find("Number of users [slower]") != -1) or (awx_purge_mode.find("Number of events [slower]") != -1)
|
||||||
|
|
||||||
- name: Purge all rooms with no local users
|
- name: Purge all rooms with no local users
|
||||||
include_tasks: purge_database_no_local.yml
|
include_tasks: purge_database_no_local.yml
|
||||||
loop: "{{ awx_room_list_no_local_users.splitlines() | flatten(levels=1) }}"
|
loop: "{{ awx_room_list_no_local_users.splitlines() | flatten(levels=1) }}"
|
||||||
when: (awx_purge_mode.find("No local users [recommended]") != -1) or (awx_purge_mode.find("Number of users [slower]") != -1) or (awx_purge_mode.find("Number of events [slower]") != -1)
|
when: (awx_purge_mode.find("No local users [recommended]") != -1) or (awx_purge_mode.find("Number of users [slower]") != -1) or (awx_purge_mode.find("Number of events [slower]") != -1)
|
||||||
|
|
||||||
@ -116,7 +116,7 @@
|
|||||||
no_log: True
|
no_log: True
|
||||||
|
|
||||||
- name: Purge all rooms with more then N users
|
- name: Purge all rooms with more then N users
|
||||||
include_tasks: purge_database_users.yml
|
include_tasks: purge_database_users.yml
|
||||||
loop: "{{ awx_room_list_joined_members.splitlines() | flatten(levels=1) }}"
|
loop: "{{ awx_room_list_joined_members.splitlines() | flatten(levels=1) }}"
|
||||||
when: awx_purge_mode.find("Number of users [slower]") != -1
|
when: awx_purge_mode.find("Number of users [slower]") != -1
|
||||||
|
|
||||||
@ -141,7 +141,7 @@
|
|||||||
no_log: True
|
no_log: True
|
||||||
|
|
||||||
- name: Purge all rooms with more then N events
|
- name: Purge all rooms with more then N events
|
||||||
include_tasks: purge_database_events.yml
|
include_tasks: purge_database_events.yml
|
||||||
loop: "{{ awx_room_list_state_events.splitlines() | flatten(levels=1) }}"
|
loop: "{{ awx_room_list_state_events.splitlines() | flatten(levels=1) }}"
|
||||||
when: awx_purge_mode.find("Number of events [slower]") != -1
|
when: awx_purge_mode.find("Number of events [slower]") != -1
|
||||||
|
|
||||||
@ -171,7 +171,7 @@
|
|||||||
wait: yes
|
wait: yes
|
||||||
tower_host: "https://{{ awx_host }}"
|
tower_host: "https://{{ awx_host }}"
|
||||||
tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}"
|
tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}"
|
||||||
validate_certs: yes
|
validate_certs: yes
|
||||||
when: (awx_purge_mode.find("No local users [recommended]") != -1) or (awx_purge_mode.find("Number of users [slower]") != -1) or (awx_purge_mode.find("Number of events [slower]") != -1) or (awx_purge_mode.find("Skip purging rooms [faster]") != -1)
|
when: (awx_purge_mode.find("No local users [recommended]") != -1) or (awx_purge_mode.find("Number of users [slower]") != -1) or (awx_purge_mode.find("Number of events [slower]") != -1) or (awx_purge_mode.find("Skip purging rooms [faster]") != -1)
|
||||||
|
|
||||||
- name: Revert 'Deploy/Update a Server' job template
|
- name: Revert 'Deploy/Update a Server' job template
|
||||||
@ -237,7 +237,7 @@
|
|||||||
wait: yes
|
wait: yes
|
||||||
tower_host: "https://{{ awx_host }}"
|
tower_host: "https://{{ awx_host }}"
|
||||||
tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}"
|
tower_oauthtoken: "{{ awx_session_token.ansible_facts.tower_token.token }}"
|
||||||
validate_certs: yes
|
validate_certs: yes
|
||||||
when: (awx_purge_mode.find("Perform final shrink") != -1)
|
when: (awx_purge_mode.find("Perform final shrink") != -1)
|
||||||
|
|
||||||
- name: Revert 'Deploy/Update a Server' job template
|
- name: Revert 'Deploy/Update a Server' job template
|
||||||
@ -272,7 +272,7 @@
|
|||||||
when: (awx_purge_mode.find("Perform final shrink") != -1)
|
when: (awx_purge_mode.find("Perform final shrink") != -1)
|
||||||
no_log: True
|
no_log: True
|
||||||
|
|
||||||
- name: Print total number of rooms processed
|
- name: Print total number of rooms processed
|
||||||
debug:
|
debug:
|
||||||
msg: '{{ awx_rooms_total.stdout }}'
|
msg: '{{ awx_rooms_total.stdout }}'
|
||||||
when: (awx_purge_mode.find("No local users [recommended]") != -1) or (awx_purge_mode.find("Number of users [slower]") != -1) or (awx_purge_mode.find("Number of events [slower]") != -1)
|
when: (awx_purge_mode.find("No local users [recommended]") != -1) or (awx_purge_mode.find("Number of users [slower]") != -1) or (awx_purge_mode.find("Number of events [slower]") != -1)
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
- name: Purge all rooms with no local users
|
- name: Purge all rooms with no local users
|
||||||
shell: |
|
shell: |
|
||||||
curl --header "Authorization: Bearer {{ awx_janitors_token.stdout[1:-1] }}" -X POST -H "Content-Type: application/json" -d '{ "room_id": {{ item }} }' '{{ awx_synapse_container_ip.stdout }}:8008/_synapse/admin/v1/purge_room'
|
curl --header "Authorization: Bearer {{ awx_janitors_token.stdout[1:-1] }}" -X POST -H "Content-Type: application/json" -d '{ "room_id": {{ item }} }' '{{ awx_synapse_container_ip.stdout }}:{{ matrix_synapse_container_client_api_port }}/_synapse/admin/v1/purge_room'
|
||||||
register: awx_purge_command
|
register: awx_purge_command
|
||||||
|
|
||||||
- name: Print output of purge command
|
- name: Print output of purge command
|
||||||
debug:
|
debug:
|
||||||
msg: "{{ awx_purge_command.stdout }}"
|
msg: "{{ awx_purge_command.stdout }}"
|
||||||
|
|
||||||
- name: Pause for 5 seconds to let Synapse breathe
|
- name: Pause for 5 seconds to let Synapse breathe
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
- name: Purge all rooms with more then N users
|
- name: Purge all rooms with more then N users
|
||||||
shell: |
|
shell: |
|
||||||
curl --header "Authorization: Bearer {{ awx_janitors_token.stdout[1:-1] }}" -X POST -H "Content-Type: application/json" -d '{ "delete_local_events": false, "purge_up_to_ts": {{ awx_purge_epoche_time.stdout }}000 }' "{{ awx_synapse_container_ip.stdout }}:8008/_synapse/admin/v1/purge_history/{{ item[1:-1] }}"
|
curl --header "Authorization: Bearer {{ awx_janitors_token.stdout[1:-1] }}" -X POST -H "Content-Type: application/json" -d '{ "delete_local_events": false, "purge_up_to_ts": {{ awx_purge_epoche_time.stdout }}000 }' "{{ awx_synapse_container_ip.stdout }}:{{ matrix_synapse_container_client_api_port }}/_synapse/admin/v1/purge_history/{{ item[1:-1] }}"
|
||||||
register: awx_purge_command
|
register: awx_purge_command
|
||||||
|
|
||||||
- name: Print output of purge command
|
- name: Print output of purge command
|
||||||
debug:
|
debug:
|
||||||
msg: "{{ awx_purge_command.stdout }}"
|
msg: "{{ awx_purge_command.stdout }}"
|
||||||
|
|
||||||
- name: Pause for 5 seconds to let Synapse breathe
|
- name: Pause for 5 seconds to let Synapse breathe
|
||||||
|
@ -7,11 +7,11 @@
|
|||||||
|
|
||||||
- name: Purge local media to specific date
|
- name: Purge local media to specific date
|
||||||
shell: |
|
shell: |
|
||||||
curl -X POST --header "Authorization: Bearer {{ awx_janitors_token.stdout[1:-1] }}" '{{ awx_synapse_container_ip.stdout }}:8008/_synapse/admin/v1/media/matrix.{{ matrix_domain }}/delete?before_ts={{ awx_epoche_time.stdout }}000'
|
curl -X POST --header "Authorization: Bearer {{ awx_janitors_token.stdout[1:-1] }}" '{{ awx_synapse_container_ip.stdout }}:{{ matrix_synapse_container_client_api_port }}/_synapse/admin/v1/media/matrix.{{ matrix_domain }}/delete?before_ts={{ awx_epoche_time.stdout }}000'
|
||||||
register: awx_purge_command
|
register: awx_purge_command
|
||||||
|
|
||||||
- name: Print output of purge command
|
- name: Print output of purge command
|
||||||
debug:
|
debug:
|
||||||
msg: "{{ awx_purge_command.stdout }}"
|
msg: "{{ awx_purge_command.stdout }}"
|
||||||
|
|
||||||
- name: Pause for 5 seconds to let Synapse breathe
|
- name: Pause for 5 seconds to let Synapse breathe
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
include_vars:
|
include_vars:
|
||||||
file: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/matrix_vars.yml'
|
file: '/var/lib/awx/projects/clients/{{ member_id }}/{{ subscription_id }}/matrix_vars.yml'
|
||||||
no_log: True
|
no_log: True
|
||||||
|
|
||||||
- name: Ensure curl and jq intalled on target machine
|
- name: Ensure curl and jq intalled on target machine
|
||||||
apt:
|
apt:
|
||||||
pkg:
|
pkg:
|
||||||
@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
- name: Collect access token for janitor user
|
- name: Collect access token for janitor user
|
||||||
shell: |
|
shell: |
|
||||||
curl -XPOST -d '{"type":"m.login.password", "user":"janitor", "password":"{{ awx_janitor_user_password }}"}' "{{ awx_synapse_container_ip.stdout }}:8008/_matrix/client/r0/login" | jq '.access_token'
|
curl -XPOST -d '{"type":"m.login.password", "user":"janitor", "password":"{{ awx_janitor_user_password }}"}' "{{ awx_synapse_container_ip.stdout }}:{{ matrix_synapse_container_client_api_port }}/_matrix/client/r0/login" | jq '.access_token'
|
||||||
register: awx_janitors_token
|
register: awx_janitors_token
|
||||||
no_log: True
|
no_log: True
|
||||||
|
|
||||||
@ -31,7 +31,7 @@
|
|||||||
delegate_to: 127.0.0.1
|
delegate_to: 127.0.0.1
|
||||||
shell: "dateseq {{ matrix_purge_from_date }} {{ matrix_purge_to_date }}"
|
shell: "dateseq {{ matrix_purge_from_date }} {{ matrix_purge_to_date }}"
|
||||||
register: awx_purge_dates
|
register: awx_purge_dates
|
||||||
|
|
||||||
- name: Calculate initial size of local media repository
|
- name: Calculate initial size of local media repository
|
||||||
shell: du -sh /matrix/synapse/storage/media-store/local*
|
shell: du -sh /matrix/synapse/storage/media-store/local*
|
||||||
register: awx_local_media_size_before
|
register: awx_local_media_size_before
|
||||||
@ -47,12 +47,12 @@
|
|||||||
no_log: True
|
no_log: True
|
||||||
|
|
||||||
- name: Purge local media with loop
|
- name: Purge local media with loop
|
||||||
include_tasks: purge_media_local.yml
|
include_tasks: purge_media_local.yml
|
||||||
loop: "{{ awx_purge_dates.stdout_lines | flatten(levels=1) }}"
|
loop: "{{ awx_purge_dates.stdout_lines | flatten(levels=1) }}"
|
||||||
when: awx_purge_media_type == "Local Media"
|
when: awx_purge_media_type == "Local Media"
|
||||||
|
|
||||||
- name: Purge remote media with loop
|
- name: Purge remote media with loop
|
||||||
include_tasks: purge_media_remote.yml
|
include_tasks: purge_media_remote.yml
|
||||||
loop: "{{ awx_purge_dates.stdout_lines | flatten(levels=1) }}"
|
loop: "{{ awx_purge_dates.stdout_lines | flatten(levels=1) }}"
|
||||||
when: awx_purge_media_type == "Remote Media"
|
when: awx_purge_media_type == "Remote Media"
|
||||||
|
|
||||||
|
@ -7,11 +7,11 @@
|
|||||||
|
|
||||||
- name: Purge remote media to specific date
|
- name: Purge remote media to specific date
|
||||||
shell: |
|
shell: |
|
||||||
curl -X POST --header "Authorization: Bearer {{ awx_janitors_token.stdout[1:-1] }}" '{{ awx_synapse_container_ip.stdout }}:8008/_synapse/admin/v1/purge_media_cache?before_ts={{ awx_epoche_time.stdout }}000'
|
curl -X POST --header "Authorization: Bearer {{ awx_janitors_token.stdout[1:-1] }}" '{{ awx_synapse_container_ip.stdout }}:{{ matrix_synapse_container_client_api_port }}/_synapse/admin/v1/purge_media_cache?before_ts={{ awx_epoche_time.stdout }}000'
|
||||||
register: awx_purge_command
|
register: awx_purge_command
|
||||||
|
|
||||||
- name: Print output of purge command
|
- name: Print output of purge command
|
||||||
debug:
|
debug:
|
||||||
msg: "{{ awx_purge_command.stdout }}"
|
msg: "{{ awx_purge_command.stdout }}"
|
||||||
|
|
||||||
- name: Pause for 5 seconds to let Synapse breathe
|
- name: Pause for 5 seconds to let Synapse breathe
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
insertafter: '# Synapse Extension Start'
|
insertafter: '# Synapse Extension Start'
|
||||||
with_dict:
|
with_dict:
|
||||||
'matrix_synapse_awx_password_provider_rest_auth_enabled': 'true'
|
'matrix_synapse_awx_password_provider_rest_auth_enabled': 'true'
|
||||||
'matrix_synapse_awx_password_provider_rest_auth_endpoint': '"http://matrix-ma1sd:{{ matrix_ma1sd_default_port }}"'
|
'matrix_synapse_awx_password_provider_rest_auth_endpoint': '"http://matrix-ma1sd:{{ matrix_ma1sd_container_port }}"'
|
||||||
when: awx_matrix_ma1sd_auth_store == 'LDAP/AD'
|
when: awx_matrix_ma1sd_auth_store == 'LDAP/AD'
|
||||||
|
|
||||||
- name: Remove entire ma1sd configuration extension
|
- name: Remove entire ma1sd configuration extension
|
||||||
|
@ -91,7 +91,7 @@ matrix_homeserver_url: "https://{{ matrix_server_fqn_matrix }}"
|
|||||||
# Specifies where the homeserver is on the container network.
|
# Specifies where the homeserver is on the container network.
|
||||||
# Where this is depends on whether there's a reverse-proxy in front of it, etc.
|
# Where this is depends on whether there's a reverse-proxy in front of it, etc.
|
||||||
# This likely gets overriden elsewhere.
|
# This likely gets overriden elsewhere.
|
||||||
matrix_homeserver_container_url: "http://matrix-synapse:8008"
|
matrix_homeserver_container_url: ""
|
||||||
|
|
||||||
matrix_identity_server_url: ~
|
matrix_identity_server_url: ~
|
||||||
|
|
||||||
|
9
roles/matrix-base/tasks/validate_config.yml
Normal file
9
roles/matrix-base/tasks/validate_config.yml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Fail if required Matrix Base settings not defined
|
||||||
|
fail:
|
||||||
|
msg: >-
|
||||||
|
You need to define a required configuration setting (`{{ item }}`) for using this playbook.
|
||||||
|
when: "vars[item] == ''"
|
||||||
|
with_items:
|
||||||
|
- "matrix_homeserver_container_url"
|
@ -9,6 +9,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-bot-go-neb
|
name: matrix-bot-go-neb
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
register: stopping_result
|
register: stopping_result
|
||||||
when: "matrix_bot_go_neb_service_stat.stat.exists|bool"
|
when: "matrix_bot_go_neb_service_stat.stat.exists|bool"
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-bot-matrix-reminder-bot
|
name: matrix-bot-matrix-reminder-bot
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
register: stopping_result
|
register: stopping_result
|
||||||
when: "matrix_bot_matrix_reminder_bot_service_stat.stat.exists|bool"
|
when: "matrix_bot_matrix_reminder_bot_service_stat.stat.exists|bool"
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-bot-mjolnir
|
name: matrix-bot-mjolnir
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
register: stopping_result
|
register: stopping_result
|
||||||
when: "matrix_bot_mjolnir_service_stat.stat.exists|bool"
|
when: "matrix_bot_mjolnir_service_stat.stat.exists|bool"
|
||||||
|
@ -54,6 +54,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-appservice-discord
|
name: matrix-appservice-discord
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
failed_when: false
|
failed_when: false
|
||||||
when: "matrix_appservice_discord_stat_db.stat.exists"
|
when: "matrix_appservice_discord_stat_db.stat.exists"
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-appservice-discord
|
name: matrix-appservice-discord
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
when: "matrix_appservice_discord_service_stat.stat.exists"
|
when: "matrix_appservice_discord_service_stat.stat.exists"
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-appservice-irc
|
name: matrix-appservice-irc
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
when: "matrix_appservice_irc_service_stat.stat.exists"
|
when: "matrix_appservice_irc_service_stat.stat.exists"
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ matrix_appservice_slack_slack_port: 9003
|
|||||||
matrix_appservice_slack_container_http_host_bind_port: ''
|
matrix_appservice_slack_container_http_host_bind_port: ''
|
||||||
|
|
||||||
matrix_appservice_slack_homeserver_media_url: "{{ matrix_server_fqn_matrix }}"
|
matrix_appservice_slack_homeserver_media_url: "{{ matrix_server_fqn_matrix }}"
|
||||||
matrix_appservice_slack_homeserver_url: "http://matrix-synapse:8008"
|
matrix_appservice_slack_homeserver_url: ""
|
||||||
matrix_appservice_slack_homeserver_domain: "{{ matrix_domain }}"
|
matrix_appservice_slack_homeserver_domain: "{{ matrix_domain }}"
|
||||||
matrix_appservice_slack_appservice_url: 'http://matrix-appservice-slack'
|
matrix_appservice_slack_appservice_url: 'http://matrix-appservice-slack'
|
||||||
|
|
||||||
@ -82,7 +82,7 @@ matrix_appservice_slack_configuration_extension_yaml: |
|
|||||||
# Optional
|
# Optional
|
||||||
#matrix_admin_room: "!aBcDeF:matrix.org"
|
#matrix_admin_room: "!aBcDeF:matrix.org"
|
||||||
#homeserver:
|
#homeserver:
|
||||||
# url: http://localhost:8008
|
# url: http://localhost:{{ matrix_synapse_container_client_api_port }}
|
||||||
# server_name: my.server
|
# server_name: my.server
|
||||||
# Optional
|
# Optional
|
||||||
#tls:
|
#tls:
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-appservice-slack
|
name: matrix-appservice-slack
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
when: "matrix_appservice_slack_service_stat.stat.exists"
|
when: "matrix_appservice_slack_service_stat.stat.exists"
|
||||||
|
|
||||||
|
@ -8,5 +8,6 @@
|
|||||||
with_items:
|
with_items:
|
||||||
- "matrix_appservice_slack_control_room_id"
|
- "matrix_appservice_slack_control_room_id"
|
||||||
- "matrix_appservice_slack_appservice_token"
|
- "matrix_appservice_slack_appservice_token"
|
||||||
|
- "matrix_appservice_slack_homeserver_url"
|
||||||
- "matrix_appservice_slack_homeserver_token"
|
- "matrix_appservice_slack_homeserver_token"
|
||||||
- "matrix_appservice_slack_id_token"
|
- "matrix_appservice_slack_id_token"
|
||||||
|
@ -36,7 +36,7 @@ matrix_appservice_webhooks_matrix_port: 6789
|
|||||||
matrix_appservice_webhooks_container_http_host_bind_port: ''
|
matrix_appservice_webhooks_container_http_host_bind_port: ''
|
||||||
|
|
||||||
matrix_appservice_webhooks_homeserver_media_url: "{{ matrix_server_fqn_matrix }}"
|
matrix_appservice_webhooks_homeserver_media_url: "{{ matrix_server_fqn_matrix }}"
|
||||||
matrix_appservice_webhooks_homeserver_url: "http://matrix-synapse:8008"
|
matrix_appservice_webhooks_homeserver_url: ""
|
||||||
matrix_appservice_webhooks_homeserver_domain: "{{ matrix_domain }}"
|
matrix_appservice_webhooks_homeserver_domain: "{{ matrix_domain }}"
|
||||||
matrix_appservice_webhooks_appservice_url: 'http://matrix-appservice-webhooks'
|
matrix_appservice_webhooks_appservice_url: 'http://matrix-appservice-webhooks'
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-appservice-webhooks
|
name: matrix-appservice-webhooks
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
when: "matrix_appservice_webhooks_service_stat.stat.exists"
|
when: "matrix_appservice_webhooks_service_stat.stat.exists"
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
when: "vars[item] == ''"
|
when: "vars[item] == ''"
|
||||||
with_items:
|
with_items:
|
||||||
- "matrix_appservice_webhooks_appservice_token"
|
- "matrix_appservice_webhooks_appservice_token"
|
||||||
|
- "matrix_appservice_webhooks_homeserver_url"
|
||||||
- "matrix_appservice_webhooks_homeserver_token"
|
- "matrix_appservice_webhooks_homeserver_token"
|
||||||
- "matrix_appservice_webhooks_id_token"
|
- "matrix_appservice_webhooks_id_token"
|
||||||
- "matrix_appservice_webhooks_api_secret"
|
- "matrix_appservice_webhooks_api_secret"
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-beeper-linkedin
|
name: matrix-beeper-linkedin
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
when: "matrix_beeper_linkedin_service_stat.stat.exists"
|
when: "matrix_beeper_linkedin_service_stat.stat.exists"
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
matrix_heisenbridge_enabled: true
|
matrix_heisenbridge_enabled: true
|
||||||
|
|
||||||
matrix_heisenbridge_version: 1.5.0
|
matrix_heisenbridge_version: 1.7.0
|
||||||
matrix_heisenbridge_docker_image: "{{ matrix_container_global_registry_prefix }}hif1/heisenbridge:{{ matrix_heisenbridge_version }}"
|
matrix_heisenbridge_docker_image: "{{ matrix_container_global_registry_prefix }}hif1/heisenbridge:{{ matrix_heisenbridge_version }}"
|
||||||
matrix_heisenbridge_docker_image_force_pull: "{{ matrix_heisenbridge_docker_image.endswith(':latest') }}"
|
matrix_heisenbridge_docker_image_force_pull: "{{ matrix_heisenbridge_docker_image.endswith(':latest') }}"
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-heisenbridge
|
name: matrix-heisenbridge
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
when: "matrix_heisenbridge_service_stat.stat.exists"
|
when: "matrix_heisenbridge_service_stat.stat.exists"
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ matrix_mautrix_facebook_enabled: true
|
|||||||
matrix_mautrix_facebook_container_image_self_build: false
|
matrix_mautrix_facebook_container_image_self_build: false
|
||||||
matrix_mautrix_facebook_container_image_self_build_repo: "https://mau.dev/mautrix/facebook.git"
|
matrix_mautrix_facebook_container_image_self_build_repo: "https://mau.dev/mautrix/facebook.git"
|
||||||
|
|
||||||
matrix_mautrix_facebook_version: v0.3.1
|
matrix_mautrix_facebook_version: v0.3.2
|
||||||
matrix_mautrix_facebook_docker_image: "{{ matrix_mautrix_facebook_docker_image_name_prefix }}mautrix/facebook:{{ matrix_mautrix_facebook_version }}"
|
matrix_mautrix_facebook_docker_image: "{{ matrix_mautrix_facebook_docker_image_name_prefix }}mautrix/facebook:{{ matrix_mautrix_facebook_version }}"
|
||||||
matrix_mautrix_facebook_docker_image_name_prefix: "{{ 'localhost/' if matrix_mautrix_facebook_container_image_self_build else 'dock.mau.dev/' }}"
|
matrix_mautrix_facebook_docker_image_name_prefix: "{{ 'localhost/' if matrix_mautrix_facebook_container_image_self_build else 'dock.mau.dev/' }}"
|
||||||
matrix_mautrix_facebook_docker_image_force_pull: "{{ matrix_mautrix_facebook_docker_image.endswith(':latest') }}"
|
matrix_mautrix_facebook_docker_image_force_pull: "{{ matrix_mautrix_facebook_docker_image.endswith(':latest') }}"
|
||||||
|
@ -86,6 +86,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-mautrix-facebook
|
name: matrix-mautrix-facebook
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
failed_when: false
|
failed_when: false
|
||||||
when: "matrix_mautrix_facebook_stat_database.stat.exists"
|
when: "matrix_mautrix_facebook_stat_database.stat.exists"
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-mautrix-facebook
|
name: matrix-mautrix-facebook
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
when: "matrix_mautrix_facebook_service_stat.stat.exists"
|
when: "matrix_mautrix_facebook_service_stat.stat.exists"
|
||||||
|
|
||||||
|
@ -10,22 +10,14 @@
|
|||||||
- "matrix_mautrix_facebook_homeserver_token"
|
- "matrix_mautrix_facebook_homeserver_token"
|
||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: Fail if on SQLite, unless on the last version supporting SQLite
|
- name: Inject warning if on an old SQLite-supporting version
|
||||||
fail:
|
|
||||||
msg: >-
|
|
||||||
You're trying to use the mautrix-facebook bridge with an SQLite database.
|
|
||||||
Going forward, this bridge only supports Postgres.
|
|
||||||
To learn more about this, see our changelog: https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/CHANGELOG.md#breaking-change-the-mautrix-facebook-bridge-now-requires-a-postgres-database
|
|
||||||
when: "not matrix_mautrix_facebook_docker_image.endswith(':da1b4ec596e334325a1589e70829dea46e73064b')"
|
|
||||||
|
|
||||||
- name: Inject warning if still on SQLite
|
|
||||||
set_fact:
|
set_fact:
|
||||||
matrix_playbook_runtime_results: |
|
matrix_playbook_runtime_results: |
|
||||||
{{
|
{{
|
||||||
matrix_playbook_runtime_results|default([])
|
matrix_playbook_runtime_results|default([])
|
||||||
+
|
+
|
||||||
[
|
[
|
||||||
"NOTE: Your mautrix-facebook bridge setup is still on SQLite. Your bridge is not getting any updates and will likely stop working at some point. To learn more about this, see our changelog: https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/CHANGELOG.md#breaking-change-the-mautrix-facebook-bridge-now-requires-a-postgres-database"
|
"NOTE: Your mautrix-facebook bridge is still on SQLite and on the last version that supported it, before support was dropped. Support has been subsequently re-added in v0.3.2, so we advise you to upgrade (by removing your `matrix_mautrix_facebook_docker_image` definition from vars.yml)"
|
||||||
]
|
]
|
||||||
}}
|
}}
|
||||||
when: "matrix_mautrix_facebook_database_engine == 'sqlite'"
|
when: "matrix_mautrix_facebook_database_engine == 'sqlite' and matrix_mautrix_facebook_docker_image.endswith(':da1b4ec596e334325a1589e70829dea46e73064b')"
|
||||||
|
@ -85,6 +85,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-mautrix-googlechat
|
name: matrix-mautrix-googlechat
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
failed_when: false
|
failed_when: false
|
||||||
when: "matrix_mautrix_googlechat_stat_database.stat.exists"
|
when: "matrix_mautrix_googlechat_stat_database.stat.exists"
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-mautrix-googlechat
|
name: matrix-mautrix-googlechat
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
when: "matrix_mautrix_googlechat_service_stat.stat.exists"
|
when: "matrix_mautrix_googlechat_service_stat.stat.exists"
|
||||||
|
|
||||||
|
@ -85,6 +85,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-mautrix-hangouts
|
name: matrix-mautrix-hangouts
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
failed_when: false
|
failed_when: false
|
||||||
when: "matrix_mautrix_hangouts_stat_database.stat.exists"
|
when: "matrix_mautrix_hangouts_stat_database.stat.exists"
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-mautrix-hangouts
|
name: matrix-mautrix-hangouts
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
when: "matrix_mautrix_hangouts_service_stat.stat.exists"
|
when: "matrix_mautrix_hangouts_service_stat.stat.exists"
|
||||||
|
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-mautrix-instagram
|
name: matrix-mautrix-instagram
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
when: "matrix_mautrix_instagram_service_stat.stat.exists"
|
when: "matrix_mautrix_instagram_service_stat.stat.exists"
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-mautrix-signal-daemon
|
name: matrix-mautrix-signal-daemon
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
when: "matrix_mautrix_signal_daemon_service_stat.stat.exists"
|
when: "matrix_mautrix_signal_daemon_service_stat.stat.exists"
|
||||||
|
|
||||||
@ -29,6 +30,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-mautrix-signal
|
name: matrix-mautrix-signal
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
when: "matrix_mautrix_signal_service_stat.stat.exists"
|
when: "matrix_mautrix_signal_service_stat.stat.exists"
|
||||||
|
|
||||||
|
@ -110,6 +110,8 @@ matrix_mautrix_telegram_configuration_extension: "{{ matrix_mautrix_telegram_con
|
|||||||
# You most likely don't need to touch this variable. Instead, see `matrix_mautrix_telegram_configuration_yaml`.
|
# You most likely don't need to touch this variable. Instead, see `matrix_mautrix_telegram_configuration_yaml`.
|
||||||
matrix_mautrix_telegram_configuration: "{{ matrix_mautrix_telegram_configuration_yaml|from_yaml|combine(matrix_mautrix_telegram_configuration_extension, recursive=True) }}"
|
matrix_mautrix_telegram_configuration: "{{ matrix_mautrix_telegram_configuration_yaml|from_yaml|combine(matrix_mautrix_telegram_configuration_extension, recursive=True) }}"
|
||||||
|
|
||||||
|
matrix_mautrix_telegram_sender_localpart: "telegrambot"
|
||||||
|
|
||||||
matrix_mautrix_telegram_registration_yaml: |
|
matrix_mautrix_telegram_registration_yaml: |
|
||||||
id: telegram
|
id: telegram
|
||||||
as_token: "{{ matrix_mautrix_telegram_appservice_token }}"
|
as_token: "{{ matrix_mautrix_telegram_appservice_token }}"
|
||||||
@ -123,10 +125,10 @@ matrix_mautrix_telegram_registration_yaml: |
|
|||||||
aliases:
|
aliases:
|
||||||
- exclusive: true
|
- exclusive: true
|
||||||
regex: '^#telegram_.+:{{ matrix_mautrix_telegram_homeserver_domain|regex_escape }}$'
|
regex: '^#telegram_.+:{{ matrix_mautrix_telegram_homeserver_domain|regex_escape }}$'
|
||||||
# See https://github.com/mautrix/signal/issues/43
|
|
||||||
sender_localpart: _bot_{{ matrix_mautrix_telegram_appservice_bot_username }}
|
sender_localpart: _bot_{{ matrix_mautrix_telegram_appservice_bot_username }}
|
||||||
url: {{ matrix_mautrix_telegram_appservice_address }}
|
url: {{ matrix_mautrix_telegram_appservice_address }}
|
||||||
rate_limited: false
|
rate_limited: false
|
||||||
de.sorunome.msc2409.push_ephemeral: true
|
de.sorunome.msc2409.push_ephemeral: true
|
||||||
|
# sender_localpart: "bridges_{{ matrix_mautrix_telegram_sender_localpart }}"
|
||||||
|
|
||||||
matrix_mautrix_telegram_registration: "{{ matrix_mautrix_telegram_registration_yaml|from_yaml }}"
|
matrix_mautrix_telegram_registration: "{{ matrix_mautrix_telegram_registration_yaml|from_yaml }}"
|
||||||
|
@ -107,6 +107,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-mautrix-telegram
|
name: matrix-mautrix-telegram
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
failed_when: false
|
failed_when: false
|
||||||
when: "matrix_mautrix_telegram_stat_database.stat.exists"
|
when: "matrix_mautrix_telegram_stat_database.stat.exists"
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-mautrix-telegram
|
name: matrix-mautrix-telegram
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
when: "matrix_mautrix_telegram_service_stat.stat.exists"
|
when: "matrix_mautrix_telegram_service_stat.stat.exists"
|
||||||
|
|
||||||
|
@ -36,7 +36,6 @@ matrix_mautrix_whatsapp_homeserver_token: ''
|
|||||||
|
|
||||||
matrix_mautrix_whatsapp_appservice_bot_username: whatsappbot
|
matrix_mautrix_whatsapp_appservice_bot_username: whatsappbot
|
||||||
|
|
||||||
|
|
||||||
# Database-related configuration fields.
|
# Database-related configuration fields.
|
||||||
#
|
#
|
||||||
# To use SQLite, stick to these defaults.
|
# To use SQLite, stick to these defaults.
|
||||||
@ -71,9 +70,14 @@ matrix_mautrix_whatsapp_appservice_database_uri: "{{
|
|||||||
}[matrix_mautrix_whatsapp_database_engine]
|
}[matrix_mautrix_whatsapp_database_engine]
|
||||||
}}"
|
}}"
|
||||||
|
|
||||||
|
|
||||||
# Can be set to enable automatic double-puppeting via Shared Secret Auth (https://github.com/devture/matrix-synapse-shared-secret-auth).
|
# Can be set to enable automatic double-puppeting via Shared Secret Auth (https://github.com/devture/matrix-synapse-shared-secret-auth).
|
||||||
matrix_mautrix_whatsapp_login_shared_secret: ''
|
matrix_mautrix_whatsapp_login_shared_secret: ''
|
||||||
|
matrix_mautrix_whatsapp_bridge_login_shared_secret_map:
|
||||||
|
"{{ {matrix_mautrix_whatsapp_homeserver_domain: matrix_mautrix_whatsapp_login_shared_secret} if matrix_mautrix_whatsapp_login_shared_secret else {} }}"
|
||||||
|
|
||||||
|
# Servers to always allow double puppeting from
|
||||||
|
matrix_mautrix_whatsapp_bridge_double_puppet_server_map:
|
||||||
|
"{{ matrix_mautrix_whatsapp_homeserver_domain : matrix_mautrix_whatsapp_homeserver_address }}"
|
||||||
|
|
||||||
# Default mautrix-whatsapp configuration template which covers the generic use case.
|
# Default mautrix-whatsapp configuration template which covers the generic use case.
|
||||||
# You can customize it by controlling the various variables inside it.
|
# You can customize it by controlling the various variables inside it.
|
||||||
|
@ -93,6 +93,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-mautrix-whatsapp
|
name: matrix-mautrix-whatsapp
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
failed_when: false
|
failed_when: false
|
||||||
when: "matrix_mautrix_whatsapp_stat_database.stat.exists"
|
when: "matrix_mautrix_whatsapp_stat_database.stat.exists"
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-mautrix-whatsapp
|
name: matrix-mautrix-whatsapp
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
when: "matrix_mautrix_whatsapp_service_stat.stat.exists"
|
when: "matrix_mautrix_whatsapp_service_stat.stat.exists"
|
||||||
|
|
||||||
|
@ -7,15 +7,17 @@ homeserver:
|
|||||||
domain: {{ matrix_mautrix_whatsapp_homeserver_domain }}
|
domain: {{ matrix_mautrix_whatsapp_homeserver_domain }}
|
||||||
# Application service host/registration related details.
|
# Application service host/registration related details.
|
||||||
# Changing these values requires regeneration of the registration.
|
# Changing these values requires regeneration of the registration.
|
||||||
|
# The URL to push real-time bridge status to.
|
||||||
|
# If set, the bridge will make POST requests to this URL whenever a user's whatsapp connection state changes.
|
||||||
|
# The bridge will use the appservice as_token to authorize requests.
|
||||||
|
status_endpoint: "null"
|
||||||
|
|
||||||
appservice:
|
appservice:
|
||||||
# The address that the homeserver can use to connect to this appservice.
|
# The address that the homeserver can use to connect to this appservice.
|
||||||
address: {{ matrix_mautrix_whatsapp_appservice_address }}
|
address: {{ matrix_mautrix_whatsapp_appservice_address }}
|
||||||
|
|
||||||
# The hostname and port where this appservice should listen.
|
# The hostname and port where this appservice should listen.
|
||||||
hostname: 0.0.0.0
|
hostname: 0.0.0.0
|
||||||
port: 8080
|
port: 8080
|
||||||
|
|
||||||
# Database config.
|
# Database config.
|
||||||
database:
|
database:
|
||||||
# The database type. "sqlite3" and "postgres" are supported.
|
# The database type. "sqlite3" and "postgres" are supported.
|
||||||
@ -27,10 +29,6 @@ appservice:
|
|||||||
# Maximum number of connections. Mostly relevant for Postgres.
|
# Maximum number of connections. Mostly relevant for Postgres.
|
||||||
max_open_conns: 20
|
max_open_conns: 20
|
||||||
max_idle_conns: 2
|
max_idle_conns: 2
|
||||||
|
|
||||||
# Path to the Matrix room state store.
|
|
||||||
state_store_path: ./mx-state.json
|
|
||||||
|
|
||||||
# The unique ID of this appservice.
|
# The unique ID of this appservice.
|
||||||
id: whatsapp
|
id: whatsapp
|
||||||
# Appservice bot details.
|
# Appservice bot details.
|
||||||
@ -41,7 +39,6 @@ appservice:
|
|||||||
# to leave display name/avatar as-is.
|
# to leave display name/avatar as-is.
|
||||||
displayname: WhatsApp bridge bot
|
displayname: WhatsApp bridge bot
|
||||||
avatar: mxc://maunium.net/NeXNQarUbrlYBiPCpprYsRqr
|
avatar: mxc://maunium.net/NeXNQarUbrlYBiPCpprYsRqr
|
||||||
|
|
||||||
# Authentication tokens for AS <-> HS communication. Autogenerated; do not modify.
|
# Authentication tokens for AS <-> HS communication. Autogenerated; do not modify.
|
||||||
as_token: "{{ matrix_mautrix_whatsapp_appservice_token }}"
|
as_token: "{{ matrix_mautrix_whatsapp_appservice_token }}"
|
||||||
hs_token: "{{ matrix_mautrix_whatsapp_homeserver_token }}"
|
hs_token: "{{ matrix_mautrix_whatsapp_homeserver_token }}"
|
||||||
@ -51,79 +48,137 @@ bridge:
|
|||||||
# Localpart template of MXIDs for WhatsApp users.
|
# Localpart template of MXIDs for WhatsApp users.
|
||||||
# {{ '{{.}}' }} is replaced with the phone number of the WhatsApp user.
|
# {{ '{{.}}' }} is replaced with the phone number of the WhatsApp user.
|
||||||
username_template: "{{ 'whatsapp_{{.}}' }}"
|
username_template: "{{ 'whatsapp_{{.}}' }}"
|
||||||
# Displayname template for WhatsApp users.
|
displayname_template: "{{ '{{if .PushName}}{{.PushName}}{{else if .BusinessName}}{{.BusinessName}}{{else}}{{.JID}}{{end}} (WA)' }}"
|
||||||
# {{ '{{.Notify'}}' }} - nickname set by the WhatsApp user
|
# Should the bridge send a read receipt from the bridge bot when a message has been sent to WhatsApp?
|
||||||
# {{ '{{.Jid}}' }} - phone number (international format)
|
delivery_receipts: false
|
||||||
# The following variables are also available, but will cause problems on multi-user instances:
|
# Should incoming calls send a message to the Matrix room?
|
||||||
# {{ '{{.Name}}' }} - display name from contact list
|
call_start_notices: true
|
||||||
# {{ '{{.Short}}' }} - short display name from contact list
|
# Should another user's cryptographic identity changing send a message to Matrix?
|
||||||
displayname_template: "{{ '{{if .Notify}}{{.Notify}}{{else}}{{.Jid}}{{end}} (WA)' }}"
|
identity_change_notices: false
|
||||||
# WhatsApp connection timeout in seconds.
|
# Should a "reactions not yet supported" warning be sent to the Matrix room when a user reacts to a message?
|
||||||
connection_timeout: 20
|
reaction_notices: true
|
||||||
# Maximum number of times to retry connecting on connection error.
|
portal_message_buffer: 128
|
||||||
max_connection_attempts: 3
|
# Settings for handling history sync payloads. These settings only apply right after login,
|
||||||
# Number of seconds to wait between connection attempts.
|
# because the phone only sends the history sync data once, and there's no way to re-request it
|
||||||
# Negative numbers are exponential backoff: -connection_retry_delay + 1 + 2^attempts
|
# (other than logging out and back in again).
|
||||||
connection_retry_delay: -1
|
history_sync:
|
||||||
# Whether or not the bridge should send a notice to the user's management room when it retries connecting.
|
# Should the bridge create portals for chats in the history sync payload?
|
||||||
# If false, it will only report when it stops retrying.
|
create_portals: true
|
||||||
report_connection_retry: true
|
# Maximum age of chats in seconds to create portals for. Set to 0 to create portals for all chats in sync payload.
|
||||||
# Maximum number of seconds to wait for chats to be sent at startup.
|
max_age: 604800
|
||||||
# If this is too low and you have lots of chats, it could cause backfilling to fail.
|
# Enable backfilling history sync payloads from WhatsApp using batch sending?
|
||||||
chat_list_wait: 30
|
# This requires a server with MSC2716 support, which is currently an experimental feature in synapse.
|
||||||
# Maximum number of seconds to wait to sync portals before force unlocking message processing.
|
# It can be enabled by setting experimental_features -> msc2716_enabled to true in homeserver.yaml.
|
||||||
# If this is too low and you have lots of chats, it could cause backfilling to fail.
|
# Note that as of Synapse 1.46, there are still some bugs with the implementation, especially if using event persistence workers.
|
||||||
portal_sync_wait: 600
|
backfill: false
|
||||||
|
# Use double puppets for backfilling?
|
||||||
# Whether or not to send call start/end notices to Matrix.
|
# In order to use this, the double puppets must be in the appservice's user ID namespace
|
||||||
call_notices:
|
# (because the bridge can't use the double puppet access token with batch sending).
|
||||||
start: true
|
# This only affects double puppets on the local server, double puppets on other servers will never be used.
|
||||||
end: true
|
# Doesn't work out of box with this playbook
|
||||||
|
double_puppet_backfill: false
|
||||||
# Number of chats to sync for new users.
|
# Should the bridge request a full sync from the phone when logging in?
|
||||||
initial_chat_sync_count: 10
|
# This bumps the size of history syncs from 3 months to 1 year.
|
||||||
# Number of old messages to fill when creating new portal rooms.
|
request_full_sync: false
|
||||||
initial_history_fill_count: 20
|
user_avatar_sync: true
|
||||||
# Maximum number of chats to sync when recovering from downtime.
|
# Should Matrix users leaving groups be bridged to WhatsApp?
|
||||||
# Set to -1 to sync all new chats during downtime.
|
bridge_matrix_leave: true
|
||||||
recovery_chat_sync_limit: -1
|
# Should the bridge sync with double puppeting to receive EDUs that aren't normally sent to appservices.
|
||||||
# Whether or not to sync history when recovering from downtime.
|
|
||||||
recovery_history_backfill: true
|
|
||||||
# Maximum number of seconds since last message in chat to skip
|
|
||||||
# syncing the chat in any case. This setting will take priority
|
|
||||||
# over both recovery_chat_sync_limit and initial_chat_sync_count.
|
|
||||||
# Default is 3 days = 259200 seconds
|
|
||||||
sync_max_chat_age: 259200
|
|
||||||
|
|
||||||
# Whether or not to sync with custom puppets to receive EDUs that
|
|
||||||
# are not normally sent to appservices.
|
|
||||||
sync_with_custom_puppets: true
|
sync_with_custom_puppets: true
|
||||||
# Shared secret for https://github.com/devture/matrix-synapse-shared-secret-auth
|
# Should the bridge update the m.direct account data event when double puppeting is enabled.
|
||||||
|
# Note that updating the m.direct event is not atomic (except with mautrix-asmux)
|
||||||
|
# and is therefore prone to race conditions.
|
||||||
|
sync_direct_chat_list: false
|
||||||
|
# When double puppeting is enabled, users can use `!wa toggle` to change whether
|
||||||
|
# presence and read receipts are bridged. These settings set the default values.
|
||||||
|
# Existing users won't be affected when these are changed.
|
||||||
|
default_bridge_receipts: true
|
||||||
|
default_bridge_presence: true
|
||||||
|
# Servers to always allow double puppeting from
|
||||||
|
double_puppet_server_map:
|
||||||
|
"{{ matrix_mautrix_whatsapp_homeserver_domain }}": {{ matrix_mautrix_whatsapp_homeserver_address }}
|
||||||
|
# Allow using double puppeting from any server with a valid client .well-known file.
|
||||||
|
double_puppet_allow_discovery: false
|
||||||
|
# Shared secrets for https://github.com/devture/matrix-synapse-shared-secret-auth
|
||||||
#
|
#
|
||||||
# If set, custom puppets will be enabled automatically for local users
|
# If set, double puppeting will be enabled automatically for local users
|
||||||
# instead of users having to find an access token and run `login-matrix`
|
# instead of users having to find an access token and run `login-matrix`
|
||||||
# manually.
|
# manually.
|
||||||
login_shared_secret: {{ matrix_mautrix_whatsapp_login_shared_secret|to_json }}
|
login_shared_secret_map: {{ matrix_mautrix_whatsapp_bridge_login_shared_secret_map|to_json }}
|
||||||
|
# Should the bridge explicitly set the avatar and room name for private chat portal rooms?
|
||||||
# Whether or not to invite own WhatsApp user's Matrix puppet into private
|
|
||||||
# chat portals when backfilling if needed.
|
|
||||||
# This always uses the default puppet instead of custom puppets due to
|
|
||||||
# rate limits and timestamp massaging.
|
|
||||||
invite_own_puppet_for_backfilling: true
|
|
||||||
# Whether or not to explicitly set the avatar and room name for private
|
|
||||||
# chat portal rooms. This can be useful if the previous field works fine,
|
|
||||||
# but causes room avatar/name bugs.
|
|
||||||
private_chat_portal_meta: false
|
private_chat_portal_meta: false
|
||||||
|
# Should Matrix m.notice-type messages be bridged?
|
||||||
|
bridge_notices: true
|
||||||
|
# Set this to true to tell the bridge to re-send m.bridge events to all rooms on the next run.
|
||||||
|
# This field will automatically be changed back to false after it, except if the config file is not writable.
|
||||||
|
resend_bridge_info: false
|
||||||
|
# When using double puppeting, should muted chats be muted in Matrix?
|
||||||
|
mute_bridging: false
|
||||||
|
# When using double puppeting, should archived chats be moved to a specific tag in Matrix?
|
||||||
|
# Note that WhatsApp unarchives chats when a message is received, which will also be mirrored to Matrix.
|
||||||
|
# This can be set to a tag (e.g. m.lowpriority), or null to disable.
|
||||||
|
archive_tag: null
|
||||||
|
# Same as above, but for pinned chats. The favorite tag is called m.favourite
|
||||||
|
pinned_tag: null
|
||||||
|
# Should mute status and tags only be bridged when the portal room is created?
|
||||||
|
tag_only_on_create: true
|
||||||
|
# Should WhatsApp status messages be bridged into a Matrix room?
|
||||||
|
# Disabling this won't affect already created status broadcast rooms.
|
||||||
|
enable_status_broadcast: true
|
||||||
|
# Should the status broadcast room be muted and moved into low priority by default?
|
||||||
|
# This is only applied when creating the room, the user can unmute/untag it later.
|
||||||
|
mute_status_broadcast: true
|
||||||
|
# Should the bridge use thumbnails from WhatsApp?
|
||||||
|
# They're disabled by default due to very low resolution.
|
||||||
|
whatsapp_thumbnail: false
|
||||||
# Allow invite permission for user. User can invite any bots to room with whatsapp
|
# Allow invite permission for user. User can invite any bots to room with whatsapp
|
||||||
# users (private chat and groups)
|
# users (private chat and groups)
|
||||||
allow_user_invite: false
|
allow_user_invite: false
|
||||||
|
# Whether or not created rooms should have federation enabled.
|
||||||
|
# If false, created portal rooms will never be federated.
|
||||||
|
federate_rooms: true
|
||||||
|
|
||||||
# The prefix for commands. Only required in non-management rooms.
|
# The prefix for commands. Only required in non-management rooms.
|
||||||
command_prefix: "!wa"
|
command_prefix: "!wa"
|
||||||
|
|
||||||
|
# Messages sent upon joining a management room.
|
||||||
|
# Markdown is supported. The defaults are listed below.
|
||||||
|
management_room_text:
|
||||||
|
# Sent when joining a room.
|
||||||
|
welcome: "Hello, I'm a WhatsApp bridge bot."
|
||||||
|
# Sent when joining a management room and the user is already logged in.
|
||||||
|
welcome_connected: "Use `help` for help."
|
||||||
|
# Sent when joining a management room and the user is not logged in.
|
||||||
|
welcome_unconnected: "Use `help` for help or `login` to log in."
|
||||||
|
# Optional extra text sent when joining a management room.
|
||||||
|
additional_help: ""
|
||||||
|
|
||||||
|
# End-to-bridge encryption support options.
|
||||||
|
#
|
||||||
|
# See https://docs.mau.fi/bridges/general/end-to-bridge-encryption.html for more info.
|
||||||
|
encryption:
|
||||||
|
# Allow encryption, work in group chat rooms with e2ee enabled
|
||||||
|
allow: false
|
||||||
|
# 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.
|
||||||
|
# It is recommended to also set private_chat_portal_meta to true when using this.
|
||||||
|
default: false
|
||||||
|
# Options for automatic key sharing.
|
||||||
|
key_sharing:
|
||||||
|
# Enable key sharing? If enabled, key requests for rooms where users are in will be fulfilled.
|
||||||
|
# You must use a client that supports requesting keys from other users to use this feature.
|
||||||
|
allow: false
|
||||||
|
# Require the requesting device to have a valid cross-signing signature?
|
||||||
|
# This doesn't require that the bridge has verified the device, only that the user has verified it.
|
||||||
|
# Not yet implemented.
|
||||||
|
require_cross_signing: false
|
||||||
|
# Require devices to be verified by the bridge?
|
||||||
|
# Verification by the bridge is not yet implemented.
|
||||||
|
require_verification: true
|
||||||
|
|
||||||
# Permissions for using the bridge.
|
# Permissions for using the bridge.
|
||||||
# Permitted values:
|
# Permitted values:
|
||||||
|
# relay - Talk through the relaybot (if enabled), no access otherwise
|
||||||
# user - Access to use the bridge to chat with a WhatsApp account.
|
# user - Access to use the bridge to chat with a WhatsApp account.
|
||||||
# admin - User level and some additional administration tools
|
# admin - User level and some additional administration tools
|
||||||
# Permitted keys:
|
# Permitted keys:
|
||||||
@ -133,15 +188,13 @@ bridge:
|
|||||||
permissions:
|
permissions:
|
||||||
"{{ matrix_mautrix_whatsapp_homeserver_domain }}": user
|
"{{ matrix_mautrix_whatsapp_homeserver_domain }}": user
|
||||||
|
|
||||||
relaybot:
|
# Settings for relay mode
|
||||||
# Whether or not relaybot support is enabled.
|
relay:
|
||||||
|
# Whether relay mode should be allowed. If allowed, `!wa set-relay` can be used to turn any
|
||||||
|
# authenticated user into a relaybot for that chat.
|
||||||
enabled: false
|
enabled: false
|
||||||
# The management room for the bot. This is where all status notifications are posted and
|
# Should only admins be allowed to set themselves as relay users?
|
||||||
# in this room, you can use `!wa <command>` instead of `!wa relaybot <command>`. Omitting
|
admin_only: true
|
||||||
# the command prefix completely like in user management rooms is not possible.
|
|
||||||
management: '!foo:example.com'
|
|
||||||
# List of users to invite to all created rooms that include the relaybot.
|
|
||||||
invites: []
|
|
||||||
# The formats to use when sending messages to WhatsApp via the relaybot.
|
# The formats to use when sending messages to WhatsApp via the relaybot.
|
||||||
message_formats:
|
message_formats:
|
||||||
m.text: "<b>{{ '{{ .Sender.Displayname }}' }}</b>: {{ '{{ .Message }}' }}"
|
m.text: "<b>{{ '{{ .Sender.Displayname }}' }}</b>: {{ '{{ .Message }}' }}"
|
||||||
@ -152,6 +205,7 @@ bridge:
|
|||||||
m.audio: "<b>{{ '{{ .Sender.Displayname }}' }}</b>: sent an audio file"
|
m.audio: "<b>{{ '{{ .Sender.Displayname }}' }}</b>: sent an audio file"
|
||||||
m.video: "<b>{{ '{{ .Sender.Displayname }}' }}</b>: sent a video"
|
m.video: "<b>{{ '{{ .Sender.Displayname }}' }}</b>: sent a video"
|
||||||
m.location: "<b>{{ '{{ .Sender.Displayname }}' }}</b>: sent a location"
|
m.location: "<b>{{ '{{ .Sender.Displayname }}' }}</b>: sent a location"
|
||||||
|
|
||||||
# Logging config.
|
# Logging config.
|
||||||
logging:
|
logging:
|
||||||
# The directory for log files. Will be created if not found.
|
# The directory for log files. Will be created if not found.
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-mx-puppet-discord
|
name: matrix-mx-puppet-discord
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
when: "matrix_mx_puppet_discord_service_stat.stat.exists"
|
when: "matrix_mx_puppet_discord_service_stat.stat.exists"
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ presence:
|
|||||||
# Bridge Discord online/offline status
|
# Bridge Discord online/offline status
|
||||||
enabled: true
|
enabled: true
|
||||||
# How often to send status to the homeserver in milliseconds
|
# How often to send status to the homeserver in milliseconds
|
||||||
interval: 500
|
interval: 10000
|
||||||
|
|
||||||
provisioning:
|
provisioning:
|
||||||
# Regex of Matrix IDs allowed to use the puppet bridge
|
# Regex of Matrix IDs allowed to use the puppet bridge
|
||||||
@ -70,7 +70,7 @@ namePatterns:
|
|||||||
#
|
#
|
||||||
# name: username of the user
|
# name: username of the user
|
||||||
# discriminator: hashtag of the user (ex. #1234)
|
# discriminator: hashtag of the user (ex. #1234)
|
||||||
user: :name
|
user: ":name (#:discriminator) (via Discord)"
|
||||||
|
|
||||||
# A user's guild-specific displayname - if they've set a custom nick in
|
# A user's guild-specific displayname - if they've set a custom nick in
|
||||||
# a guild
|
# a guild
|
||||||
@ -82,7 +82,7 @@ namePatterns:
|
|||||||
# displayname: the user's custom group-specific nick
|
# displayname: the user's custom group-specific nick
|
||||||
# channel: the name of the channel
|
# channel: the name of the channel
|
||||||
# guild: the name of the guild
|
# guild: the name of the guild
|
||||||
userOverride: :name
|
userOverride: ":displayname (:name#:discriminator) (via Discord)"
|
||||||
|
|
||||||
# Room names for bridged Discord channels
|
# Room names for bridged Discord channels
|
||||||
#
|
#
|
||||||
@ -90,7 +90,7 @@ namePatterns:
|
|||||||
#
|
#
|
||||||
# name: name of the channel
|
# name: name of the channel
|
||||||
# guild: name of the guild
|
# guild: name of the guild
|
||||||
room: :name
|
room: "#:name (:guild on Discord)"
|
||||||
|
|
||||||
# Group names for bridged Discord servers
|
# Group names for bridged Discord servers
|
||||||
#
|
#
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-mx-puppet-groupme
|
name: matrix-mx-puppet-groupme
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
failed_when: false
|
failed_when: false
|
||||||
when: "matrix_mx_puppet_groupme_stat_database.stat.exists"
|
when: "matrix_mx_puppet_groupme_stat_database.stat.exists"
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-mx-puppet-groupme
|
name: matrix-mx-puppet-groupme
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
when: "matrix_mx_puppet_groupme_service_stat.stat.exists"
|
when: "matrix_mx_puppet_groupme_service_stat.stat.exists"
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-mx-puppet-instagram
|
name: matrix-mx-puppet-instagram
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
when: "matrix_mx_puppet_instagram_service_stat.stat.exists"
|
when: "matrix_mx_puppet_instagram_service_stat.stat.exists"
|
||||||
|
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-mx-puppet-skype
|
name: matrix-mx-puppet-skype
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
failed_when: false
|
failed_when: false
|
||||||
when: "matrix_mx_puppet_skype_stat_database.stat.exists"
|
when: "matrix_mx_puppet_skype_stat_database.stat.exists"
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-mx-puppet-skype
|
name: matrix-mx-puppet-skype
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
when: "matrix_mx_puppet_skype_service_stat.stat.exists"
|
when: "matrix_mx_puppet_skype_service_stat.stat.exists"
|
||||||
|
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-mx-puppet-slack
|
name: matrix-mx-puppet-slack
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
failed_when: false
|
failed_when: false
|
||||||
when: "matrix_mx_puppet_slack_stat_database.stat.exists"
|
when: "matrix_mx_puppet_slack_stat_database.stat.exists"
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-mx-puppet-slack
|
name: matrix-mx-puppet-slack
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
when: "matrix_mx_puppet_slack_service_stat.stat.exists"
|
when: "matrix_mx_puppet_slack_service_stat.stat.exists"
|
||||||
|
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-mx-puppet-steam
|
name: matrix-mx-puppet-steam
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
failed_when: false
|
failed_when: false
|
||||||
when: "matrix_mx_puppet_steam_stat_database.stat.exists"
|
when: "matrix_mx_puppet_steam_stat_database.stat.exists"
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-mx-puppet-steam
|
name: matrix-mx-puppet-steam
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
when: "matrix_mx_puppet_steam_service_stat.stat.exists"
|
when: "matrix_mx_puppet_steam_service_stat.stat.exists"
|
||||||
|
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-mx-puppet-twitter
|
name: matrix-mx-puppet-twitter
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
failed_when: false
|
failed_when: false
|
||||||
when: "matrix_mx_puppet_twitter_stat_database.stat.exists"
|
when: "matrix_mx_puppet_twitter_stat_database.stat.exists"
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-mx-puppet-twitter
|
name: matrix-mx-puppet-twitter
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
when: "matrix_mx_puppet_twitter_service_stat.stat.exists"
|
when: "matrix_mx_puppet_twitter_service_stat.stat.exists"
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ matrix_sms_bridge_systemd_wanted_services_list: []
|
|||||||
|
|
||||||
matrix_sms_bridge_appservice_url: 'http://matrix-sms-bridge:8080'
|
matrix_sms_bridge_appservice_url: 'http://matrix-sms-bridge:8080'
|
||||||
matrix_sms_bridge_homeserver_hostname: 'matrix-synapse'
|
matrix_sms_bridge_homeserver_hostname: 'matrix-synapse'
|
||||||
matrix_sms_bridge_homeserver_port: '8008'
|
matrix_sms_bridge_homeserver_port: ""
|
||||||
|
|
||||||
matrix_sms_bridge_homserver_domain: "{{ matrix_domain }}"
|
matrix_sms_bridge_homserver_domain: "{{ matrix_domain }}"
|
||||||
matrix_sms_bridge_default_room: ''
|
matrix_sms_bridge_default_room: ''
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-sms-bridge
|
name: matrix-sms-bridge
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
when: "matrix_sms_bridge_service_stat.stat.exists"
|
when: "matrix_sms_bridge_service_stat.stat.exists"
|
||||||
|
|
||||||
@ -16,4 +17,4 @@
|
|||||||
file:
|
file:
|
||||||
path: "{{ matrix_systemd_path }}/matrix-sms-bridge.service"
|
path: "{{ matrix_systemd_path }}/matrix-sms-bridge.service"
|
||||||
state: absent
|
state: absent
|
||||||
when: "matrix_sms_bridge_service_stat.stat.exists"
|
when: "matrix_sms_bridge_service_stat.stat.exists"
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
when: "vars[item] == ''"
|
when: "vars[item] == ''"
|
||||||
with_items:
|
with_items:
|
||||||
- "matrix_sms_bridge_appservice_token"
|
- "matrix_sms_bridge_appservice_token"
|
||||||
|
- "matrix_sms_bridge_homeserver_port"
|
||||||
- "matrix_sms_bridge_homeserver_token"
|
- "matrix_sms_bridge_homeserver_token"
|
||||||
- "matrix_sms_bridge_default_region"
|
- "matrix_sms_bridge_default_region"
|
||||||
- "matrix_sms_bridge_default_timezone"
|
- "matrix_sms_bridge_default_timezone"
|
||||||
|
@ -7,7 +7,7 @@ matrix_client_element_container_image_self_build_repo: "https://github.com/vecto
|
|||||||
# - https://github.com/vector-im/element-web/issues/19544
|
# - https://github.com/vector-im/element-web/issues/19544
|
||||||
matrix_client_element_container_image_self_build_low_memory_system_patch_enabled: "{{ ansible_memtotal_mb < 4096 }}"
|
matrix_client_element_container_image_self_build_low_memory_system_patch_enabled: "{{ ansible_memtotal_mb < 4096 }}"
|
||||||
|
|
||||||
matrix_client_element_version: v1.9.3
|
matrix_client_element_version: v1.9.4
|
||||||
matrix_client_element_docker_image: "{{ matrix_client_element_docker_image_name_prefix }}vectorim/element-web:{{ matrix_client_element_version }}"
|
matrix_client_element_docker_image: "{{ matrix_client_element_docker_image_name_prefix }}vectorim/element-web:{{ matrix_client_element_version }}"
|
||||||
matrix_client_element_docker_image_name_prefix: "{{ 'localhost/' if matrix_client_element_container_image_self_build else matrix_container_global_registry_prefix }}"
|
matrix_client_element_docker_image_name_prefix: "{{ 'localhost/' if matrix_client_element_container_image_self_build else matrix_container_global_registry_prefix }}"
|
||||||
matrix_client_element_docker_image_force_pull: "{{ matrix_client_element_docker_image.endswith(':latest') }}"
|
matrix_client_element_docker_image_force_pull: "{{ matrix_client_element_docker_image.endswith(':latest') }}"
|
||||||
|
BIN
roles/matrix-client-element/files/antifa_coffee_cups.png
Normal file
BIN
roles/matrix-client-element/files/antifa_coffee_cups.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 188 KiB |
BIN
roles/matrix-client-element/files/background.jpg
Normal file
BIN
roles/matrix-client-element/files/background.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.1 MiB |
BIN
roles/matrix-client-element/files/background_small.jpg
Normal file
BIN
roles/matrix-client-element/files/background_small.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 747 KiB |
@ -10,6 +10,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-riot-web
|
name: matrix-riot-web
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
register: stopping_result
|
register: stopping_result
|
||||||
when: "matrix_client_element_enabled|bool and matrix_client_riot_web_service_stat.stat.exists"
|
when: "matrix_client_element_enabled|bool and matrix_client_riot_web_service_stat.stat.exists"
|
||||||
|
@ -76,6 +76,18 @@
|
|||||||
- {src: "{{ matrix_client_element_embedded_pages_home_path }}", name: "home.html"}
|
- {src: "{{ matrix_client_element_embedded_pages_home_path }}", name: "home.html"}
|
||||||
when: "item.src is not none"
|
when: "item.src is not none"
|
||||||
|
|
||||||
|
- name: Copy Element costum files
|
||||||
|
copy:
|
||||||
|
src: "{{ item.src }}"
|
||||||
|
dest: "{{ matrix_client_element_data_path }}/{{ item.name }}"
|
||||||
|
mode: 0644
|
||||||
|
owner: "{{ matrix_user_username }}"
|
||||||
|
group: "{{ matrix_user_groupname }}"
|
||||||
|
with_items:
|
||||||
|
- {src: "{{ role_path }}/files/background.jpg", name: "background.jpg"}
|
||||||
|
- {src: "{{ role_path }}/files/antifa_coffee_cups.png", name: "logo.png"}
|
||||||
|
when: "matrix_client_element_enabled|bool and item.src is not none"
|
||||||
|
|
||||||
- name: Ensure Element config files removed
|
- name: Ensure Element config files removed
|
||||||
file:
|
file:
|
||||||
path: "{{ matrix_client_element_data_path }}/{{ item.name }}"
|
path: "{{ matrix_client_element_data_path }}/{{ item.name }}"
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-client-element
|
name: matrix-client-element
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
register: stopping_result
|
register: stopping_result
|
||||||
when: "matrix_client_element_service_stat.stat.exists|bool"
|
when: "matrix_client_element_service_stat.stat.exists|bool"
|
||||||
|
@ -33,7 +33,7 @@ h1::after {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.mx_Logo {
|
.mx_Logo {
|
||||||
height: 54px;
|
height: 92px;
|
||||||
margin-top: 2px;
|
margin-top: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-client-hydrogen
|
name: matrix-client-hydrogen
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
register: stopping_result
|
register: stopping_result
|
||||||
when: "matrix_client_hydrogen_service_stat.stat.exists|bool"
|
when: "matrix_client_hydrogen_service_stat.stat.exists|bool"
|
||||||
|
@ -22,7 +22,7 @@ matrix_corporal_container_extra_arguments: []
|
|||||||
# List of systemd services that matrix-corporal.service depends on
|
# List of systemd services that matrix-corporal.service depends on
|
||||||
matrix_corporal_systemd_required_services_list: ['docker.service']
|
matrix_corporal_systemd_required_services_list: ['docker.service']
|
||||||
|
|
||||||
matrix_corporal_version: 2.1.2
|
matrix_corporal_version: 2.2.1
|
||||||
matrix_corporal_docker_image: "{{ matrix_corporal_docker_image_name_prefix }}devture/matrix-corporal:{{ matrix_corporal_docker_image_tag }}"
|
matrix_corporal_docker_image: "{{ matrix_corporal_docker_image_name_prefix }}devture/matrix-corporal:{{ matrix_corporal_docker_image_tag }}"
|
||||||
matrix_corporal_docker_image_name_prefix: "{{ 'localhost/' if matrix_corporal_container_image_self_build else matrix_container_global_registry_prefix }}"
|
matrix_corporal_docker_image_name_prefix: "{{ 'localhost/' if matrix_corporal_container_image_self_build else matrix_container_global_registry_prefix }}"
|
||||||
matrix_corporal_docker_image_tag: "{{ matrix_corporal_version }}" # for backward-compatibility
|
matrix_corporal_docker_image_tag: "{{ matrix_corporal_version }}" # for backward-compatibility
|
||||||
@ -36,7 +36,7 @@ matrix_corporal_var_dir_path: "{{ matrix_corporal_base_path }}/var"
|
|||||||
|
|
||||||
matrix_corporal_matrix_homeserver_domain_name: "{{ matrix_domain }}"
|
matrix_corporal_matrix_homeserver_domain_name: "{{ matrix_domain }}"
|
||||||
|
|
||||||
# Controls where matrix-corporal can reach your Synapse server (e.g. "http://matrix-synapse:8008").
|
# Controls where matrix-corporal can reach your Synapse server (e.g. "http://matrix-synapse:{{ matrix_synapse_container_client_api_port }}").
|
||||||
# If Synapse runs on the same machine, you may need to add its service to `matrix_corporal_systemd_required_services_list`.
|
# If Synapse runs on the same machine, you may need to add its service to `matrix_corporal_systemd_required_services_list`.
|
||||||
matrix_corporal_matrix_homeserver_api_endpoint: ""
|
matrix_corporal_matrix_homeserver_api_endpoint: ""
|
||||||
|
|
||||||
|
@ -83,6 +83,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-corporal
|
name: matrix-corporal
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
register: stopping_result
|
register: stopping_result
|
||||||
when: "not matrix_corporal_enabled|bool and matrix_corporal_service_stat.stat.exists"
|
when: "not matrix_corporal_enabled|bool and matrix_corporal_service_stat.stat.exists"
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-coturn
|
name: matrix-coturn
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
when: "matrix_coturn_service_stat.stat.exists|bool"
|
when: "matrix_coturn_service_stat.stat.exists|bool"
|
||||||
|
|
||||||
@ -17,6 +18,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-coturn
|
name: matrix-coturn
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
failed_when: false
|
failed_when: false
|
||||||
when: "matrix_coturn_service_stat.stat.exists|bool"
|
when: "matrix_coturn_service_stat.stat.exists|bool"
|
||||||
|
@ -39,7 +39,7 @@ matrix_dimension_integrations_rest_url: "https://{{ matrix_server_fqn_dimension
|
|||||||
matrix_dimension_integrations_widgets_urls: ["https://{{ matrix_server_fqn_dimension }}/widgets"]
|
matrix_dimension_integrations_widgets_urls: ["https://{{ matrix_server_fqn_dimension }}/widgets"]
|
||||||
matrix_dimension_integrations_jitsi_widget_url: "https://{{ matrix_server_fqn_dimension }}/widgets/jitsi"
|
matrix_dimension_integrations_jitsi_widget_url: "https://{{ matrix_server_fqn_dimension }}/widgets/jitsi"
|
||||||
|
|
||||||
matrix_dimension_homeserver_federationUrl: "http://matrix-synapse:8048"
|
matrix_dimension_homeserver_federationUrl: ""
|
||||||
|
|
||||||
|
|
||||||
# Database-related configuration fields.
|
# Database-related configuration fields.
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-dimension
|
name: matrix-dimension
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
register: stopping_result
|
register: stopping_result
|
||||||
when: "matrix_dimension_service_stat.stat.exists|bool"
|
when: "matrix_dimension_service_stat.stat.exists|bool"
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-dynamic-dns
|
name: matrix-dynamic-dns
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
when: "matrix_dynamic_dns_service_stat.stat.exists"
|
when: "matrix_dynamic_dns_service_stat.stat.exists"
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-email2matrix
|
name: matrix-email2matrix
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
register: stopping_result
|
register: stopping_result
|
||||||
when: "matrix_email2matrix_service_stat.stat.exists|bool"
|
when: "matrix_email2matrix_service_stat.stat.exists|bool"
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-etherpad
|
name: matrix-etherpad
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
register: stopping_result
|
register: stopping_result
|
||||||
when: "matrix_etherpad_service_stat.stat.exists|bool"
|
when: "matrix_etherpad_service_stat.stat.exists|bool"
|
||||||
|
@ -93,6 +93,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-grafana
|
name: matrix-grafana
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
register: stopping_result
|
register: stopping_result
|
||||||
when: "not matrix_grafana_enabled|bool and matrix_grafana_service_stat.stat.exists"
|
when: "not matrix_grafana_enabled|bool and matrix_grafana_service_stat.stat.exists"
|
||||||
|
@ -68,6 +68,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-jitsi-jicofo
|
name: matrix-jitsi-jicofo
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
register: stopping_result
|
register: stopping_result
|
||||||
when: "not matrix_jitsi_enabled|bool and matrix_jitsi_jicofo_service_stat.stat.exists"
|
when: "not matrix_jitsi_enabled|bool and matrix_jitsi_jicofo_service_stat.stat.exists"
|
||||||
|
@ -68,6 +68,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-jitsi-jvb
|
name: matrix-jitsi-jvb
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
register: stopping_result
|
register: stopping_result
|
||||||
when: "not matrix_jitsi_enabled|bool and matrix_jitsi_jvb_service_stat.stat.exists"
|
when: "not matrix_jitsi_enabled|bool and matrix_jitsi_jvb_service_stat.stat.exists"
|
||||||
|
@ -59,6 +59,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-jitsi-prosody
|
name: matrix-jitsi-prosody
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
register: stopping_result
|
register: stopping_result
|
||||||
when: "not matrix_jitsi_enabled|bool and matrix_jitsi_prosody_service_stat.stat.exists"
|
when: "not matrix_jitsi_enabled|bool and matrix_jitsi_prosody_service_stat.stat.exists"
|
||||||
|
@ -69,6 +69,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-jitsi-web
|
name: matrix-jitsi-web
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
register: stopping_result
|
register: stopping_result
|
||||||
when: "not matrix_jitsi_enabled|bool and matrix_jitsi_web_service_stat.stat.exists"
|
when: "not matrix_jitsi_enabled|bool and matrix_jitsi_web_service_stat.stat.exists"
|
||||||
|
@ -22,4 +22,6 @@ JVB_OCTO_BIND_ADDRESS
|
|||||||
JVB_OCTO_PUBLIC_ADDRESS
|
JVB_OCTO_PUBLIC_ADDRESS
|
||||||
JVB_OCTO_BIND_PORT
|
JVB_OCTO_BIND_PORT
|
||||||
JVB_OCTO_REGION
|
JVB_OCTO_REGION
|
||||||
TZ={{ matrix_jitsi_timezone }}
|
TZ={{ matrix_jitsi_timezone }}
|
||||||
|
|
||||||
|
{{ matrix_jitsi_jvb_environment_variables_extension }}
|
||||||
|
@ -91,4 +91,6 @@ XMPP_DOMAIN={{ matrix_jitsi_xmpp_domain }}
|
|||||||
XMPP_GUEST_DOMAIN={{ matrix_jitsi_xmpp_guest_domain }}
|
XMPP_GUEST_DOMAIN={{ matrix_jitsi_xmpp_guest_domain }}
|
||||||
XMPP_MUC_DOMAIN={{ matrix_jitsi_xmpp_muc_domain }}
|
XMPP_MUC_DOMAIN={{ matrix_jitsi_xmpp_muc_domain }}
|
||||||
XMPP_RECORDER_DOMAIN={{ matrix_jitsi_recorder_domain }}
|
XMPP_RECORDER_DOMAIN={{ matrix_jitsi_recorder_domain }}
|
||||||
TOKEN_AUTH_URL
|
TOKEN_AUTH_URL
|
||||||
|
|
||||||
|
{{ matrix_jitsi_web_environment_variables_extension }}
|
||||||
|
@ -19,8 +19,8 @@ matrix_ma1sd_docker_src_files_path: "{{ matrix_ma1sd_base_path }}/docker-src/ma1
|
|||||||
matrix_ma1sd_config_path: "{{ matrix_ma1sd_base_path }}/config"
|
matrix_ma1sd_config_path: "{{ matrix_ma1sd_base_path }}/config"
|
||||||
matrix_ma1sd_data_path: "{{ matrix_ma1sd_base_path }}/data"
|
matrix_ma1sd_data_path: "{{ matrix_ma1sd_base_path }}/data"
|
||||||
|
|
||||||
matrix_ma1sd_default_port: 8090
|
matrix_ma1sd_container_port: 8090
|
||||||
# Controls whether the matrix-ma1sd container exposes its HTTP port (tcp/{{ matrix_ma1sd_default_port }} in the container).
|
# Controls whether the matrix-ma1sd container exposes its HTTP port (tcp/{{ matrix_ma1sd_container_port }} in the container).
|
||||||
#
|
#
|
||||||
# Takes an "<ip>:<port>" or "<port>" value (e.g. "127.0.0.1:8090"), or empty string to not expose.
|
# Takes an "<ip>:<port>" or "<port>" value (e.g. "127.0.0.1:8090"), or empty string to not expose.
|
||||||
matrix_ma1sd_container_http_host_bind_port: ''
|
matrix_ma1sd_container_http_host_bind_port: ''
|
||||||
@ -83,7 +83,7 @@ matrix_ma1sd_threepid_medium_email_connectors_smtp_password: ""
|
|||||||
# so that ma1sd can rewrite the original URL to one that would reach the homeserver.
|
# so that ma1sd can rewrite the original URL to one that would reach the homeserver.
|
||||||
matrix_ma1sd_dns_overwrite_enabled: false
|
matrix_ma1sd_dns_overwrite_enabled: false
|
||||||
matrix_ma1sd_dns_overwrite_homeserver_client_name: "{{ matrix_server_fqn_matrix }}"
|
matrix_ma1sd_dns_overwrite_homeserver_client_name: "{{ matrix_server_fqn_matrix }}"
|
||||||
matrix_ma1sd_dns_overwrite_homeserver_client_value: "http://matrix-synapse:8008"
|
matrix_ma1sd_dns_overwrite_homeserver_client_value: ""
|
||||||
|
|
||||||
# Override the default session templates
|
# Override the default session templates
|
||||||
# To use this, fill in the template variables with the full desired template as a multi-line YAML variable
|
# To use this, fill in the template variables with the full desired template as a multi-line YAML variable
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-mxisd
|
name: matrix-mxisd
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
when: "matrix_mxisd_service_stat.stat.exists"
|
when: "matrix_mxisd_service_stat.stat.exists"
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
service:
|
service:
|
||||||
name: matrix-ma1sd
|
name: matrix-ma1sd
|
||||||
state: stopped
|
state: stopped
|
||||||
|
enabled: no
|
||||||
daemon_reload: yes
|
daemon_reload: yes
|
||||||
register: stopping_result
|
register: stopping_result
|
||||||
when: "matrix_ma1sd_service_stat.stat.exists|bool"
|
when: "matrix_ma1sd_service_stat.stat.exists|bool"
|
||||||
|
@ -46,6 +46,7 @@
|
|||||||
when: "vars[item] == ''"
|
when: "vars[item] == ''"
|
||||||
with_items:
|
with_items:
|
||||||
- "matrix_ma1sd_threepid_medium_email_connectors_smtp_host"
|
- "matrix_ma1sd_threepid_medium_email_connectors_smtp_host"
|
||||||
|
- "matrix_ma1sd_dns_overwrite_homeserver_client_value"
|
||||||
|
|
||||||
- name: (Deprecation) Catch and report renamed ma1sd variables
|
- name: (Deprecation) Catch and report renamed ma1sd variables
|
||||||
fail:
|
fail:
|
||||||
@ -56,6 +57,7 @@
|
|||||||
with_items:
|
with_items:
|
||||||
- {'old': 'matrix_ma1sd_container_expose_port', 'new': '<superseded by matrix_ma1sd_container_http_host_bind_port>'}
|
- {'old': 'matrix_ma1sd_container_expose_port', 'new': '<superseded by matrix_ma1sd_container_http_host_bind_port>'}
|
||||||
- {'old': 'matrix_ma1sd_threepid_medium_email_custom_unbind_fraudulent_template', 'new': 'matrix_ma1sd_threepid_medium_email_custom_session_unbind_notification_template'}
|
- {'old': 'matrix_ma1sd_threepid_medium_email_custom_unbind_fraudulent_template', 'new': 'matrix_ma1sd_threepid_medium_email_custom_session_unbind_notification_template'}
|
||||||
|
- {'old': 'matrix_ma1sd_default_port', 'new': 'matrix_ma1sd_container_port'}
|
||||||
|
|
||||||
- name: (Deprecation) Catch and report mxisd variables
|
- name: (Deprecation) Catch and report mxisd variables
|
||||||
fail:
|
fail:
|
||||||
|
@ -26,7 +26,7 @@ ExecStart={{ matrix_host_command_docker }} run --rm --name matrix-ma1sd \
|
|||||||
--tmpfs=/tmp:rw,exec,nosuid,size=10m \
|
--tmpfs=/tmp:rw,exec,nosuid,size=10m \
|
||||||
--network={{ matrix_docker_network }} \
|
--network={{ matrix_docker_network }} \
|
||||||
{% if matrix_ma1sd_container_http_host_bind_port %}
|
{% if matrix_ma1sd_container_http_host_bind_port %}
|
||||||
-p {{ matrix_ma1sd_container_http_host_bind_port }}:{{ matrix_ma1sd_default_port }} \
|
-p {{ matrix_ma1sd_container_http_host_bind_port }}:{{ matrix_ma1sd_container_port }} \
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if matrix_ma1sd_verbose_logging %}
|
{% if matrix_ma1sd_verbose_logging %}
|
||||||
-e MA1SD_LOG_LEVEL=debug \
|
-e MA1SD_LOG_LEVEL=debug \
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user