73 Commits

Author SHA1 Message Date
64ae90e701 meta: move inventory structure to be more usable 2025-08-02 19:20:12 +02:00
8e82dc53f6 meta: add own inventory, add vault-unlock with GPG 2025-08-02 19:20:10 +02:00
Slavi Pantaleev
e343b69510 Upgrade devture/ansible (11.1.0-r0-0 -> 11.6.0-r0-0) 2025-08-02 07:40:50 +03:00
renovate[bot]
9706f9eb97 Update dependency click to v8.2.2 2025-08-02 06:54:50 +03:00
renovate[bot]
6f2e7e7a57 Update ghcr.io/element-hq/synapse Docker tag to v1.135.0 2025-08-01 20:10:42 +03:00
Slavi Pantaleev
ce8a9b1653 Upgrade postgres-backup (v17-6 -> v17-7) 2025-08-01 15:13:27 +03:00
Slavi Pantaleev
75b0aeabee Upgrade Postgres (v17.5-4 -> v17.5-5) 2025-08-01 15:11:50 +03:00
Slavi Pantaleev
dca53824ef Upgrade Postgres (v17.5-3 -> v17.5-4) 2025-08-01 15:08:14 +03:00
Slavi Pantaleev
1761615bf8 Make devture_playbook_runtime_messages_list integration compatible with ansible-core>=2.19.0
Related to https://github.com/devture/com.devture.ansible.role.playbook_runtime_messages/issues/1
2025-08-01 15:07:52 +03:00
renovate[bot]
2f429411f3 Update ghcr.io/element-hq/element-call Docker tag to v0.14.0 2025-07-31 14:46:23 +03:00
Slavi Pantaleev
a01b111495 Upgrade systemd_docker_base (v1.4.0-0 -> v1.4.1-0) 2025-07-31 07:17:59 +03:00
Aine
5d5289576e Merge pull request #4468 from spantaleev/renovate/ghcr.io-element-hq-element-web-1.x
Update ghcr.io/element-hq/element-web Docker tag to v1.11.108
2025-07-30 15:38:48 +00:00
renovate[bot]
d2419fccf3 Update ghcr.io/element-hq/element-web Docker tag to v1.11.108 2025-07-30 15:36:35 +00:00
Aine
cbbf20004c replace access log ip anonymization with vars to control access logs 2025-07-30 14:40:48 +01:00
renovate[bot]
5de4b5c657 Update docker.io/metio/matrix-alertmanager-receiver Docker tag to v2025.7.30 2025-07-30 15:49:45 +03:00
Aine
e8c7091c3f update nginx configs for cinny, hydrogen, and synapse reverse proxy companion with ip anonymization 2025-07-30 12:59:42 +01:00
Slavi Pantaleev
84b0879606 Upgrade livekit-server (v1.9.0-4 -> v1.9.0-5) and disable livekit_server_config_room_auto_create to improve security
Ref:
- https://github.com/element-hq/lk-jwt-service/releases/tag/v0.3.0
- 5e483e7554/config-sample.yaml (L168-L170)
- 2a1b045526
2025-07-30 07:02:45 +03:00
Slavi Pantaleev
0d56aa126c Fix container name typo (matrix-jwt-service -> matrix-livekit-jwt-service) in ExecStop 2025-07-30 06:49:21 +03:00
Slavi Pantaleev
d4c168daa9 Do not use docker stop --time (deprecated in Docker v28 in favor of --timeout or just -t) 2025-07-30 06:48:33 +03:00
Slavi Pantaleev
e7d4bd4e28 Upgrade livekit-jwt-servie (0.2.3 -> 0.3.0) and make use of the new LIVEKIT_FULL_ACCESS_HOMESERVERS environment variable
Ref: https://github.com/element-hq/lk-jwt-service/releases/tag/v0.3.0
2025-07-30 06:46:24 +03:00
Slavi Pantaleev
0728f9ca36 Upgrade playbook_help (201c939eed363de269a83ba29784fc3244846048 -> 7663e3114513e56f28d3ed762059b445c678a71a) 2025-07-30 06:37:44 +03:00
renovate[bot]
c1f9032f04 Update ansible/ansible-lint action to v25.7.0 2025-07-30 06:16:38 +03:00
renovate[bot]
abbcb0bc22 Update dependency docutils to v0.22 2025-07-30 06:16:23 +03:00
renovate[bot]
11028761a1 Update ghcr.io/element-hq/element-web Docker tag to v1.11.107 2025-07-29 16:39:29 +03:00
Paul ALNET
24d6d4b94b fix indentation in ma1sd validate_config 2025-07-29 16:35:17 +03:00
renovate[bot]
350cd2031a Update ghcr.io/element-hq/matrix-authentication-service Docker tag to v0.20.0 2025-07-29 15:04:04 +03:00
Slavi Pantaleev
95f239c4a6 Upgrade Etherpad (v2.3.2-4 -> v2.3.2-5) to restore compatibility with older Ansible (<=2.19.0) 2025-07-28 07:12:29 +03:00
Slavi Pantaleev
7f1fa52dd3 Do not invoke render_worker_upstream() with an empty workers list
On ansible-core 2.19.0, invoking macro like this (which only outputted
something in its `if` block, not in `else`), resulted in a macro
outputting `None`.

One way to work around it is to add an explicit `else` block which also
outputs something.

A better way to work around it is to only invoke the macro if it
has something to output.

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/4458
2025-07-27 09:21:12 +03:00
Slavi Pantaleev
9d31b44040 Make matrix-static-files not reference other matrix_authentication_service_* variables if MAS is not enabled 2025-07-27 08:22:42 +03:00
Slavi Pantaleev
d876da4186 Explicitly tell template-lookup to not auto-parse JSON files
ansible-core>=2.19.0 only auto-parses YAML files, not JSON.

Previous ansible-core versions auto-parsed JSON as well, but ansible-core>=2.19.0
doesn't, so we added a `from_json` post-filter.
However, older versions auto-parsing JSON and turning it into a dict, on
which we later run `from_json` is no good.

In this patch, we try to equalize behavior and configure Ansible to never parse JSON,
hopefully making old-Ansible behave like new Ansible.

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/4458

Ref: https://docs.ansible.com/ansible/latest/collections/ansible/builtin/template_lookup.html#parameter-convert_data
2025-07-27 07:45:58 +03:00
Slavi Pantaleev
4ef78bdb7f Adjust default value for matrix_synapse_admin_configuration_extension_json_auto to match what we expect and how we use it
We expect a string, which is parsed via `from_json`.

This matches previous usage in inventories, as well as what the
user-controlled precedessor of this variable (`matrix_synapse_admin_configuration_extension_json`)
is like.

Related to 997e6ca611

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/4459
2025-07-27 07:36:21 +03:00
Aine
c085b540f2 fix etherpad postgres wiring 2025-07-26 23:51:38 +01:00
Aine
9d98c5056e update etherpad role 2025-07-26 23:36:57 +01:00
Aine
da9b82439b fix etherpad (ansible>=2.19.0) 2025-07-26 23:30:50 +01:00
Aine
997e6ca611 fix synapse-admin for ansible-core>=2.19.0. Related to #4445 2025-07-26 22:44:55 +01:00
Slavi Pantaleev
3a11a32f9e Do not rely on ansible-core>=2.19.0 to process Jinja blocks inside strings found in other strings blocks
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/4445
2025-07-26 19:09:11 +03:00
Slavi Pantaleev
570c4121b7 Make sure remaining when dict keys do not refer to variables directly, but open a Jinja block
Most `when` dict keys already were done correctly, but these few weren't.

ansible-core 2.19.0 reported the following errors for them:

> [WARNING]: Deprecation warnings can be disabled by setting `deprecation_warnings=False` in ansible.cfg.
> [DEPRECATION WARNING]: The `bool` filter coerced invalid value 'variable_name' (str) to False. This feature will be removed from ansible-core version 2.23.
2025-07-26 18:53:11 +03:00
Slavi Pantaleev
90813b3739 Pass the result of JSON-file template lookups through from_json for better ansible-core>=2.19.0 compatibility
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/4445

It seems like ansible-core 2.19.0 no longer automatically parses template lookup content
as JSON (into a dict) when dealing with template files (be it `file.json.j2` or `file.j2`).

For files detected to contain YAML (`.ya?ml.j2`, but possibly others),
it automatically parses YAML, because the `convert_data` option
for the template lookup defaults to `true`.
Ref: https://docs.ansible.com/ansible/latest/collections/ansible/builtin/template_lookup.html
2025-07-26 18:53:11 +03:00
Slavi Pantaleev
f2524902af Cast variables to string before running length on them when checking if a variable contains a value
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/4445
2025-07-26 18:13:07 +03:00
Slavi Pantaleev
2ee0826079 Upgrade backup-borg (v1.4.1-1.9.14-0 -> v1.4.1-1.9.14-1) 2025-07-26 17:59:50 +03:00
Slavi Pantaleev
51ab9ed9ff Adjust lstrip_blocks to use a bool value for compatibility with ansible-core>=2.19.0
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/4445
2025-07-26 17:58:12 +03:00
Slavi Pantaleev
5651206e77 Fix indentation of when clause
Fixup for a1f6ee4dc9
2025-07-26 17:57:24 +03:00
Slavi Pantaleev
a09760492b Update various roles to versions that offer better compatibility with ansible-core>=2.19.0
Ref: https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/4445
2025-07-26 17:52:43 +03:00
Slavi Pantaleev
a1f6ee4dc9 Improve compatibility with ansible-core>=2.19.0 by not reaching into vars
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/4445
2025-07-26 17:50:20 +03:00
renovate[bot]
6da6b466da Update dependency exim_relay to v4.98.1-r0-2-1 2025-07-26 17:28:54 +03:00
renovate[bot]
c7989af64f Update dependency etherpad to v2.3.2-2 2025-07-26 17:28:32 +03:00
renovate[bot]
28870d2867 Update dependency etherpad to v2.3.2-1 2025-07-26 12:36:37 +03:00
renovate[bot]
8c89f577ad Update dependency container_socket_proxy to v0.3.0-7 2025-07-26 12:36:11 +03:00
renovate[bot]
e2cb95f145 Update dependency postgres to v17.5-1 2025-07-26 09:15:37 +03:00
renovate[bot]
d4d293f9a4 Update dependency traefik to v3.5.0-1 2025-07-26 09:15:07 +03:00
adam-kress
d70bccbda4 Upgrade Jitsi (v10314-1 -> v10431-0) 2025-07-26 05:32:40 +03:00
Aine
16212150a3 Sygnal: rollback to v0.15.1, because v0.16.0's docker image is broken 2025-07-24 16:47:36 +01:00
renovate[bot]
69184bc4a3 Update matrixdotorg/sygnal Docker tag to v0.16.0 2025-07-24 12:39:35 +03:00
renovate[bot]
514a947386 Update dependency traefik to v3.5.0-0 2025-07-24 08:20:06 +03:00
renovate[bot]
8ab525d609 Update dependency grafana to v11.6.4-0 2025-07-24 08:19:47 +03:00
renovate[bot]
8be4927770 Update docker.io/metio/matrix-alertmanager-receiver Docker tag to v2025.7.23 2025-07-23 14:20:11 +03:00
Aine
7261be5537 add matrix_synapse_ext_password_provider_ldap_tls_options_validate var 2025-07-23 08:46:08 +01:00
renovate[bot]
7eff95f38d Update joseluisq/static-web-server Docker tag to v2.38.0 2025-07-22 09:04:44 +03:00
renovate[bot]
abc74a6b96 Update dock.mau.dev/mautrix/whatsapp Docker tag to v0.12.3 2025-07-17 10:22:32 +03:00
renovate[bot]
c6871d187f Update dock.mau.dev/mautrix/twitter Docker tag to v0.4.3 2025-07-17 10:22:26 +03:00
renovate[bot]
7cf0fe52d4 Update dock.mau.dev/mautrix/telegram Docker tag to v0.15.3 2025-07-17 10:16:48 +03:00
renovate[bot]
70686595d5 Update dock.mau.dev/mautrix/slack Docker tag to v0.2.2 2025-07-17 10:16:41 +03:00
renovate[bot]
2ad2fd8b57 Update dock.mau.dev/mautrix/signal Docker tag to v0.8.5 2025-07-17 06:44:09 +03:00
renovate[bot]
eb067b7536 Update dock.mau.dev/mautrix/discord Docker tag to v0.7.5 2025-07-17 06:29:47 +03:00
renovate[bot]
c1d5d38cf6 Update dock.mau.dev/mautrix/bluesky Docker tag to v0.1.2 2025-07-17 06:29:39 +03:00
renovate[bot]
b5af7f7a32 Update dock.mau.dev/mautrix/meta Docker tag to v0.5.2 2025-07-17 06:29:29 +03:00
renovate[bot]
a04a72d4e5 Update dock.mau.dev/mautrix/gmessages Docker tag to v0.6.4 2025-07-17 06:29:23 +03:00
renovate[bot]
b8029111c9 Update ghcr.io/element-hq/element-web Docker tag to v1.11.106 2025-07-16 06:35:42 +03:00
renovate[bot]
6a98f47f73 Update ghcr.io/element-hq/matrix-authentication-service Docker tag to v0.19.0 2025-07-15 18:41:12 +03:00
renovate[bot]
8ecee76f62 Update ghcr.io/element-hq/synapse Docker tag to v1.134.0 2025-07-15 18:41:03 +03:00
renovate[bot]
30156f1ac0 Update dependency prometheus to v3.5.0-0 2025-07-15 07:03:54 +03:00
renovate[bot]
aa527d2b99 Update dependency certifi to v2025.7.14 2025-07-14 08:50:25 +03:00
Aine
f3a819c5f1 Synapse Admin v0.11.1-etke45 2025-07-13 22:23:48 +01:00
277 changed files with 1175 additions and 418 deletions

View File

@@ -26,7 +26,7 @@ jobs:
uses: actions/checkout@v4
- name: Run ansible-lint
uses: ansible/ansible-lint@v25.6.1
uses: ansible/ansible-lint@v25.7.0
with:
args: "roles/custom"
setup_python: "true"

View File

@@ -1,6 +1,11 @@
[defaults]
vault_password_file = gpg/open_vault.sh
retry_files_enabled = False
result_format = yaml
inventory = inventory/hosts
[connection]
pipelining = True

View File

@@ -71,7 +71,7 @@ docker run \
-w /work \
--mount type=bind,src=`pwd`,dst=/work \
--entrypoint=/bin/sh \
ghcr.io/devture/ansible:11.1.0-r0-0
ghcr.io/devture/ansible:11.6.0-r0-0
```
Once you execute the above command, you'll be dropped into a `/work` directory inside a Docker container. The `/work` directory contains the playbook's code.
@@ -92,7 +92,7 @@ docker run \
--mount type=bind,src=`pwd`,dst=/work \
--mount type=bind,src$HOME/.ssh/id_ed25519,dst=/root/.ssh/id_ed25519,ro \
--entrypoint=/bin/sh \
ghcr.io/devture/ansible:11.1.0-r0-0
ghcr.io/devture/ansible:11.6.0-r0-0
```
The above command tries to mount an SSH key (`$HOME/.ssh/id_ed25519`) into the container (at `/root/.ssh/id_ed25519`). If your SSH key is at a different path (not in `$HOME/.ssh/id_ed25519`), adjust that part.

5
gpg/open_vault.sh Executable file
View 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
View 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-----

View File

@@ -4388,7 +4388,7 @@ postgres_managed_databases_auto: |
'name': etherpad_database_name,
'username': etherpad_database_username,
'password': etherpad_database_password,
}] if (etherpad_enabled and etherpad_database_engine == 'postgres' and etherpad_database_hostname == postgres_connection_hostname) else [])
}] if (etherpad_enabled and etherpad_database_type == 'postgres' and etherpad_database_hostname == postgres_connection_hostname) else [])
+
([{
'name': prometheus_postgres_exporter_database_name,
@@ -6194,7 +6194,7 @@ matrix_static_files_file_matrix_client_property_org_matrix_msc3575_proxy_url: "{
matrix_static_files_file_matrix_client_property_org_matrix_msc2965_authentication_enabled: "{{ matrix_authentication_service_enabled }}"
matrix_static_files_file_matrix_client_property_org_matrix_msc2965_authentication_issuer: "{{ matrix_authentication_service_config_http_issuer if matrix_authentication_service_enabled else '' }}"
matrix_static_files_file_matrix_client_property_org_matrix_msc2965_authentication_account: "{{ matrix_authentication_service_account_management_url }}"
matrix_static_files_file_matrix_client_property_org_matrix_msc2965_authentication_account: "{{ matrix_authentication_service_account_management_url if matrix_authentication_service_enabled else '' }}"
matrix_static_files_file_matrix_client_property_m_tile_server_entries_enabled: "{{ matrix_client_element_location_sharing_enabled }}"
matrix_static_files_file_matrix_client_property_m_tile_server_map_style_url: "{{ ('https://' if matrix_playbook_ssl_enabled else 'http://') + matrix_server_fqn_element }}/map_style.json"
@@ -6422,6 +6422,15 @@ livekit_server_config_keys_auto: |-
)
}}
# We only wish for matrix-livekit-jwt-service to create rooms, only for users on trusted homeservers.
# See `matrix_livekit_jwt_service_environment_variable_livekit_full_access_homeservers`.
#
# Ref:
# - https://github.com/element-hq/lk-jwt-service/releases/tag/v0.3.0
# - https://github.com/livekit/livekit/blob/5e483e7554e5afbf254acf84e3ec0aa6e108e758/config-sample.yaml#L168-L170
# - https://github.com/mother-of-all-self-hosting/ansible-role-livekit-server/commit/2a1b04552634097bdd26d472502a8f5bf1b8528f
livekit_server_config_room_auto_create: false
# The playbook intentionally uses a non-standard port than the default used by the role (5349),
# because Coturn is already using that port.
# Note that TURN is not enabled by default. See `livekit_server_config_turn_enabled`.
@@ -6501,6 +6510,8 @@ matrix_livekit_jwt_service_environment_variable_livekit_key: "{{ '%s' | format(m
matrix_livekit_jwt_service_environment_variable_livekit_secret: "{{ '%s' | format(matrix_homeserver_generic_secret_key) | password_hash('sha512', 'lk.secret', rounds=655555) | to_uuid }}"
matrix_livekit_jwt_service_environment_variable_livekit_full_access_homeservers_list: ["{{ matrix_domain }}"]
########################################################################
# #
# /matrix-livekit-jwt-service #

View File

@@ -1,9 +1,9 @@
alabaster==1.0.0
babel==2.17.0
certifi==2025.7.9
certifi==2025.7.14
charset-normalizer==3.4.2
click==8.2.1
docutils==0.21.2
click==8.2.2
docutils==0.22
idna==3.10
imagesize==1.4.1
Jinja2==3.1.6

View File

@@ -0,0 +1,17 @@
---
postgres_max_connections: 400
postgres_shared_buffers: 3145728 # (3072 MiB)
postgres_effective_cache_size: 8388608 # (8192 MiB)
postgres_container_shm_size: 1G
postgres_maintenance_work_mem: 786432 # (768 MiB)
postgres_wal_buffers: 16384 # (16 MiB)
postgres_random_page_cost: 1.3
postgres_work_mem: 4096
postgres_huge_pages: try
postgres_min_wal_size: 524288 # (512 MiB)
postgres_max_wal_size: 4194304 # (4GiB)
postgres_max_worker_processes: 8
postgres_max_parallel_workers: 8
postgres_max_parallel_workers_per_gather: 4
postgres_max_parallel_maintenance_workers: 4

View File

@@ -0,0 +1,386 @@
#
# General config
# Domain of the matrix server and SSL config
#
matrix_domain: finallycoffee.eu
matrix_playbook_reverse_proxy_type: playbook-managed-traefik
matrix_playbook_ssl_enabled: true
traefik_config_entrypoint_web_secure_enabled: false
traefik_container_web_host_bind_port: '127.0.10.1:8080'
traefik_config_entrypoint_web_forwardedHeaders_insecure: true
matrix_playbook_public_matrix_federation_api_traefik_entrypoint_host_bind_port: '127.0.10.2:8448'
matrix_playbook_public_matrix_federation_api_traefik_entrypoint_config_custom:
forwardedHeaders:
insecure: true
matrix_synapse_metrics_proxying_enabled: true
matrix_sliding_sync_enabled: true
matrix_base_data_path: "{{ vault_matrix_base_data_path }}"
matrix_server_fqn_element: "chat.{{ matrix_domain }}"
matrix_playbook_docker_installation_enabled: false
#matrix_dimension_scheme: https
devture_timesync_installation_enabled: false
matrix_homeserver_generic_secret_key: "{{ vault_homeserver_generic_secret_key }}"
devture_systemd_service_manager_up_verification_delay_seconds: 300
web_user: "web"
revproxy_autoload_dir: "/vault/services/web/sites.d"
postgres_dump_dir: /vault/temp
#
# General Synapse config
#
postgres_connection_password: "{{ vault_matrix_postgres_connection_password }}"
# A secret used to protect access keys issued by the server.
# matrix_homeserver_generic_secret_key: "{{ vault_homeserver_generic_secret_key }}"
# Make synapse accept larger media aswell
matrix_synapse_max_upload_size_mb: 200
# Enable metrics at (default) :9100/_synapse/metrics
matrix_synapse_metrics_enabled: true
matrix_synapse_turn_shared_secret: "{{ vault_matrix_coturn_turn_static_auth_secret }}"
matrix_synapse_turn_uris:
- "turn:voip.matrix.finallycoffee.eu?transport=udp"
- "turn: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: 50
# sleep_delay: 500
# reject_limit: 50
# concurrent: 10
#matrix_synapse_rc_message:
# per_second: 0.5
# burst_count: 25
#matrix_synapse_rc_joins:
# local:
# per_second: 0.5
# burst_count: 20
# remote:
# per_second: 0.05
# burst_count: 20
#matrix_synapse_rc_joins_per_room:
# per_second: 1
# burst_count: 10
#matrix_synapse_rc_invites:
# per_room:
# per_second: 0.5
# burst_count: 10
# per_user:
# per_second: 0.006
# burst_count: 10
# per_issuer:
# per_second: 2
# burst_count: 20
## Synapse cache tuning
#matrix_synapse_caches_global_factor: 1.5
#matrix_synapse_event_cache_size: "300K"
## Synapse workers
matrix_synapse_workers_enabled: true
matrix_synapse_workers_preset: "little-federation-helper"
matrix_synapse_workers_generic_workers_count: 1
matrix_synapse_workers_media_repository_workers_count: 1
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
matrix_synapse_configuration_extension_yaml: |
database:
args:
cp_min: 10
cp_max: 30
cp_reconnect: True
# caches:
# per_cache_factors:
# device_id_exists: 3
# get_users_in_room: 4
# _get_joined_users_from_context: 4
# _get_joined_profile_from_event_id: 3
# "*stateGroupMembersCache*": 2
# _matches_user_in_member_list: 3
# get_users_who_share_room_with_user: 3
# is_interested_in_room: 2
# get_user_by_id: 1.5
# room_push_rule_cache: 1.5
# expire_caches: true
# cache_entry_ttl: 45m
# sync_response_cache_duration: 2m
#
# 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: false
#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_bridge_personal_filtering_spaces: true
matrix_mautrix_whatsapp_bridge_enable_status_broadcast: false
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"
"boobies.software": "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
permissions:
"@ilosai:fairydust.space": "user"
logging:
root:
level: INFO
metrics:
enabled: true
listen_port: {{ matrix_mautrix_signal_container_http_monitoring_host_bind_port }}
matrix_bridges_encryption_enabled: true
matrix_bridges_encryption_default: true
matrix_appservice_double_puppet_enabled: true
matrix_mautrix_slack_enabled: true
matrix_mautrix_slack_appservice_bot_username: slack
#
# mx-puppet-instagram configuration
#
matrix_mx_puppet_instagram_enabled: false
#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-discord configuration
##
matrix_mx_puppet_discord_enabled: false
#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: false
#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_oauth_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 &amp; collaboration,<br />
hosted on finallycoffee.eu, powered by element.io &amp;
<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_auth_header_logo_url: "welcome/images/logo.png"
matrix_client_element_branding_welcome_background_url: "welcome/images/background.jpg"
matrix_client_element_container_extra_arguments:
- "-v {{ matrix_client_element_data_path }}/background.jpg:/app/{{ matrix_client_element_branding_welcome_background_url }}:ro"
- "-v {{ matrix_client_element_data_path }}/logo.png:/app/{{ matrix_client_element_branding_auth_header_logo_url }}: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_room_directory_servers:
- "matrix.org"
- "finallycoffee.eu"
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
exim_relay_enabled: true
exim_relay_sender_address: "system-matrix@{{ matrix_domain }}"
exim_relay_relay_use: true
exim_relay_relay_host_name: "{{ vault_matrix_mailer_relay_host_name }}"
exim_relay_relay_host_port: 587
exim_relay_relay_auth: true
exim_relay_relay_auth_username: "{{ vault_matrix_mailer_relay_auth_username }}"
exim_relay_relay_auth_password: "{{ vault_matrix_mailer_relay_auth_password }}"

View File

@@ -0,0 +1,105 @@
$ANSIBLE_VAULT;1.1;AES256
61626165616330663863393762663031623164636666346339343636363035663463636135656533
3338383762633130346536613334626164306464333835380a353264386431326437616234393165
61323266623432353731373634353339393936643130346434346530336563326533386331646533
3030663037666664360a346636343966663733663836633736316630663230613137663166336336
62383131343934353635633261323036613231646439626162306238313132316664653237653533
34376464633335626133376138343139653561613232333133393535393137653964633561313761
62653632663432313936336231613832626362343737383863343562636437646439666638383733
63313538616430393536356534303164633332653538643264353834393465373538643963343039
31366661636263353936363931343938323563626538303133366263363533393564386466666361
38666264643931336563633663663538616431313231336364653631383261326537336162313837
32373730343538653862326636303264353737353139663161393762383138393531363264633531
32383661396537636635666665316630663032333932393131336235663938623932383230343830
31613563656663343830353438396535663864306531333239623738653838633331386465353466
37366363643334623165373562363465636161396437333966303864663033636665623564613565
39643635333636363132633462386536393634303838343835363633626162363236653839376230
34666430363933336335323330386339656339356637653931643565303166303436333562333361
38633838636337316137343564613338346239663933356130396562306164376430363233373632
66303430303034353262343565373139333535636231623062633537653636376136656138623637
34396562376233643234643436323433336436393163363935643033643833386631633762343162
33633136316635326532343430383437366139333830373731636265386234356164393066333663
37663934633437653364356231383934313132343162323436373339393964656336646164333533
37626336616565323237633736653433316238366261303465343466643363303131376665346231
62623133336561313732393837323330643138663830353662366139373366383436323530333732
38623633666537643038636163303164653866343934616236343733386533663936303637326462
63633137626632613736313333643363373963306161353431396261646635383930366166363135
66353962643638616635376137346439383339303236323761366439306638623762343966623035
30323435396533633238313962306366343362393339616131393839653565666666313833313433
66386362353061323465666563616230336565663339646162623634643330646239343934373636
33363061316637613266373831376133303337616639643239393835636138323266613134633633
65356634636562313961643865353334306131333030373566666535373039343337613964306465
32393163666232383266363763336132653765316162663961653933633832626533646537376136
64613133373135616531343837616264656461313963646565656465656165303534343834663734
62313865366634656265613264623234653165633839323030643333643139323531643637393439
61656561303732663834336334643765616234373063306236303538646663316131663933323236
63396263663034613832653361383061336132663032646133323931386562653661346264363439
35636463613635316239363061363836623564303933373964363365626133373039643264666530
30343165366365333339366639353033666634613162363164333433633563613461666532323566
63303836353331326439646139653738633866356463303264623166306262393766346338373537
62373865303264633663666333323135343530323434383835393763363739636135646538336364
33376438636264393635383163353431336463396263333239626566653262373434316532343633
61363061623430636462393135316564636536633963393338383334643134366232396564316635
31373963633164653235643665653863303831663065383433363036633962633462393839363235
36323562323634643639643561636261643136313633656236656566353539343063386162383234
38653461633561353639336531353333393262633065386539353031386332343739656261653238
31326434386130336465613233663563323035666631303137313665336566363134306638663265
62353430353934633965316636643566653235366230323139656539646539626236616138313362
31643437366563383164306331303662356562616366366237613633666534623765323034396534
38326537376265343065313738316433353266633539313134323735383864623663323662633662
65613862623766343736343031636238356161343036363566646635643334373030386434646135
64336263356663376564333935623135396231623165326437393563333361356435346634616665
66376231666633643936323264323565346637343538366138616631383964376632613437323163
30366537326533363939643237376538366230313263623139323662396633343239343066313564
63356533373338653030313038653137666434323737323763623136666530313035356634666633
35643530333632633664643361633964666432336631636561343739646266653634353963323534
35663731616539646332393837633566393734643033623937316661653839663937303666376339
65653036373565323435636637373231316265393231333734356462356635346531366530316262
37643632346164366561353236373633623464643536373361666263303739356335333934313537
31373035633333313065613162346133663736313265376230393135353431343765306539633032
63353338656231376666613138353235613362643334653537353237653139396533363630303033
36363039613232666266333535343466336263663762623865376532326262666332303361356266
65646337323037383564666639363636333135323265633932333264346363326466343234653936
65656535343663356562613064323138656338633064633462313864616665653230626638373939
61623862386364396335323836396664653731633365623936383435383330643038386665653238
62643961626464313666343431303064303338396135643432383730613161336435306262653132
38373432393564333562363761386239343366343465386638643737663561633837303734333835
66366465633164346365356637313534376136303630666432613664363030323336316639393339
61383565316432383633383832363439316366373536336639643961333663303631633464633238
31396331386163386261393565346266636436386465326639326363663930666665306637393263
65363763336561316566363164626466643637343731666530386432343431653634353336376461
33366233366533656334666138346661323463633133303933626163343666623761613961346231
35383232306336386665313264393933646631656333613138353532666133366339656564353865
35353330393131366137663466333363653866323936353734306361633163626537363561346332
65363231623766666638383661323964633034366261633035303861383135383235656465373738
66373762626130356633626436366533626633353836346239666333353262656665636330626561
66613165313137373766623464646330643662393033396266643662653136393233336265353430
38376130663634333133353763383264623133373230323938316638323864643430386633376564
65356264623766666637353866326638613435663830623063343439373030663663623432393863
33343134626465313230646239646537653938613938633736346235323438393237363639373932
61376231386265366132333965333133343737623066383534666633396635356537623432623132
62656431323033633265626265613736383435376132613532333037613834313130626361373533
39653361323366636335343865343737346264636433386332666332376662343634356630316135
30366163333561353338663666363738313732303031333637636266623530623261306335616233
31346436346663643464626134313338346439323838343663613135663834666632653866346431
64376566343963346664366363353636636231386530363961333131383133323163396265313563
35393534343664336237336231313831333739633662306636373338663434613231306538343865
61613063306432623932616534363865333639396232383562396161383539363336303463323731
63313239666538306239663864653839616132363662336331636262353061663136386331306131
66336361396239383638623463663635613364366433343739356331633330633561653038633530
38303832363663656432396636613134613965373639353731366138323435326135626339353263
39313032333966376135653664623666626233613530646534636362646237303465653931666563
65343936623462633162343334643335623834323364646362633232346237306337303430616363
61633930343132303962653432636230343331343332616434323035633963623138653737306566
34353135623134626237653165663738633435656439393234643432353535646439313638653664
39326437393166633937663261336330656266303431383437626163623163303133323139313563
39383664633739373664653131326665306533633162373535396464663637653662336237656161
39633138383166316437313237303733336365343066366462643165643865653039343037633263
61613730393666636530633231396165363033313161663463323861663262383234643236643038
61633138323664613061663538383333323566393262303633623136613166636361306562356163
66363033373262396461316438643238396633353962616362623363303035353765393164616230
35303664616539363639373830623337396239626539613761613839363638326664306465313762
34646634326338306430653065343231366430666534306331336532346535663737633639363834
34623539616339363535633365306230663264626234363637366436353833663136303032623338
32633761333165393231303165393234643363313839373339666433666130313035643836626531
63356638666264333163

24
inventory/hosts Normal file
View File

@@ -0,0 +1,24 @@
$ANSIBLE_VAULT;1.1;AES256
37366366376266633033656235333633346134336666323465356666353363323130366365393534
3365373534643965613139656465323663393862336163640a623663366631323035346632353030
37396264356137336535363663323935646464333138653035623562346438643139323439366132
3364356364353738660a616638393635333938373838316631396536386134333831613831343732
39333066363566643864343661646633326134633039316636306332303063366665373638353735
34386339633566663038613538316233306238383734623363623666346261336562663039373264
31313061616432643761633139643039636164613136643264663131666166646531366335346164
34303339393334616434633736383763653035386333363137336431363034653263306261646661
37323563373436333736633836666563646162303232393932346430373039346431356166393930
37616639333038653936633163323139396666303638663039623633633832333737633764643863
61383763613865323061636662663837656339373335643066333964393362303766366533303332
63646335356639366130393530373936636330633132356639626531303839656166346263613733
31333362316537323934306434393630656161353465636434303538643835396361613563663437
34383765626235356530396433643037306233663263623664636163326132316237386231323165
65643235356434626161396136303563633836313961343664653339623862633338313963333237
63663961636661383634343532356234626531373938313164373561386139366338393066623036
36633137623361626161313961386630623635323336353036623165316632353333383162623531
61353138613030343636326166303762656264643834396330313563616439323265333039323566
64356538346662613836356462613536656636373065643734346166353466363266353939393535
66333739623735656463373530646663303535643562363534306438323135353763303363376135
37653566306461396563333135633235626130313231636165383438376237383663373939353637
30366661303131333438376363366131613361326635366264363064633034376230353137663030
346238306532363635623732396366633538

11
requirements.txt Normal file
View File

@@ -0,0 +1,11 @@
ansible==11.3.0
ansible-core==2.18.3
cffi==1.17.1
cryptography==44.0.2
Jinja2==3.1.6
MarkupSafe==3.0.2
packaging==24.2
passlib==1.7.4
pycparser==2.22
PyYAML==6.0.2
resolvelib==1.0.1

View File

@@ -4,10 +4,10 @@
version: v1.0.0-5
name: auxiliary
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg.git
version: v1.4.1-1.9.14-0
version: v1.4.1-1.9.14-1
name: backup_borg
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-container-socket-proxy.git
version: v0.3.0-6
version: v0.3.0-7
name: container_socket_proxy
- src: git+https://github.com/geerlingguy/ansible-role-docker
version: 7.4.7
@@ -16,25 +16,25 @@
version: 129c8590e106b83e6f4c259649a613c6279e937a
name: docker_sdk_for_python
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-etherpad.git
version: v2.3.2-0
version: v2.3.2-5
name: etherpad
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-exim-relay.git
version: v4.98.1-r0-2-0
version: v4.98.1-r0-2-1
name: exim_relay
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-grafana.git
version: v11.6.3-1
version: v11.6.4-1
name: grafana
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-jitsi.git
version: v10314-1
version: v10431-1
name: jitsi
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-livekit-server.git
version: v1.9.0-2
version: v1.9.0-5
name: livekit_server
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-ntfy.git
version: v2.13.0-0
version: v2.13.0-1
name: ntfy
- src: git+https://github.com/devture/com.devture.ansible.role.playbook_help.git
version: 201c939eed363de269a83ba29784fc3244846048
version: 7663e3114513e56f28d3ed762059b445c678a71a
name: playbook_help
- src: git+https://github.com/devture/com.devture.ansible.role.playbook_runtime_messages.git
version: 9b4b088c62b528b73a9a7c93d3109b091dd42ec6
@@ -43,22 +43,22 @@
version: ff2fd42e1c1a9e28e3312bbd725395f9c2fc7f16
name: playbook_state_preserver
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-postgres.git
version: v17.5-0
version: v17.5-5
name: postgres
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-postgres-backup.git
version: v17-5
version: v17-7
name: postgres_backup
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus.git
version: v3.4.2-1
version: v3.5.0-1
name: prometheus
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-node-exporter.git
version: v1.9.1-9
version: v1.9.1-11
name: prometheus_node_exporter
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-postgres-exporter.git
version: v0.17.1-6
version: v0.17.1-8
name: prometheus_postgres_exporter
- src: git+https://github.com/devture/com.devture.ansible.role.systemd_docker_base.git
version: v1.4.0-0
version: v1.4.1-0
name: systemd_docker_base
- src: git+https://github.com/devture/com.devture.ansible.role.systemd_service_manager.git
version: v1.0.0-4
@@ -67,11 +67,11 @@
version: v1.0.0-0
name: timesync
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-traefik.git
version: v3.4.4-1
version: v3.5.0-2
name: traefik
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-traefik-certs-dumper.git
version: v2.10.0-1
version: v2.10.0-2
name: traefik_certs_dumper
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-valkey.git
version: v8.1.3-0
version: v8.1.3-1
name: valkey

View File

@@ -11,7 +11,7 @@
matrix_alertmanager_receiver_enabled: true
# renovate: datasource=docker depName=docker.io/metio/matrix-alertmanager-receiver
matrix_alertmanager_receiver_version: 2025.7.2
matrix_alertmanager_receiver_version: 2025.7.30
matrix_alertmanager_receiver_scheme: https

View File

@@ -7,7 +7,7 @@
ansible.builtin.fail:
msg: >
You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and vars[item.name] == ''"
when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0"
with_items:
- {'name': 'matrix_alertmanager_receiver_hostname', when: true}
- {'name': 'matrix_alertmanager_receiver_path_prefix', when: true}
@@ -21,6 +21,6 @@
ansible.builtin.fail:
msg: >-
The variable `{{ item.old }}` is deprecated. Please use `{{ item.new }}` instead.
when: "item.old in vars"
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
with_items:
- {'old': 'matrix_alertmanager_receiver_container_image_name_prefix', 'new': 'matrix_alertmanager_receiver_container_image_registry_prefix'}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
# configuration of the HTTP server
http:
address: 0.0.0.0 # bind address for this service. Can be left unspecified to bind on all interfaces

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
[Unit]
Description=matrix-alertmanager-receiver
{% for service in matrix_alertmanager_receiver_systemd_required_services_list %}

View File

@@ -7,7 +7,7 @@
ansible.builtin.fail:
msg: >
You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and vars[item.name] == ''"
when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0"
with_items:
- {'name': 'matrix_appservice_double_puppet_registration_as_token', when: true}
- {'name': 'matrix_appservice_double_puppet_registration_as_token', when: true}

View File

@@ -20,7 +20,7 @@
msg: >-
Your configuration contains a variable, which now has a different name.
Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml).
when: "item.old in vars"
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
with_items:
- {'old': 'matrix_appservice_draupnir_for_all_docker_image_name_prefix', 'new': 'matrix_appservice_draupnir_for_all_docker_image_registry_prefix'}
- {'old': 'matrix_appservice_draupnir_for_all_enable_room_state_backing_store', 'new': 'matrix_appservice_draupnir_for_all_config_roomStateBackingStore_enabled'}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
[Unit]
Description=Matrix Draupnir for All appservice
{% for service in matrix_appservice_draupnir_for_all_systemd_wanted_services_list %}

View File

@@ -22,7 +22,7 @@ matrix_authentication_service_container_repo_version: "{{ 'main' if matrix_authe
matrix_authentication_service_container_src_files_path: "{{ matrix_base_data_path }}/matrix-authentication-service/container-src"
# renovate: datasource=docker depName=ghcr.io/element-hq/matrix-authentication-service
matrix_authentication_service_version: 0.18.0
matrix_authentication_service_version: 0.20.0
matrix_authentication_service_container_image_registry_prefix: "{{ 'localhost/' if matrix_authentication_service_container_image_self_build else matrix_authentication_service_container_image_registry_prefix_upstream }}"
matrix_authentication_service_container_image_registry_prefix_upstream: "{{ matrix_authentication_service_container_image_registry_prefix_upstream_default }}"
matrix_authentication_service_container_image_registry_prefix_upstream_default: "ghcr.io/"

View File

@@ -19,7 +19,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and vars[item.name] | length == 0"
when: "item.when | bool and vars[item.name] | string | length == 0"
with_items:
- {'name': 'matrix_authentication_service_syn2mas_synapse_homeserver_config_path', when: true}

View File

@@ -9,7 +9,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and vars[item.name] | length == 0"
when: "item.when | bool and vars[item.name] | string | length == 0"
with_items:
- {'name': 'matrix_authentication_service_hostname', when: true}
- {'name': 'matrix_authentication_service_config_database_username', when: true}
@@ -40,7 +40,7 @@
msg: >-
Your configuration contains a variable, which now has a different name.
Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml).
when: "item.old in vars"
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
with_items:
- {'old': 'matrix_authentication_service_container_image_name_prefix', 'new': 'matrix_authentication_service_container_image_registry_prefix'}
- {'old': 'matrix_authentication_service_syn2mas_container_image_name_prefix', 'new': 'matrix_authentication_service_syn2mas_container_image_registry_prefix'}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
#!/bin/bash
args=$@

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
#!/bin/bash
if [ $# -ne 3 ]; then

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
http:
listeners:
- name: web

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
base_url: {{ matrix_authentication_service_config_agents_static_definitions_anthropic_config_base_url | to_json }}
api_key: {{ matrix_authentication_service_config_agents_static_definitions_anthropic_config_api_key | to_json }}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
base_url: {{ matrix_authentication_service_config_agents_static_definitions_groq_config_base_url | to_json }}
api_key: {{ matrix_authentication_service_config_agents_static_definitions_groq_config_api_key | to_json }}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
base_url: {{ matrix_authentication_service_config_agents_static_definitions_mistral_config_base_url | to_json }}
api_key: {{ matrix_authentication_service_config_agents_static_definitions_mistral_config_api_key | to_json }}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
base_url: {{ matrix_authentication_service_config_agents_static_definitions_openai_config_base_url | to_json }}
api_key: {{ matrix_authentication_service_config_agents_static_definitions_openai_config_api_key | to_json }}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
[Unit]
Description=Matrix Authentication Service
{% for service in matrix_authentication_service_systemd_required_services_list %}

View File

@@ -20,7 +20,7 @@
msg: >-
Your configuration contains a variable, which now has a different name.
Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml).
when: "item.old in vars"
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
with_items:
- {'old': 'host_specific_hostname_identity', 'new': 'matrix_domain'}
- {'old': 'hostname_identity', 'new': 'matrix_domain'}
@@ -97,7 +97,7 @@
To get rid of this error, remove all `matrix_mx_puppet_*` references from your configuration.
To clean up your server from mx-puppet-skype's presence, see this changelog entry: https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/CHANGELOG.md#mx-puppet-skype-removal.
If you still need bridging to Skype, consider switching to the go-skype bridge instead. See `docs/configuring-playbook-bridge-go-skype-bridge.md`.
when: "'matrix_mx_puppet_skype_enabled' in vars"
when: "lookup('ansible.builtin.varnames', '^matrix_mx_puppet_skype_enabled$', wantlist=True) | length > 0"
- name: Fail if mautrix-instagram and mautrix-meta-instagram are in conflict
ansible.builtin.fail:

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
#!/bin/bash
if [ "$(id -u)" != "0" ]; then

View File

@@ -9,7 +9,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and vars[item.name] == ''"
when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0"
with_items:
- {'name': 'matrix_bot_baibot_config_user_mxid_localpart', when: true}
- {'name': 'matrix_bot_baibot_config_user_password', when: true}
@@ -37,6 +37,6 @@
msg: >-
Your configuration contains a variable, which now has a different name.
Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml).
when: "item.old in vars"
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
with_items:
- {'old': 'matrix_bot_baibot_container_image_name_prefix', 'new': 'matrix_bot_baibot_container_image_registry_prefix'}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
base_url: {{ matrix_bot_baibot_config_agents_static_definitions_anthropic_config_base_url | to_json }}
api_key: {{ matrix_bot_baibot_config_agents_static_definitions_anthropic_config_api_key | to_json }}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
base_url: {{ matrix_bot_baibot_config_agents_static_definitions_groq_config_base_url | to_json }}
api_key: {{ matrix_bot_baibot_config_agents_static_definitions_groq_config_api_key | to_json }}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
base_url: {{ matrix_bot_baibot_config_agents_static_definitions_mistral_config_base_url | to_json }}
api_key: {{ matrix_bot_baibot_config_agents_static_definitions_mistral_config_api_key | to_json }}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
base_url: {{ matrix_bot_baibot_config_agents_static_definitions_openai_config_base_url | to_json }}
api_key: {{ matrix_bot_baibot_config_agents_static_definitions_openai_config_api_key | to_json }}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
[Unit]
Description=Matrix baibot bot
{% for service in matrix_bot_baibot_systemd_required_services_list %}

View File

@@ -10,7 +10,7 @@
msg: >-
Your configuration contains a variable, which now has a different name.
Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml).
when: "item.old in vars"
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
with_items:
- {'old': 'matrix_bot_buscarron_noencryption', 'new': '<removed>'}
- {'old': 'matrix_bot_buscarron_spam_hosts', 'new': '<superseded by matrix_bot_buscarron_spamlist>'}
@@ -22,7 +22,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and vars[item.name] == ''"
when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0"
with_items:
- {'name': 'matrix_bot_buscarron_password', when: true}
- {'name': 'matrix_bot_buscarron_hostname', when: true}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
[Unit]
Description=Matrix web forms bot
{% for service in matrix_bot_buscarron_systemd_required_services_list %}

View File

@@ -15,7 +15,7 @@
with_items:
- {path: "{{ matrix_bot_chatgpt_config_path }}", when: true}
- {path: "{{ matrix_bot_chatgpt_data_path }}", when: true}
- {path: "{{ matrix_bot_chatgpt_container_src_path }}", when: matrix_bot_chatgpt_container_image_self_build}
- {path: "{{ matrix_bot_chatgpt_container_src_path }}", when: "{{ matrix_bot_chatgpt_container_image_self_build }}"}
when: "item.when | bool"
- name: Ensure chatgpt environment variables file created

View File

@@ -10,7 +10,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and vars[item.name] == ''"
when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0"
with_items:
- {'name': 'matrix_bot_chatgpt_openai_api_key', when: true}
- {'name': 'matrix_bot_chatgpt_matrix_bot_username', when: true}
@@ -22,7 +22,7 @@
msg: >-
Your configuration contains a variable that is no longer used.
Please change your configuration to remove the variable (`{{ item.name }}`).
when: "item.name in vars"
when: "lookup('ansible.builtin.varnames', ('^' + item.name + '$'), wantlist=True) | length > 0"
with_items:
- {'name': 'matrix_bot_chatgpt_openai_email'}
- {'name': 'matrix_bot_chatgpt_openai_password'}
@@ -33,7 +33,7 @@
msg: >-
Your configuration contains a variable, which now has a different name.
Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml).
when: "item.old in vars"
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
with_items:
- {'old': 'matrix_bot_chatgpt_docker_image', 'new': 'matrix_bot_chatgpt_container_image'}
- {'old': 'matrix_bot_chatgpt_docker_image_name_prefix', 'new': 'matrix_bot_chatgpt_container_image_name_prefix'}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
[Unit]
Description=Matrix chatgpt bot
{% for service in matrix_bot_chatgpt_systemd_required_services_list %}

View File

@@ -11,7 +11,7 @@
msg: >-
Your configuration contains a variable, which now has a different name.
Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml).
when: "item.old in vars"
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
with_items:
- {'old': 'matrix_bot_draupnir_container_image_name_prefix', 'new': 'matrix_bot_draupnir_container_image_registry_prefix'}
- {'old': 'matrix_bot_draupnir_enable_room_state_backing_store', 'new': 'matrix_bot_draupnir_config_roomStateBackingStore_enabled'}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
[Unit]
Description=Matrix Draupnir bot
{% for service in matrix_bot_draupnir_systemd_wanted_services_list %}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
[Unit]
Description=Matrix Go-NEB bot
{% for service in matrix_bot_go_neb_systemd_required_services_list %}

View File

@@ -10,7 +10,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and vars[item.name] == ''"
when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0"
with_items:
- {'name': 'matrix_bot_honoroit_homeserver', when: true}
- {'name': 'matrix_bot_honoroit_password', when: true}
@@ -22,6 +22,6 @@
msg: >-
Your configuration contains a variable, which now has a different name.
Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml).
when: "item.old in vars"
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
with_items:
- {'old': 'matrix_bot_honoroit_container_image_name_prefix', 'new': 'matrix_bot_honoroit_container_image_registry_prefix'}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
[Unit]
Description=Matrix helpdesk bot
{% for service in matrix_bot_honoroit_systemd_required_services_list %}

View File

@@ -20,7 +20,7 @@
msg: >-
Your configuration contains a variable, which now has a different name.
Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml).
when: "item.old in vars"
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
with_items:
- {'old': 'matrix_bot_matrix_registration_bot_bot_access_token', 'new': '<removed>'}
- {'old': 'matrix_bot_matrix_registration_bot_matrix_homeserver_url', 'new': 'matrix_bot_matrix_registration_bot_api_base_url'}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
[Unit]
Description=Matrix registration bot
{% for service in matrix_bot_matrix_registration_bot_systemd_required_services_list %}

View File

@@ -10,7 +10,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item }}`).
when: "item.when | bool and vars[item.name] == ''"
when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0"
with_items:
- {'name': 'matrix_bot_matrix_reminder_bot_matrix_user_password', when: true}
- {'name': 'matrix_bot_matrix_reminder_bot_reminders_timezone', when: true}
@@ -23,7 +23,7 @@
msg: >-
Your configuration contains a variable, which now has a different name.
Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml).
when: "item.old in vars"
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
with_items:
- {'old': 'matrix_bot_matrix_reminder_bot_container_self_build', 'new': 'matrix_bot_matrix_reminder_bot_container_image_self_build'}
- {'old': 'matrix_bot_matrix_reminder_bot_container_image_name_prefix', 'new': 'matrix_bot_matrix_reminder_bot_container_image_registry_prefix'}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
[Unit]
Description=Matrix reminder bot
{% for service in matrix_bot_matrix_reminder_bot_systemd_required_services_list %}

View File

@@ -12,7 +12,7 @@
msg: >-
Your configuration contains a variable, which now has a different name.
Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml).
when: "item.old in vars"
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
with_items:
- {'old': 'matrix_bot_maubot_management_interface_port', 'new': 'matrix_bot_maubot_server_port'}
- {'old': 'matrix_bot_maubot_management_interface_http_bind_port', 'new': 'matrix_bot_maubot_container_management_interface_http_bind_port'}
@@ -23,7 +23,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and vars[item.name] == ''"
when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0"
with_items:
- {'name': 'matrix_bot_maubot_hostname', when: true}
- {'name': 'matrix_bot_maubot_path_prefix', when: true}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
FROM {{ matrix_bot_maubot_docker_image }}
{{ matrix_bot_maubot_container_image_customizations_dockerfile_body_custom }}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
[Unit]
Description=Maubot
{% for service in matrix_bot_maubot_systemd_required_services_list %}

View File

@@ -32,6 +32,6 @@
msg: >-
Your configuration contains a variable, which now has a different name.
Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml).
when: "item.old in vars"
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
with_items:
- {'old': 'matrix_bot_mjolnir_container_image_name_prefix', 'new': 'matrix_bot_mjolnir_container_image_registry_prefix'}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
[Unit]
Description=Matrix Mjolnir bot
{% for service in matrix_bot_mjolnir_systemd_wanted_services_list %}

View File

@@ -119,7 +119,7 @@ matrix_appservice_discord_configuration_extension: "{{ matrix_appservice_discord
matrix_appservice_discord_configuration: "{{ matrix_appservice_discord_configuration_yaml | from_yaml | combine(matrix_appservice_discord_configuration_extension, recursive=True) }}"
matrix_appservice_discord_registration_yaml: |
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
id: appservice-discord
as_token: "{{ matrix_appservice_discord_appservice_token }}"
hs_token: "{{ matrix_appservice_discord_homeserver_token }}"

View File

@@ -9,7 +9,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and vars[item.name] == ''"
when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0"
with_items:
- {'name': 'matrix_appservice_discord_client_id', when: true}
- {'name': 'matrix_appservice_discord_bot_token', when: true}
@@ -24,7 +24,7 @@
msg: >-
Your configuration contains a variable, which now has a different name.
Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml).
when: "item.old in vars"
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
with_items:
- {'old': 'matrix_appservice_discord_container_expose_client_server_api_port', 'new': '<superseded by matrix_appservice_discord_container_http_host_bind_port>'}
- {'old': 'matrix_appservice_discord_container_image_name_prefix', 'new': 'matrix_appservice_discord_docker_image_registry_prefix'}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
bridge:
# Domain part of the bridge, e.g. matrix.org
domain: {{ matrix_appservice_discord_bridge_domain|to_json }}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
[Unit]
Description=Matrix Appservice Discord bridge
{% for service in matrix_appservice_discord_systemd_required_services_list %}

View File

@@ -80,6 +80,6 @@
devture_playbook_runtime_messages_list | default([])
+
[
"Note: Your appservice-irc database files have been imported into Postgres. The original database files have been moved from `{{ matrix_appservice_irc_data_path }}/*.db` to `{{ matrix_appservice_irc_data_path }}/*.db.backup`. When you've confirmed that the import went well and everything works, you should be able to safely delete these files."
"Note: Your appservice-irc database files have been imported into Postgres. The original database files have been moved from `" + matrix_appservice_irc_data_path + "/*.db` to `" + matrix_appservice_irc_data_path + "/*.db.backup`. When you've confirmed that the import went well and everything works, you should be able to safely delete these files."
]
}}

View File

@@ -10,7 +10,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and vars[item.name] == ''"
when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0"
with_items:
- {'name': 'matrix_appservice_irc_appservice_token', when: true}
- {'name': 'matrix_appservice_irc_homeserver_url', when: true}
@@ -39,7 +39,7 @@
msg: >-
Your configuration contains a variable, which now has a different name.
Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml).
when: "item.old in vars"
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
with_items:
- {'old': 'matrix_appservice_irc_container_expose_client_server_api_port', 'new': '<superseded by matrix_appservice_irc_container_http_host_bind_port>'}
- {'old': 'matrix_appservice_irc_container_self_build', 'new': 'matrix_appservice_irc_container_image_self_build'}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
[Unit]
Description=Matrix Appservice IRC bridge
{% for service in matrix_appservice_irc_systemd_required_services_list %}

View File

@@ -182,7 +182,7 @@ matrix_appservice_kakaotalk_configuration: "{{ matrix_appservice_kakaotalk_confi
#
# The side-effect of this lookup is that Ansible would even parse the JSON for us, returning a dict.
# This is unlike what it does when looking up YAML template files (no automatic parsing there).
matrix_appservice_kakaotalk_node_configuration_default: "{{ lookup('template', 'templates/node-config.json.j2') }}"
matrix_appservice_kakaotalk_node_configuration_default: "{{ lookup('template', 'templates/node-config.json.j2', convert_data=False) | from_json }}"
# Your custom JSON configuration for appservice-kakaotalk-node should go to `matrix_appservice_kakaotalk_node_configuration_extension_json`.
# This configuration extends the default starting configuration (`matrix_appservice_kakaotalk_node_configuration_default`).

View File

@@ -9,7 +9,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and vars[item.name] == ''"
when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0"
with_items:
- {'name': 'matrix_appservice_kakaotalk_appservice_token', when: true}
- {'name': 'matrix_appservice_kakaotalk_homeserver_address', when: true}
@@ -22,7 +22,7 @@
msg: >-
Your configuration contains a variable, which now has a different name.
Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml).
when: "item.old in vars"
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
with_items:
- {'old': 'matrix_appservice_kakaotalk_node_docker_image_name_prefix', 'new': 'matrix_appservice_kakaotalk_node_docker_image_registry_prefix'}
- {'old': 'matrix_appservice_kakaotalk_docker_image_name_prefix', 'new': 'matrix_appservice_kakaotalk_docker_image_registry_prefix'}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
[Unit]
Description=appservice-kakaotalk-node bridge helper
{% for service in matrix_appservice_kakaotalk_node_systemd_required_services_list %}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
[Unit]
Description=appservice-kakaotalk bridge
{% for service in matrix_appservice_kakaotalk_systemd_required_services_list %}

View File

@@ -75,6 +75,6 @@
devture_playbook_runtime_messages_list | default([])
+
[
"Note: Your appservice-slack database files have been imported into Postgres. The original database files have been moved from `{{ matrix_appservice_slack_data_path }}/*.db` to `{{ matrix_appservice_slack_data_path }}/*.db.backup`. When you've confirmed that the import went well and everything works, you should be able to safely delete these files."
"Note: Your appservice-slack database files have been imported into Postgres. The original database files have been moved from `" + matrix_appservice_slack_data_path + "/*.db` to `" + matrix_appservice_slack_data_path + "/*.db.backup`. When you've confirmed that the import went well and everything works, you should be able to safely delete these files."
]
}}

View File

@@ -11,7 +11,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and vars[item.name] == ''"
when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0"
with_items:
- {'name': 'matrix_appservice_slack_control_room_id', when: true}
- {'name': 'matrix_appservice_slack_appservice_token', when: true}
@@ -28,6 +28,6 @@
msg: >-
Your configuration contains a variable, which now has a different name.
Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml).
when: "item.old in vars"
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
with_items:
- {'old': 'matrix_appservice_slack_container_self_build', 'new': 'matrix_appservice_slack_container_image_self_build'}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
[Unit]
Description=Matrix Appservice Slack bridge
{% for service in matrix_appservice_slack_systemd_required_services_list %}

View File

@@ -27,6 +27,6 @@
msg: >-
Your configuration contains a variable, which now has a different name.
Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml).
when: "item.old in vars"
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
with_items:
- {'old': 'matrix_appservice_webhooks_docker_image_name_prefix', 'new': 'matrix_appservice_webhooks_docker_image_registry_prefix'}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
[Unit]
Description=Matrix Appservice webhooks bridge
{% for service in matrix_appservice_webhooks_systemd_required_services_list %}

View File

@@ -11,7 +11,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and vars[item.name] == ''"
when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0"
with_items:
- {'name': 'matrix_beeper_linkedin_appservice_token', when: true}
- {'name': 'matrix_beeper_linkedin_homeserver_address', when: true}
@@ -24,7 +24,7 @@
msg: >-
Your configuration contains a variable, which now has a different name.
Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml).
when: "item.old in vars"
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
with_items:
- {'old': 'matrix_beeper_linkedin_login_shared_secret', 'new': '<superseded by matrix_beeper_linkedin_bridge_login_shared_secret_map_*>'}
- {'old': 'matrix_beeper_linkedin_docker_image_name_prefix', 'new': 'matrix_beeper_linkedin_docker_image_registry_prefix'}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
# Homeserver details
homeserver:
# The address that this appservice can use to connect to the homeserver.

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
[Unit]
Description=Matrix Beeper Linkedin bridge
{% for service in matrix_beeper_linkedin_systemd_required_services_list %}

View File

@@ -10,7 +10,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and vars[item.name] == ''"
when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0"
with_items:
- {'name': 'matrix_go_skype_bridge_appservice_token', when: true}
- {'name': 'matrix_go_skype_bridge_homeserver_address', when: true}
@@ -23,6 +23,6 @@
msg: >-
Your configuration contains a variable, which now has a different name.
Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml).
when: "item.old in vars"
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
with_items:
- {'old': 'matrix_go_skype_bridge_docker_image_name_prefix', 'new': 'matrix_go_skype_bridge_docker_image_registry_prefix'}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
# Homeserver details.
homeserver:
# The address that this appservice can use to connect to the homeserver.

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
[Unit]
Description=Matrix Go Skype Bridge bridge
{% for service in matrix_go_skype_bridge_systemd_required_services_list %}

View File

@@ -9,7 +9,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and vars[item.name] == ''"
when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0"
with_items:
- {'name': 'matrix_heisenbridge_container_network', when: true}
- {'name': 'matrix_heisenbridge_homeserver_url', when: true}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
[Unit]
Description=a bouncer-style Matrix IRC bridge
{% for service in matrix_heisenbridge_systemd_required_services_list %}

View File

@@ -11,7 +11,7 @@
msg: >-
Your configuration contains a variable, which now has a different name.
Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml).
when: "item.old in vars"
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
with_items:
- {'old': 'matrix_hookshot_feeds_interval', 'new': 'matrix_hookshot_feeds_pollIntervalSeconds'}
- {'old': 'matrix_hookshot_generic_urlprefix', 'new': 'matrix_hookshot_generic_urlPrefix'}
@@ -116,4 +116,4 @@
with_items:
- matrix_hookshot_proxy_metrics
- matrix_hookshot_metrics_endpoint
when: "item in vars"
when: "lookup('ansible.builtin.varnames', ('^' + item + '$'), wantlist=True) | length > 0"

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
bridge:
# Basic homeserver configuration
#

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
id: matrix-hookshot # This can be anything, but must be unique within your homeserver
as_token: {{ matrix_hookshot_appservice_token|to_json }} # This again can be a random string
hs_token: {{ matrix_hookshot_homeserver_token|to_json }} # ..as can this

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
[Unit]
Description=A bridge between Matrix and multiple project management services, such as GitHub, GitLab and JIRA.
{% for service in matrix_hookshot_systemd_required_services_list %}

View File

@@ -14,7 +14,7 @@ matrix_mautrix_bluesky_container_image_self_build_repo: "https://github.com/maut
matrix_mautrix_bluesky_container_image_self_build_repo_version: "{{ 'master' if matrix_mautrix_bluesky_version == 'latest' else matrix_mautrix_bluesky_version }}"
# renovate: datasource=docker depName=dock.mau.dev/mautrix/bluesky
matrix_mautrix_bluesky_version: v0.1.1
matrix_mautrix_bluesky_version: v0.1.2
# See: https://mau.dev/tulir/mautrix-bluesky/container_registry
matrix_mautrix_bluesky_docker_image: "{{ matrix_mautrix_bluesky_docker_image_registry_prefix }}mautrix/bluesky:{{ matrix_mautrix_bluesky_version }}"
matrix_mautrix_bluesky_docker_image_registry_prefix: "{{ 'localhost/' if matrix_mautrix_bluesky_container_image_self_build else matrix_mautrix_bluesky_docker_image_registry_prefix_upstream }}"

View File

@@ -10,7 +10,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and vars[item.name] == ''"
when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0"
with_items:
- {'name': 'matrix_mautrix_bluesky_appservice_token', when: true}
- {'name': 'matrix_mautrix_bluesky_homeserver_address', when: true}
@@ -25,6 +25,6 @@
msg: >-
Your configuration contains a variable, which now has a different name.
Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml).
when: "item.old in vars"
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
with_items:
- {'old': 'matrix_mautrix_bluesky_docker_image_name_prefix', 'new': 'matrix_mautrix_bluesky_docker_image_registry_prefix'}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
# Network-specific config options
network:
# Proxy to use for all Bluesky connections.

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
[Unit]
Description=Matrix Mautrix Bluesky bridge
{% for service in matrix_mautrix_bluesky_systemd_required_services_list %}

View File

@@ -21,7 +21,7 @@ matrix_mautrix_discord_container_image_self_build_repo: "https://mau.dev/mautrix
matrix_mautrix_discord_container_image_self_build_branch: "{{ 'main' if matrix_mautrix_discord_version == 'latest' else matrix_mautrix_discord_version }}"
# renovate: datasource=docker depName=dock.mau.dev/mautrix/discord
matrix_mautrix_discord_version: v0.7.4
matrix_mautrix_discord_version: v0.7.5
# See: https://mau.dev/mautrix/discord/container_registry
matrix_mautrix_discord_docker_image: "{{ matrix_mautrix_discord_docker_image_registry_prefix }}mautrix/discord:{{ matrix_mautrix_discord_version }}"

View File

@@ -10,7 +10,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and vars[item.name] == ''"
when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0"
with_items:
- {'name': 'matrix_mautrix_discord_appservice_token', when: true}
- {'name': 'matrix_mautrix_discord_homeserver_address', when: true}
@@ -26,7 +26,7 @@
msg: >-
Your configuration contains a variable, which now has a different name.
Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml).
when: "item.old in vars"
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
with_items:
- {'old': 'matrix_mautrix_discord_login_shared_secret', 'new': '<removed>'}
- {'old': 'matrix_mautrix_discord_homeserver_public_address', 'new': 'matrix_mautrix_discord_bridge_public_address'}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
# Homeserver details.
homeserver:
# The address that this appservice can use to connect to the homeserver.

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
[Unit]
Description=Matrix Mautrix Discord bridge
{% for service in matrix_mautrix_discord_systemd_required_services_list %}

View File

@@ -12,7 +12,7 @@
msg: >-
Your configuration contains a variable, which now has a different name.
Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml).
when: "item.old in vars"
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
with_items:
- {'old': 'matrix_mautrix_facebook_public_endpoint', 'new': 'matrix_mautrix_facebook_appservice_public_prefix'}
- {'old': 'matrix_mautrix_facebook_docker_image_name_prefix', 'new': 'matrix_mautrix_facebook_docker_image_registry_prefix'}
@@ -21,7 +21,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and vars[item.name] == ''"
when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0"
with_items:
- {'name': 'matrix_mautrix_facebook_appservice_public_hostname', when: "{{ matrix_mautrix_facebook_appservice_public_enabled }}"}
- {'name': 'matrix_mautrix_facebook_appservice_public_prefix', when: "{{ matrix_mautrix_facebook_appservice_public_enabled }}"}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
# Homeserver details
homeserver:
# The address that this appservice can use to connect to the homeserver.

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
[Unit]
Description=Matrix Mautrix Facebook bridge
{% for service in matrix_mautrix_facebook_systemd_required_services_list %}

View File

@@ -18,7 +18,7 @@ matrix_mautrix_gmessages_container_image_self_build_repo: "https://github.com/ma
matrix_mautrix_gmessages_container_image_self_build_branch: "{{ 'main' if matrix_mautrix_gmessages_version == 'latest' else matrix_mautrix_gmessages_version }}"
# renovate: datasource=docker depName=dock.mau.dev/mautrix/gmessages
matrix_mautrix_gmessages_version: v0.6.3
matrix_mautrix_gmessages_version: v0.6.4
# See: https://mau.dev/mautrix/gmessages/container_registry
matrix_mautrix_gmessages_docker_image: "{{ matrix_mautrix_gmessages_docker_image_registry_prefix }}mautrix/gmessages:{{ matrix_mautrix_gmessages_version }}"

View File

@@ -10,7 +10,7 @@
ansible.builtin.fail:
msg: >-
You need to define a required configuration setting (`{{ item.name }}`).
when: "item.when | bool and vars[item.name] == ''"
when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0"
with_items:
- {'name': 'matrix_mautrix_gmessages_appservice_token', when: true}
- {'name': 'matrix_mautrix_gmessages_homeserver_address', when: true}
@@ -25,7 +25,7 @@
msg: >-
Your configuration contains a variable, which now has a different name.
Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml).
when: "item.old in vars"
when: "lookup('ansible.builtin.varnames', ('^' + item.old + '$'), wantlist=True) | length > 0"
with_items:
- {'old': 'matrix_mautrix_gmessages_log_level', 'new': 'matrix_mautrix_gmessages_logging_level'}
- {'old': 'matrix_mautrix_gmessages_bridge_mute_bridging', 'new': '<removed>'}

View File

@@ -1,4 +1,4 @@
#jinja2: lstrip_blocks: "True"
#jinja2: lstrip_blocks: True
# Network-specific config options
network:
# Displayname template for SMS users.

Some files were not shown because too many files have changed in this diff Show More