Compare commits

..

18 Commits

Author SHA1 Message Date
github-actions[bot] d618dc8cc6 Automatic translations update 2026-03-07 10:45:14 +00:00
Slavi Pantaleev df205a2f77 Upgrade baibot (v1.14.3 -> v1.15.0) and adapt to support optional access-token auth mode
Ref:
- https://github.com/etkecc/baibot/pull/83
- https://github.com/etkecc/baibot/blob/748d2b7fd4ab7bbd53cde1400935d634dc13ea38/CHANGELOG.md#2026-03-07-version-1150
- https://github.com/etkecc/baibot/blob/748d2b7fd4ab7bbd53cde1400935d634dc13ea38/docs/configuration/authentication.md
2026-03-07 12:43:48 +02:00
renovate[bot] 7e3b82b80e chore(deps): update dependency backup_borg to v1.4.3-2.1.1-2 2026-03-07 08:17:34 +02:00
renovate[bot] c3a9772f51 chore(deps): update dependency charset-normalizer to v3.4.5 2026-03-06 11:29:27 +02:00
renovate[bot] 1f3ea18213 chore(deps): update dependency livekit_server to v1.9.12-0 2026-03-05 22:21:57 +02:00
renovate[bot] 0acb1f98e8 chore(deps): update pre-commit hook codespell-project/codespell to v2.4.2 2026-03-05 22:20:16 +02:00
renovate[bot] 58141f9926 chore(deps): update dependency tabulate to v0.10.0 2026-03-05 14:07:03 +02:00
mikhail.sarnov 1ee5c1f416 feat(synapse): add ca_certs_file support for LDAP TLS
Add matrix_synapse_ext_password_provider_ldap_tls_options_ca_certs_file
variable to allow specifying a custom CA certificate file for LDAP TLS
verification. Useful when Synapse is running in a container that does not
trust a private/internal CA by default.

Example usage:
matrix_synapse_ext_password_provider_ldap_tls_options_ca_certs_file: /etc/ssl/certs/my-ca.crt
2026-03-05 14:06:52 +02:00
renovate[bot] c9bb48ff11 chore(deps): update docker.io/metio/matrix-alertmanager-receiver docker tag to v2026.3.4 2026-03-04 12:11:43 +02:00
Suguru Hirahara 0cbffe695b Update Etherpad (v2.6.1-1 → v2.6.1-2)
Now that UID and GID are not specified by default, it is necessary for the playbook to specify them. MASH playbook has already taken care of them on https://github.com/mother-of-all-self-hosting/mash-playbook/blob/9707a4786bff74046ffa76349569e11431da8726/templates/group_vars_mash_servers#L4794-L4795.

Signed-off-by: Suguru Hirahara <did:key:z6MkvVZk1A3KBApWJXv2Ju4H14ErDfRGxh8zxdXSZ4vACDg5>
2026-03-04 11:43:52 +02:00
renovate[bot] af237ac9c7 chore(deps): update forgejo.ellis.link/continuwuation/continuwuity docker tag to v0.5.6 2026-03-04 07:37:15 +02:00
Slavi Pantaleev 87a799faa6 Fix Commet variable placement in matrix_servers
Move Commet defaults out of the Element section into a dedicated matrix-client-commet block, and add missing matrix_client_commet_enabled default wiring.

Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/5000
2026-03-03 21:41:48 +02:00
D4GU f5b722b13d Add commet webclient support (#4997) 2026-03-03 17:39:01 +02:00
renovate[bot] c0be489796 chore(deps): update dependency imagesize to v2 2026-03-03 16:55:06 +02:00
renovate[bot] 2d1be91ac2 chore(deps): update dependency linkify-it-py to v2.1.0 2026-03-03 12:54:52 +02:00
renovate[bot] bd809f16f3 chore(deps): update dependency uc-micro-py to v2 2026-03-03 12:54:45 +02:00
tripleawwy 58bf4fe34b fix: conditionally include m.identity_server in Element Web config.json
When no identity server is configured, `matrix_client_element_default_is_url`
defaults to `~` (YAML null). The `| string | to_json` filter chain converts
this to the literal string `"None"`, causing Element Web to log errors:

- TypeError: URL constructor: None is not a valid URL
- Invalid base_url for m.identity_server

The well-known template (`.well-known/matrix/client.j2`) already handles
this correctly with a conditional guard (see PR #314). This applies the
same pattern to the Element Web `config.json.j2` template.
2026-03-03 12:50:52 +02:00
renovate[bot] a787993aaf chore(deps): update dependency imagesize to v1.5.0 2026-03-03 12:49:26 +02:00
50 changed files with 728 additions and 147 deletions
+1 -1
View File
@@ -1,2 +1,2 @@
[codespell] [codespell]
ignore-words-list = aNULL,brose,doub,Udo,re-use,re-used,registr,shema ignore-words-list = aNULL,brose,doub,Udo,re-use,re-used,registr,shema,commet,Commet
+1 -1
View File
@@ -16,7 +16,7 @@ repos:
- id: trailing-whitespace - id: trailing-whitespace
- id: end-of-file-fixer - id: end-of-file-fixer
- repo: https://github.com/codespell-project/codespell - repo: https://github.com/codespell-project/codespell
rev: v2.4.1 rev: v2.4.2
hooks: hooks:
- id: codespell - id: codespell
args: ["--skip=*.po,*.pot,i18n/"] args: ["--skip=*.po,*.pot,i18n/"]
+23 -2
View File
@@ -39,16 +39,35 @@ Depending on your current `vars.yml` file and desired configuration, **you may r
To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
Authentication can be configured in one of two mutually-exclusive ways:
- **Password authentication** (`matrix_bot_baibot_config_user_password`) - recommended for most playbook-managed setups, because it integrates with automatic user creation flow used by the playbook, and auto-creates the bot account
- **Access-token authentication** (`matrix_bot_baibot_config_user_access_token` + `matrix_bot_baibot_config_user_device_id`) - useful for specific [Matrix Authentication Service](configuring-playbook-matrix-authentication-service.md)/OIDC setups where password authentication is not available or not desired
Even when [Matrix Authentication Service](configuring-playbook-matrix-authentication-service.md) is enabled, password authentication is still typically the best fit for baibot if you're using a playbook-managed bot account.
For upstream details, see baibot's [🔐 Authentication](https://github.com/etkecc/baibot/blob/main/docs/configuration/authentication.md) documentation.
```yaml ```yaml
matrix_bot_baibot_enabled: true matrix_bot_baibot_enabled: true
# Uncomment and adjust this part if you'd like to use a username different than the default # Uncomment and adjust this part if you'd like to use a username different than the default
# matrix_bot_baibot_config_user_mxid_localpart: baibot # matrix_bot_baibot_config_user_mxid_localpart: baibot
# Authentication mode (choose exactly one):
#
# 1) Password authentication (recommended for most setups)
# Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`. # Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`.
# If you'd like to change this password subsequently, see the details below. # If you'd like to change this password subsequently, see the details below.
matrix_bot_baibot_config_user_password: 'PASSWORD_FOR_THE_BOT' matrix_bot_baibot_config_user_password: 'PASSWORD_FOR_THE_BOT'
# 2) Access-token authentication (for MAS/OIDC-enabled homeservers)
# matrix_bot_baibot_config_user_access_token: 'YOUR_MAS_COMPATIBILITY_TOKEN_HERE'
# matrix_bot_baibot_config_user_device_id: 'BAIBOT'
#
# You can generate a compatibility token for MAS with:
# mas-cli manage issue-compatibility-token <username> [device_id]
# An optional passphrase to use for backing up and recovering the bot's encryption keys. # An optional passphrase to use for backing up and recovering the bot's encryption keys.
# You can create one with a command like `pwgen -s 64 1`. # You can create one with a command like `pwgen -s 64 1`.
# #
@@ -387,13 +406,15 @@ ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-use
**Notes**: **Notes**:
- The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account. - The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account when password authentication is used.
- If you're using access-token authentication, the bot account must already exist and the configured token + device ID must match that account. This mode is mainly for MAS/OIDC setups where password-based bot login is not suitable.
- The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all` - The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed. `just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed.
- If you change the bot password (`matrix_bot_baibot_config_user_password` in your `vars.yml` file) subsequently, the bot user's credentials on the homeserver won't be updated automatically. If you'd like to change the bot user's password, use a tool like [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_baibot_config_user_password` to let the bot know its new password. - If you change the bot password (`matrix_bot_baibot_config_user_password` in your `vars.yml` file) subsequently, the bot user's credentials on the homeserver won't be updated automatically. If you'd like to change the bot user's password, use a tool like [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_baibot_config_user_password` to let the bot know its new password. (This note applies to password authentication mode.)
## Usage ## Usage
+42 -1
View File
@@ -604,6 +604,13 @@ devture_systemd_service_manager_services_list_auto: |
'groups': ['matrix', 'clients', 'schildichat', 'client-schildichat'], 'groups': ['matrix', 'clients', 'schildichat', 'client-schildichat'],
}] if matrix_client_schildichat_enabled else []) }] if matrix_client_schildichat_enabled else [])
+ +
([{
'name': 'matrix-client-commet.service',
'priority': 2000,
'restart_necessary': (matrix_client_commet_restart_necessary | bool),
'groups': ['matrix', 'clients', 'commet', 'client-commet'],
}] if matrix_client_commet_enabled else [])
+
([{ ([{
'name': 'matrix-client-fluffychat.service', 'name': 'matrix-client-fluffychat.service',
'priority': 2000, 'priority': 2000,
@@ -3593,6 +3600,9 @@ etherpad_scheme: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}"
etherpad_base_path: "{{ matrix_base_data_path }}/etherpad" etherpad_base_path: "{{ matrix_base_data_path }}/etherpad"
etherpad_uid: "{{ matrix_user_uid }}"
etherpad_gid: "{{ matrix_user_gid }}"
etherpad_framing_enabled: "{{ jitsi_enabled }}" etherpad_framing_enabled: "{{ jitsi_enabled }}"
etherpad_hostname: "{{ matrix_server_fqn_etherpad }}" etherpad_hostname: "{{ matrix_server_fqn_etherpad }}"
@@ -4392,6 +4402,7 @@ matrix_client_element_container_additional_networks: "{{ [matrix_playbook_revers
matrix_client_element_container_labels_traefik_enabled: "{{ matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] }}" matrix_client_element_container_labels_traefik_enabled: "{{ matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] }}"
matrix_client_element_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}" matrix_client_element_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}"
matrix_client_element_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}" matrix_client_element_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}"
matrix_client_element_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}" matrix_client_element_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}"
@@ -4434,6 +4445,36 @@ matrix_client_element_element_call_url: "{{ matrix_element_call_public_url if ma
# #
###################################################################### ######################################################################
######################################################################
#
# matrix-client-commet
#
######################################################################
matrix_client_commet_enabled: false
matrix_client_commet_hostname: "commet.{{ matrix_domain }}"
matrix_client_commet_container_http_host_bind_port: "{{ (matrix_playbook_service_host_bind_interface_prefix ~ '8766') if matrix_playbook_service_host_bind_interface_prefix else '' }}"
matrix_client_commet_container_network: "{{ matrix_addons_container_network }}"
matrix_client_commet_container_additional_networks: "{{ [matrix_playbook_reverse_proxyable_services_additional_network] if (matrix_client_commet_container_labels_traefik_enabled and matrix_playbook_reverse_proxyable_services_additional_network) else [] }}"
matrix_client_commet_container_labels_traefik_enabled: "{{ matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] }}"
matrix_client_commet_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}"
matrix_client_commet_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}"
matrix_client_commet_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}"
matrix_client_commet_container_labels_traefik_compression_middleware_enabled: "{{ matrix_playbook_reverse_proxy_traefik_middleware_compression_enabled }}"
matrix_client_commet_container_labels_traefik_compression_middleware_name: "{{ matrix_playbook_reverse_proxy_traefik_middleware_compression_name if matrix_playbook_reverse_proxy_traefik_middleware_compression_enabled else '' }}"
######################################################################
#
# /matrix-client-commet
#
######################################################################
###################################################################### ######################################################################
# #
# hydrogen # hydrogen
@@ -5737,7 +5778,7 @@ matrix_user_creator_users_auto: |
'username': matrix_bot_baibot_config_user_mxid_localpart, 'username': matrix_bot_baibot_config_user_mxid_localpart,
'initial_password': matrix_bot_baibot_config_user_password, 'initial_password': matrix_bot_baibot_config_user_password,
'initial_type': 'bot', 'initial_type': 'bot',
}] if matrix_bot_baibot_enabled else []) }] if matrix_bot_baibot_enabled and ((matrix_bot_baibot_config_user_password | default('', true) | string | length) > 0) else [])
+ +
([{ ([{
'username': matrix_bot_matrix_reminder_bot_matrix_user_id_localpart, 'username': matrix_bot_matrix_reminder_bot_matrix_user_id_localpart,
+5 -5
View File
@@ -1,13 +1,13 @@
alabaster==1.0.0 alabaster==1.0.0
babel==2.18.0 babel==2.18.0
certifi==2026.2.25 certifi==2026.2.25
charset-normalizer==3.4.4 charset-normalizer==3.4.5
click==8.3.1 click==8.3.1
docutils==0.22.4 docutils==0.22.4
idna==3.11 idna==3.11
imagesize==1.4.1 imagesize==2.0.0
Jinja2==3.1.6 Jinja2==3.1.6
linkify-it-py==2.0.3 linkify-it-py==2.1.0
markdown-it-py==4.0.0 markdown-it-py==4.0.0
MarkupSafe==3.0.3 MarkupSafe==3.0.3
mdit-py-plugins==0.5.0 mdit-py-plugins==0.5.0
@@ -28,6 +28,6 @@ sphinxcontrib-htmlhelp==2.1.0
sphinxcontrib-jsmath==1.0.1 sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==2.0.0 sphinxcontrib-qthelp==2.0.0
sphinxcontrib-serializinghtml==2.0.0 sphinxcontrib-serializinghtml==2.0.0
tabulate==0.9.0 tabulate==0.10.0
uc-micro-py==1.0.3 uc-micro-py==2.0.0
urllib3==2.6.3 urllib3==2.6.3
+1 -1
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-03 10:49+0000\n" "POT-Creation-Date: 2026-03-07 10:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
+1 -1
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-03 10:49+0000\n" "POT-Creation-Date: 2026-03-07 10:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-02-13 10:32+0000\n" "POT-Creation-Date: 2026-03-07 10:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -80,369 +80,393 @@ msgstr ""
msgid "To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" msgid "To enable the bot, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:78 #: ../../../docs/configuring-playbook-bot-baibot.md:42
msgid "Authentication can be configured in one of two mutually-exclusive ways:"
msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:44
msgid "**Password authentication** (`matrix_bot_baibot_config_user_password`) - recommended for most playbook-managed setups, because it integrates with automatic user creation flow used by the playbook, and auto-creates the bot account"
msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:45
msgid "**Access-token authentication** (`matrix_bot_baibot_config_user_access_token` + `matrix_bot_baibot_config_user_device_id`) - useful for specific [Matrix Authentication Service](configuring-playbook-matrix-authentication-service.md)/OIDC setups where password authentication is not available or not desired"
msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:47
msgid "Even when [Matrix Authentication Service](configuring-playbook-matrix-authentication-service.md) is enabled, password authentication is still typically the best fit for baibot if you're using a playbook-managed bot account."
msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:49
msgid "For upstream details, see baibot's [🔐 Authentication](https://github.com/etkecc/baibot/blob/main/docs/configuration/authentication.md) documentation."
msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:97
msgid "As mentioned above, **this may not be enough**. Continue with the configuration sections below." msgid "As mentioned above, **this may not be enough**. Continue with the configuration sections below."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:80 #: ../../../docs/configuring-playbook-bot-baibot.md:99
msgid "👮‍♂️ Administrator configuration" msgid "👮‍♂️ Administrator configuration"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:82 #: ../../../docs/configuring-playbook-bot-baibot.md:101
#: ../../../docs/configuring-playbook-bot-baibot.md:106 #: ../../../docs/configuring-playbook-bot-baibot.md:125
msgid "This is an addition to the [base configuration](#base-configuration)." msgid "This is an addition to the [base configuration](#base-configuration)."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:84 #: ../../../docs/configuring-playbook-bot-baibot.md:103
msgid "To specify who is considered a bot [👮‍♂️ Administrator](https://github.com/etkecc/baibot/blob/main/docs/access.md#administrators), you either need to specify `matrix_bot_baibot_config_access_admin_patterns` or `matrix_admin`. The latter is a single variable which affects all bridges and bots." msgid "To specify who is considered a bot [👮‍♂️ Administrator](https://github.com/etkecc/baibot/blob/main/docs/access.md#administrators), you either need to specify `matrix_bot_baibot_config_access_admin_patterns` or `matrix_admin`. The latter is a single variable which affects all bridges and bots."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:86 #: ../../../docs/configuring-playbook-bot-baibot.md:105
msgid "If `matrix_admin` is already configured in your `vars.yml` configuration, you can skip this section." msgid "If `matrix_admin` is already configured in your `vars.yml` configuration, you can skip this section."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:88 #: ../../../docs/configuring-playbook-bot-baibot.md:107
#: ../../../docs/configuring-playbook-bot-baibot.md:117 #: ../../../docs/configuring-playbook-bot-baibot.md:136
msgid "**If necessary**, add the following configuration to your `vars.yml` file:" msgid "**If necessary**, add the following configuration to your `vars.yml` file:"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:102 #: ../../../docs/configuring-playbook-bot-baibot.md:121
msgid "👥 Initial users configuration" msgid "👥 Initial users configuration"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:104 #: ../../../docs/configuring-playbook-bot-baibot.md:123
msgid "By default, **all users on your homeserver are considered allowed users**. If that's OK, you can skip this section." msgid "By default, **all users on your homeserver are considered allowed users**. If that's OK, you can skip this section."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:108 #: ../../../docs/configuring-playbook-bot-baibot.md:127
msgid "To specify who is considered a bot [👥 User](https://github.com/etkecc/baibot/blob/main/docs/access.md#user), you may:" msgid "To specify who is considered a bot [👥 User](https://github.com/etkecc/baibot/blob/main/docs/access.md#user), you may:"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:110 #: ../../../docs/configuring-playbook-bot-baibot.md:129
msgid "define an **initial** value for `matrix_bot_baibot_config_initial_global_config_user_patterns` Ansible variable, as shown below" msgid "define an **initial** value for `matrix_bot_baibot_config_initial_global_config_user_patterns` Ansible variable, as shown below"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:111 #: ../../../docs/configuring-playbook-bot-baibot.md:130
msgid "configure the list at runtime via the bot's `!bai access set-users SPACE_SEPARATED_PATTERNS` command" msgid "configure the list at runtime via the bot's `!bai access set-users SPACE_SEPARATED_PATTERNS` command"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:113 #: ../../../docs/configuring-playbook-bot-baibot.md:132
msgid "Configuring `matrix_bot_baibot_config_initial_global_config_user_patterns` is optional, but it can be useful to pre-configure the bot with a list of users who should have access to the bot's features." msgid "Configuring `matrix_bot_baibot_config_initial_global_config_user_patterns` is optional, but it can be useful to pre-configure the bot with a list of users who should have access to the bot's features."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:115 #: ../../../docs/configuring-playbook-bot-baibot.md:134
msgid "**Note**: Once initially configured, the allowed users list **cannot be managed via Ansible anymore**. It can only be managed subsequently via bot commands." msgid "**Note**: Once initially configured, the allowed users list **cannot be managed via Ansible anymore**. It can only be managed subsequently via bot commands."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:129 #: ../../../docs/configuring-playbook-bot-baibot.md:148
msgid "🤖 Configuring agents via Ansible" msgid "🤖 Configuring agents via Ansible"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:131 #: ../../../docs/configuring-playbook-bot-baibot.md:150
msgid "You are **not required** to define agents [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration) via Ansible. **To get started quickly**, you can **skip this section and define agents at runtime via chat commands** (following the bot's guidance)." msgid "You are **not required** to define agents [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration) via Ansible. **To get started quickly**, you can **skip this section and define agents at runtime via chat commands** (following the bot's guidance)."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:133 #: ../../../docs/configuring-playbook-bot-baibot.md:152
msgid "Privileged users (like the [👮‍♂️ Administrator](#-administrator-configuration), but potentially others too — see the upstream [🔒 access](https://github.com/etkecc/baibot/blob/main/docs/access.md) documentation) can **define agents dynamically at any time** via chat commands." msgid "Privileged users (like the [👮‍♂️ Administrator](#-administrator-configuration), but potentially others too — see the upstream [🔒 access](https://github.com/etkecc/baibot/blob/main/docs/access.md) documentation) can **define agents dynamically at any time** via chat commands."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:135 #: ../../../docs/configuring-playbook-bot-baibot.md:154
msgid "The Ansible role includes preset variables for easily enabling some [🤖 agents](https://github.com/etkecc/baibot/blob/main/docs/agents.md) on various [☁️ providers](https://github.com/etkecc/baibot/blob/main/docs/providers.md) (e.g. OpenAI, etc)." msgid "The Ansible role includes preset variables for easily enabling some [🤖 agents](https://github.com/etkecc/baibot/blob/main/docs/agents.md) on various [☁️ providers](https://github.com/etkecc/baibot/blob/main/docs/providers.md) (e.g. OpenAI, etc)."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:137 #: ../../../docs/configuring-playbook-bot-baibot.md:156
msgid "Besides the presets, the Ansible role also includes support for configuring additional statically-defined agents via the `matrix_bot_baibot_config_agents_static_definitions_custom` Ansible variable." msgid "Besides the presets, the Ansible role also includes support for configuring additional statically-defined agents via the `matrix_bot_baibot_config_agents_static_definitions_custom` Ansible variable."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:139 #: ../../../docs/configuring-playbook-bot-baibot.md:158
msgid "Agents defined statically and those created dynamically (via chat) are named differently, so **conflict cannot arise**." msgid "Agents defined statically and those created dynamically (via chat) are named differently, so **conflict cannot arise**."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:141 #: ../../../docs/configuring-playbook-bot-baibot.md:160
msgid "Depending on your propensity for [GitOps](https://en.wikipedia.org/wiki/DevOps#GitOps), you may prefer to define agents statically via Ansible, or you may wish to do it dynamically via chat." msgid "Depending on your propensity for [GitOps](https://en.wikipedia.org/wiki/DevOps#GitOps), you may prefer to define agents statically via Ansible, or you may wish to do it dynamically via chat."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:143 #: ../../../docs/configuring-playbook-bot-baibot.md:162
msgid "Before proceeding, we recommend reading the upstream documentation on [How to choose a provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#how-to-choose-a-provider). In short, it's probably best to go with [OpenAI](#openai)." msgid "Before proceeding, we recommend reading the upstream documentation on [How to choose a provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#how-to-choose-a-provider). In short, it's probably best to go with [OpenAI](#openai)."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:145 #: ../../../docs/configuring-playbook-bot-baibot.md:164
msgid "Anthropic" msgid "Anthropic"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:147 #: ../../../docs/configuring-playbook-bot-baibot.md:166
msgid "You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [Anthropic provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#anthropic) with the help of the playbook's preset variables." msgid "You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [Anthropic provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#anthropic) with the help of the playbook's preset variables."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:149 #: ../../../docs/configuring-playbook-bot-baibot.md:168
#: ../../../docs/configuring-playbook-bot-baibot.md:173 #: ../../../docs/configuring-playbook-bot-baibot.md:192
#: ../../../docs/configuring-playbook-bot-baibot.md:204 #: ../../../docs/configuring-playbook-bot-baibot.md:223
#: ../../../docs/configuring-playbook-bot-baibot.md:232 #: ../../../docs/configuring-playbook-bot-baibot.md:251
msgid "Here's an example **addition** to your `vars.yml` file:" msgid "Here's an example **addition** to your `vars.yml` file:"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:165 #: ../../../docs/configuring-playbook-bot-baibot.md:184
#: ../../../docs/configuring-playbook-bot-baibot.md:196 #: ../../../docs/configuring-playbook-bot-baibot.md:215
#: ../../../docs/configuring-playbook-bot-baibot.md:222 #: ../../../docs/configuring-playbook-bot-baibot.md:241
#: ../../../docs/configuring-playbook-bot-baibot.md:256 #: ../../../docs/configuring-playbook-bot-baibot.md:275
msgid "If you'd like to use more than one model, take a look at the [Configuring additional agents (without a preset)](#configuring-additional-agents-without-a-preset) section below." msgid "If you'd like to use more than one model, take a look at the [Configuring additional agents (without a preset)](#configuring-additional-agents-without-a-preset) section below."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:167 #: ../../../docs/configuring-playbook-bot-baibot.md:186
#: ../../../docs/configuring-playbook-bot-baibot.md:198 #: ../../../docs/configuring-playbook-bot-baibot.md:217
#: ../../../docs/configuring-playbook-bot-baibot.md:224 #: ../../../docs/configuring-playbook-bot-baibot.md:243
#: ../../../docs/configuring-playbook-bot-baibot.md:258 #: ../../../docs/configuring-playbook-bot-baibot.md:277
msgid "💡 You may also wish to use this new agent for [🤝 Configuring initial default handlers](#-configuring-initial-default-handlers)." msgid "💡 You may also wish to use this new agent for [🤝 Configuring initial default handlers](#-configuring-initial-default-handlers)."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:169 #: ../../../docs/configuring-playbook-bot-baibot.md:188
msgid "Groq" msgid "Groq"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:171 #: ../../../docs/configuring-playbook-bot-baibot.md:190
msgid "You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [Groq provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#groq) with the help of the playbook's preset variables." msgid "You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [Groq provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#groq) with the help of the playbook's preset variables."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:194 #: ../../../docs/configuring-playbook-bot-baibot.md:213
msgid "Because this is a [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agent, it will be given a `static/` ID prefix and will be named `static/groq`." msgid "Because this is a [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agent, it will be given a `static/` ID prefix and will be named `static/groq`."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:200 #: ../../../docs/configuring-playbook-bot-baibot.md:219
msgid "Mistral" msgid "Mistral"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:202 #: ../../../docs/configuring-playbook-bot-baibot.md:221
msgid "You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [🇫🇷 Mistral provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#mistral) with the help of the playbook's preset variables." msgid "You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [🇫🇷 Mistral provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#mistral) with the help of the playbook's preset variables."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:220 #: ../../../docs/configuring-playbook-bot-baibot.md:239
msgid "Because this is a [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agent, it will be given a `static/` ID prefix and will be named `static/mistral`." msgid "Because this is a [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agent, it will be given a `static/` ID prefix and will be named `static/mistral`."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:226 #: ../../../docs/configuring-playbook-bot-baibot.md:245
msgid "OpenAI" msgid "OpenAI"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:228 #: ../../../docs/configuring-playbook-bot-baibot.md:247
msgid "You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [OpenAI provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#openai) with the help of the playbook's preset variables." msgid "You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [OpenAI provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#openai) with the help of the playbook's preset variables."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:230 #: ../../../docs/configuring-playbook-bot-baibot.md:249
msgid "The OpenAI provider is **only meant to be used with OpenAI's official API** and compatibility with other services (which do not fully adhere to the OpenAI API spec completely) is limited. **If you're targeting an OpenAI-compatible service**, use the [OpenAI Compatible](#openai-compatible) provider instead." msgid "The OpenAI provider is **only meant to be used with OpenAI's official API** and compatibility with other services (which do not fully adhere to the OpenAI API spec completely) is limited. **If you're targeting an OpenAI-compatible service**, use the [OpenAI Compatible](#openai-compatible) provider instead."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:254 #: ../../../docs/configuring-playbook-bot-baibot.md:273
msgid "Because this is a [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agent, it will be given a `static/` ID prefix and will be named `static/openai`." msgid "Because this is a [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agent, it will be given a `static/` ID prefix and will be named `static/openai`."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:260 #: ../../../docs/configuring-playbook-bot-baibot.md:279
msgid "OpenAI Compatible" msgid "OpenAI Compatible"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:262 #: ../../../docs/configuring-playbook-bot-baibot.md:281
msgid "You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [OpenAI Compatible provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#openai-compatible) with the help of the playbook's preset variables." msgid "You can statically-define a single [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md) instance powered by the [OpenAI Compatible provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md#openai-compatible) with the help of the playbook's preset variables."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:264 #: ../../../docs/configuring-playbook-bot-baibot.md:283
msgid "This provider allows you to use OpenAI-compatible API services like [OpenRouter](https://github.com/etkecc/baibot/blob/main/docs/providers.md#openrouter), [Together AI](https://github.com/etkecc/baibot/blob/main/docs/providers.md#together-ai), etc." msgid "This provider allows you to use OpenAI-compatible API services like [OpenRouter](https://github.com/etkecc/baibot/blob/main/docs/providers.md#openrouter), [Together AI](https://github.com/etkecc/baibot/blob/main/docs/providers.md#together-ai), etc."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:266 #: ../../../docs/configuring-playbook-bot-baibot.md:285
msgid "Some of these popular services already have **shortcut** providers (see [supported providers](https://github.com/etkecc/baibot/blob/main/docs/providers.md#supported-providers) leading to this one behind the scenes — this make it easier to get started." msgid "Some of these popular services already have **shortcut** providers (see [supported providers](https://github.com/etkecc/baibot/blob/main/docs/providers.md#supported-providers) leading to this one behind the scenes — this make it easier to get started."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:268 #: ../../../docs/configuring-playbook-bot-baibot.md:287
msgid "As of this moment, the playbook does not include presets for any of these services, so you'll need to [Configuring additional agents (without a preset)](#configuring-additional-agents-without-a-preset)." msgid "As of this moment, the playbook does not include presets for any of these services, so you'll need to [Configuring additional agents (without a preset)](#configuring-additional-agents-without-a-preset)."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:270 #: ../../../docs/configuring-playbook-bot-baibot.md:289
msgid "Configuring additional agents (without a preset)" msgid "Configuring additional agents (without a preset)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:272 #: ../../../docs/configuring-playbook-bot-baibot.md:291
msgid "The Ansible role may be lacking preset variables for some [☁️ provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md), or you may wish to statically-define an agent on the same provider twice (or more) with different configuration." msgid "The Ansible role may be lacking preset variables for some [☁️ provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md), or you may wish to statically-define an agent on the same provider twice (or more) with different configuration."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:274 #: ../../../docs/configuring-playbook-bot-baibot.md:293
msgid "It's possible to inject your own agent configuration using the `matrix_bot_baibot_config_agents_static_definitions_custom` Ansible variable." msgid "It's possible to inject your own agent configuration using the `matrix_bot_baibot_config_agents_static_definitions_custom` Ansible variable."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:276 #: ../../../docs/configuring-playbook-bot-baibot.md:295
msgid "You can also define providers at runtime, by chatting with the bot, so using Ansible is not a requirement." msgid "You can also define providers at runtime, by chatting with the bot, so using Ansible is not a requirement."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:278 #: ../../../docs/configuring-playbook-bot-baibot.md:297
msgid "Below is an an **example** demonstrating **statically-defining agents via Ansible without using presets**:" msgid "Below is an an **example** demonstrating **statically-defining agents via Ansible without using presets**:"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:317 #: ../../../docs/configuring-playbook-bot-baibot.md:336
msgid "Because these are [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agents, they will be given a `static/` ID prefix and will be named `static/my-openai-gpt-3.5-turbo-agent` and `static/my-ollama-agent`, respectively." msgid "Because these are [statically](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md#static-configuration)-defined agents, they will be given a `static/` ID prefix and will be named `static/my-openai-gpt-3.5-turbo-agent` and `static/my-ollama-agent`, respectively."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:319 #: ../../../docs/configuring-playbook-bot-baibot.md:338
msgid "💡 To figure out what to put in the `config` section, refer to the [☁️ provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md) page, which contains **sample configuration YAML for each provider**." msgid "💡 To figure out what to put in the `config` section, refer to the [☁️ provider](https://github.com/etkecc/baibot/blob/main/docs/providers.md) page, which contains **sample configuration YAML for each provider**."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:321 #: ../../../docs/configuring-playbook-bot-baibot.md:340
msgid "As with any [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md), defining them means they exist. To actually make use of them, they need to be configured as handlers globally or in a specific room — see [Mixing & matching models](https://github.com/etkecc/baibot/blob/main/docs/features.md#mixing--matching-models)." msgid "As with any [🤖 agent](https://github.com/etkecc/baibot/blob/main/docs/agents.md), defining them means they exist. To actually make use of them, they need to be configured as handlers globally or in a specific room — see [Mixing & matching models](https://github.com/etkecc/baibot/blob/main/docs/features.md#mixing--matching-models)."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:323 #: ../../../docs/configuring-playbook-bot-baibot.md:342
msgid "💡 You may also wish to use these new agents for [🤝 Configuring initial default handlers](#-configuring-initial-default-handlers)." msgid "💡 You may also wish to use these new agents for [🤝 Configuring initial default handlers](#-configuring-initial-default-handlers)."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:325 #: ../../../docs/configuring-playbook-bot-baibot.md:344
msgid "🤝 Configuring initial default handlers" msgid "🤝 Configuring initial default handlers"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:327 #: ../../../docs/configuring-playbook-bot-baibot.md:346
msgid "This section is only useful if you're [🤖 Configuring agents via Ansible](#-configuring-agents-via-ansible), as it lets you put these agents to use as soon as the bot starts (by adjusting the bot's **initial global configuration**)." msgid "This section is only useful if you're [🤖 Configuring agents via Ansible](#-configuring-agents-via-ansible), as it lets you put these agents to use as soon as the bot starts (by adjusting the bot's **initial global configuration**)."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:329 #: ../../../docs/configuring-playbook-bot-baibot.md:348
msgid "If you're not configuring agents via Ansible, you can skip this section." msgid "If you're not configuring agents via Ansible, you can skip this section."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:331 #: ../../../docs/configuring-playbook-bot-baibot.md:350
msgid "This section is only useful the first time around. **Once initially configured the global configuration cannot be managed Ansible**, but only via bot commands." msgid "This section is only useful the first time around. **Once initially configured the global configuration cannot be managed Ansible**, but only via bot commands."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:333 #: ../../../docs/configuring-playbook-bot-baibot.md:352
msgid "baibot supports [various purposes](https://github.com/etkecc/baibot/blob/main/docs/features.md):" msgid "baibot supports [various purposes](https://github.com/etkecc/baibot/blob/main/docs/features.md):"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:335 #: ../../../docs/configuring-playbook-bot-baibot.md:354
msgid "[💬 text-generation](https://github.com/etkecc/baibot/blob/main/docs/features.md#-text-generation): communicating with you via text" msgid "[💬 text-generation](https://github.com/etkecc/baibot/blob/main/docs/features.md#-text-generation): communicating with you via text"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:337 #: ../../../docs/configuring-playbook-bot-baibot.md:356
msgid "[🦻 speech-to-text](https://github.com/etkecc/baibot/blob/main/docs/features.md#-speech-to-text): turning your voice messages into text" msgid "[🦻 speech-to-text](https://github.com/etkecc/baibot/blob/main/docs/features.md#-speech-to-text): turning your voice messages into text"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:339 #: ../../../docs/configuring-playbook-bot-baibot.md:358
msgid "[🗣️ text-to-speech](https://github.com/etkecc/baibot/blob/main/docs/features.md#-text-to-speech): turning bot or users text messages into voice messages" msgid "[🗣️ text-to-speech](https://github.com/etkecc/baibot/blob/main/docs/features.md#-text-to-speech): turning bot or users text messages into voice messages"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:341 #: ../../../docs/configuring-playbook-bot-baibot.md:360
msgid "[🖌️ image-generation](https://github.com/etkecc/baibot/blob/main/docs/features.md#-image-generation): generating images based on instructions" msgid "[🖌️ image-generation](https://github.com/etkecc/baibot/blob/main/docs/features.md#-image-generation): generating images based on instructions"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:343 #: ../../../docs/configuring-playbook-bot-baibot.md:362
msgid "❓ catch-all: special purposes, indicating use as a fallback (when no specific handler is configured)" msgid "❓ catch-all: special purposes, indicating use as a fallback (when no specific handler is configured)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:345 #: ../../../docs/configuring-playbook-bot-baibot.md:364
msgid "[Mixing & matching models](https://github.com/etkecc/baibot/blob/main/docs/features.md#mixing--matching-models) is made possible by the bot's ability to have different [🤝 handlers](https://github.com/etkecc/baibot/blob/main/docs/configuration/handlers.md) configured for different purposes." msgid "[Mixing & matching models](https://github.com/etkecc/baibot/blob/main/docs/features.md#mixing--matching-models) is made possible by the bot's ability to have different [🤝 handlers](https://github.com/etkecc/baibot/blob/main/docs/configuration/handlers.md) configured for different purposes."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:347 #: ../../../docs/configuring-playbook-bot-baibot.md:366
msgid "This configuration can be done as a global fallback, or per-room. Both of these [🛠️ configurations](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md) are managed at runtime (viat chat), but **the global configuration can have some initial defaults configured via Ansible**." msgid "This configuration can be done as a global fallback, or per-room. Both of these [🛠️ configurations](https://github.com/etkecc/baibot/blob/main/docs/configuration/README.md) are managed at runtime (viat chat), but **the global configuration can have some initial defaults configured via Ansible**."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:349 #: ../../../docs/configuring-playbook-bot-baibot.md:368
msgid "You can configure the **initial values** for these via Ansible, via the `matrix_bot_baibot_config_initial_global_config_handler_*` variables." msgid "You can configure the **initial values** for these via Ansible, via the `matrix_bot_baibot_config_initial_global_config_handler_*` variables."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:351 #: ../../../docs/configuring-playbook-bot-baibot.md:370
msgid "Example **additional** `vars.yml` configuration:" msgid "Example **additional** `vars.yml` configuration:"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:368 #: ../../../docs/configuring-playbook-bot-baibot.md:387
msgid "**Note**: these are initial defaults for the bot's global configuration. As such, changing any of these values subsequently has no effect on the bot's behavior. **Once initially configured the global configuration cannot be managed Ansible**, but only via bot commands." msgid "**Note**: these are initial defaults for the bot's global configuration. As such, changing any of these values subsequently has no effect on the bot's behavior. **Once initially configured the global configuration cannot be managed Ansible**, but only via bot commands."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:370 #: ../../../docs/configuring-playbook-bot-baibot.md:389
msgid "Extending the configuration" msgid "Extending the configuration"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:372 #: ../../../docs/configuring-playbook-bot-baibot.md:391
msgid "There are some additional things you may wish to configure about the bot." msgid "There are some additional things you may wish to configure about the bot."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:374 #: ../../../docs/configuring-playbook-bot-baibot.md:393
msgid "Take a look at:" msgid "Take a look at:"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:376 #: ../../../docs/configuring-playbook-bot-baibot.md:395
msgid "`roles/custom/matrix-bot-baibot/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" msgid "`roles/custom/matrix-bot-baibot/defaults/main.yml` for some variables that you can customize via your `vars.yml` file"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:377 #: ../../../docs/configuring-playbook-bot-baibot.md:396
msgid "`roles/custom/matrix-bot-baibot/templates/config.yaml.j2` for the bot's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_bot_baibot_configuration_extension_yaml` variable" msgid "`roles/custom/matrix-bot-baibot/templates/config.yaml.j2` for the bot's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_bot_baibot_configuration_extension_yaml` variable"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:379 #: ../../../docs/configuring-playbook-bot-baibot.md:398
msgid "Installing" msgid "Installing"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:381 #: ../../../docs/configuring-playbook-bot-baibot.md:400
msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:388 #: ../../../docs/configuring-playbook-bot-baibot.md:407
msgid "**Notes**:" msgid "**Notes**:"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:390 #: ../../../docs/configuring-playbook-bot-baibot.md:409
msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account." msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account when password authentication is used."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:392 #: ../../../docs/configuring-playbook-bot-baibot.md:411
msgid "If you're using access-token authentication, the bot account must already exist and the configured token + device ID must match that account. This mode is mainly for MAS/OIDC setups where password-based bot login is not suitable."
msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:413
msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`" msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:394 #: ../../../docs/configuring-playbook-bot-baibot.md:415
msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed." msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:396 #: ../../../docs/configuring-playbook-bot-baibot.md:417
msgid "If you change the bot password (`matrix_bot_baibot_config_user_password` in your `vars.yml` file) subsequently, the bot user's credentials on the homeserver won't be updated automatically. If you'd like to change the bot user's password, use a tool like [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_baibot_config_user_password` to let the bot know its new password." msgid "If you change the bot password (`matrix_bot_baibot_config_user_password` in your `vars.yml` file) subsequently, the bot user's credentials on the homeserver won't be updated automatically. If you'd like to change the bot user's password, use a tool like [synapse-admin](configuring-playbook-synapse-admin.md) to change it, and then update `matrix_bot_baibot_config_user_password` to let the bot know its new password. (This note applies to password authentication mode.)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:398 #: ../../../docs/configuring-playbook-bot-baibot.md:419
msgid "Usage" msgid "Usage"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:400 #: ../../../docs/configuring-playbook-bot-baibot.md:421
msgid "To use the bot, invite it to any existing Matrix room (`/invite @baibot:example.com` where `example.com` is your base domain, not the `matrix.` domain)." msgid "To use the bot, invite it to any existing Matrix room (`/invite @baibot:example.com` where `example.com` is your base domain, not the `matrix.` domain)."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:402 #: ../../../docs/configuring-playbook-bot-baibot.md:423
msgid "If you're an allowed bot [👥 user](https://github.com/etkecc/baibot/blob/main/docs/access.md#user) (see [👥 Initial users configuration](#-initial-users-configuration)), the bot will accept your invitation and join the room." msgid "If you're an allowed bot [👥 user](https://github.com/etkecc/baibot/blob/main/docs/access.md#user) (see [👥 Initial users configuration](#-initial-users-configuration)), the bot will accept your invitation and join the room."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:404 #: ../../../docs/configuring-playbook-bot-baibot.md:425
msgid "After joining, the bot will introduce itself and show information about the [✨ features](https://github.com/etkecc/baibot/blob/main/docs/features.md) that are enabled for it." msgid "After joining, the bot will introduce itself and show information about the [✨ features](https://github.com/etkecc/baibot/blob/main/docs/features.md) that are enabled for it."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:406 #: ../../../docs/configuring-playbook-bot-baibot.md:427
msgid "If you've [🤖 configured one or more agents via Ansible](#-configuring-agents-via-ansible) and have [🤝 configured initial default handlers](#configuring-initial-default-handlers), the bot will immediately be able to make use of these agents for this new room. Otherwise, you will need to configure agents and/or handlers via chat commands." msgid "If you've [🤖 configured one or more agents via Ansible](#-configuring-agents-via-ansible) and have [🤝 configured initial default handlers](#configuring-initial-default-handlers), the bot will immediately be able to make use of these agents for this new room. Otherwise, you will need to configure agents and/or handlers via chat commands."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:408 #: ../../../docs/configuring-playbook-bot-baibot.md:429
msgid "Send `!bai help` to the bot in the room to see the available commands." msgid "Send `!bai help` to the bot in the room to see the available commands."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:410 #: ../../../docs/configuring-playbook-bot-baibot.md:431
msgid "You can also refer to the upstream [baibot](https://github.com/etkecc/baibot) project's documentation." msgid "You can also refer to the upstream [baibot](https://github.com/etkecc/baibot) project's documentation."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:412 #: ../../../docs/configuring-playbook-bot-baibot.md:433
msgid "Troubleshooting" msgid "Troubleshooting"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:414 #: ../../../docs/configuring-playbook-bot-baibot.md:435
msgid "As with all other services, you can find the logs in [systemd-journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html) by logging in to the server with SSH and running `journalctl -fu matrix-bot-baibot`." msgid "As with all other services, you can find the logs in [systemd-journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html) by logging in to the server with SSH and running `journalctl -fu matrix-bot-baibot`."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:416 #: ../../../docs/configuring-playbook-bot-baibot.md:437
msgid "Increase logging verbosity" msgid "Increase logging verbosity"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:418 #: ../../../docs/configuring-playbook-bot-baibot.md:439
msgid "The default logging level for this service is `info`. If you want to increase the verbosity to `debug` (or even `trace`), add the following configuration to your `vars.yml` file and re-run the playbook:" msgid "The default logging level for this service is `info`. If you want to increase the verbosity to `debug` (or even `trace`), add the following configuration to your `vars.yml` file and re-run the playbook:"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bot-baibot.md:432 #: ../../../docs/configuring-playbook-bot-baibot.md:453
msgid "**Alternatively**, you can use a single variable to set the logging level for all of the above (bot + all libraries):" msgid "**Alternatively**, you can use a single variable to set the logging level for all of the above (bot + all libraries):"
msgstr "" msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-03 10:49+0000\n" "POT-Creation-Date: 2026-03-07 10:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-03 10:49+0000\n" "POT-Creation-Date: 2026-03-07 10:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-03 10:49+0000\n" "POT-Creation-Date: 2026-03-07 10:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-03 10:49+0000\n" "POT-Creation-Date: 2026-03-07 10:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-03 10:49+0000\n" "POT-Creation-Date: 2026-03-07 10:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-03 10:49+0000\n" "POT-Creation-Date: 2026-03-07 10:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-03 10:49+0000\n" "POT-Creation-Date: 2026-03-07 10:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-03 10:49+0000\n" "POT-Creation-Date: 2026-03-07 10:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-03 10:49+0000\n" "POT-Creation-Date: 2026-03-07 10:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-03 10:49+0000\n" "POT-Creation-Date: 2026-03-07 10:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-03 10:49+0000\n" "POT-Creation-Date: 2026-03-07 10:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-03 10:49+0000\n" "POT-Creation-Date: 2026-03-07 10:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-03 10:49+0000\n" "POT-Creation-Date: 2026-03-07 10:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-03 10:49+0000\n" "POT-Creation-Date: 2026-03-07 10:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-03 10:49+0000\n" "POT-Creation-Date: 2026-03-07 10:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-03 10:49+0000\n" "POT-Creation-Date: 2026-03-07 10:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-03 10:49+0000\n" "POT-Creation-Date: 2026-03-07 10:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
+1 -1
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-03 10:49+0000\n" "POT-Creation-Date: 2026-03-07 10:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-03 10:49+0000\n" "POT-Creation-Date: 2026-03-07 10:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
+1 -1
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-03 10:49+0000\n" "POT-Creation-Date: 2026-03-07 10:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-03 10:49+0000\n" "POT-Creation-Date: 2026-03-07 10:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-03 10:49+0000\n" "POT-Creation-Date: 2026-03-07 10:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-03-03 10:49+0000\n" "POT-Creation-Date: 2026-03-07 10:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
+3 -3
View File
@@ -4,7 +4,7 @@
version: v1.0.0-6 version: v1.0.0-6
name: auxiliary name: auxiliary
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg.git
version: v1.4.3-2.1.1-1 version: v1.4.3-2.1.1-2
name: backup_borg name: backup_borg
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-cinny.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-cinny.git
version: v4.10.5-0 version: v4.10.5-0
@@ -27,7 +27,7 @@
version: 542a2d68db4e9a8e9bb4b508052760b900c7dce6 version: 542a2d68db4e9a8e9bb4b508052760b900c7dce6
name: docker_sdk_for_python name: docker_sdk_for_python
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-etherpad.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-etherpad.git
version: v2.6.1-1 version: v2.6.1-2
name: etherpad name: etherpad
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-exim-relay.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-exim-relay.git
version: v4.98.1-r0-2-3 version: v4.98.1-r0-2-3
@@ -42,7 +42,7 @@
version: v10741-0 version: v10741-0
name: jitsi name: jitsi
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-livekit-server.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-livekit-server.git
version: v1.9.11-4 version: v1.9.12-0
name: livekit_server name: livekit_server
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-ntfy.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-ntfy.git
version: v2.17.0-1 version: v2.17.0-1
@@ -11,7 +11,7 @@
matrix_alertmanager_receiver_enabled: true matrix_alertmanager_receiver_enabled: true
# renovate: datasource=docker depName=docker.io/metio/matrix-alertmanager-receiver # renovate: datasource=docker depName=docker.io/metio/matrix-alertmanager-receiver
matrix_alertmanager_receiver_version: 2026.2.25 matrix_alertmanager_receiver_version: 2026.3.4
matrix_alertmanager_receiver_scheme: https matrix_alertmanager_receiver_scheme: https
@@ -17,7 +17,7 @@ matrix_bot_baibot_container_repo_version: "{{ 'main' if matrix_bot_baibot_versio
matrix_bot_baibot_container_src_files_path: "{{ matrix_base_data_path }}/baibot/container-src" matrix_bot_baibot_container_src_files_path: "{{ matrix_base_data_path }}/baibot/container-src"
# renovate: datasource=docker depName=ghcr.io/etkecc/baibot # renovate: datasource=docker depName=ghcr.io/etkecc/baibot
matrix_bot_baibot_version: v1.14.3 matrix_bot_baibot_version: v1.15.0
matrix_bot_baibot_container_image: "{{ matrix_bot_baibot_container_image_registry_prefix }}etkecc/baibot:{{ matrix_bot_baibot_version }}" matrix_bot_baibot_container_image: "{{ matrix_bot_baibot_container_image_registry_prefix }}etkecc/baibot:{{ matrix_bot_baibot_version }}"
matrix_bot_baibot_container_image_registry_prefix: "{{ 'localhost/' if matrix_bot_baibot_container_image_self_build else matrix_bot_baibot_container_image_registry_prefix_upstream }}" matrix_bot_baibot_container_image_registry_prefix: "{{ 'localhost/' if matrix_bot_baibot_container_image_self_build else matrix_bot_baibot_container_image_registry_prefix_upstream }}"
matrix_bot_baibot_container_image_registry_prefix_upstream: "{{ matrix_bot_baibot_container_image_registry_prefix_upstream_default }}" matrix_bot_baibot_container_image_registry_prefix_upstream: "{{ matrix_bot_baibot_container_image_registry_prefix_upstream_default }}"
@@ -59,8 +59,28 @@ matrix_bot_baibot_config_homeserver_url: ""
# so it can start fresh. # so it can start fresh.
matrix_bot_baibot_config_user_mxid_localpart: baibot matrix_bot_baibot_config_user_mxid_localpart: baibot
# Authentication settings (`user.*` configuration keys).
#
# baibot supports 2 mutually-exclusive authentication modes.
# Set EITHER:
# - password authentication: `matrix_bot_baibot_config_user_password`
# OR:
# - access-token authentication: `matrix_bot_baibot_config_user_access_token` + `matrix_bot_baibot_config_user_device_id`
#
# Password authentication is recommended for most playbook-managed deployments,
# because it integrates with the `matrix-user-creator` role and can auto-create
# the bot account (via the `ensure-matrix-users-created` playbook tag).
# This remains true even on many MAS-enabled deployments where the bot account
# is local and playbook-managed.
# Controls the `user.password` configuration setting. # Controls the `user.password` configuration setting.
matrix_bot_baibot_config_user_password: '' matrix_bot_baibot_config_user_password: null
# Controls the `user.access_token` configuration setting.
matrix_bot_baibot_config_user_access_token: null
# Controls the `user.device_id` configuration setting.
matrix_bot_baibot_config_user_device_id: null
# Controls the `user.name` configuration setting. # Controls the `user.name` configuration setting.
# #
@@ -12,7 +12,6 @@
when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0" when: "item.when | bool and lookup('vars', item.name, default='') | string | length == 0"
with_items: with_items:
- {'name': 'matrix_bot_baibot_config_user_mxid_localpart', when: true} - {'name': 'matrix_bot_baibot_config_user_mxid_localpart', when: true}
- {'name': 'matrix_bot_baibot_config_user_password', when: true}
- {'name': 'matrix_bot_baibot_container_network', when: true} - {'name': 'matrix_bot_baibot_container_network', when: true}
- {'name': 'matrix_bot_baibot_config_homeserver_url', when: true} - {'name': 'matrix_bot_baibot_config_homeserver_url', when: true}
@@ -26,6 +25,58 @@
- {'name': 'matrix_bot_baibot_config_agents_static_definitions_openai_config_api_key', when: "{{ matrix_bot_baibot_config_agents_static_definitions_openai_enabled }}"} - {'name': 'matrix_bot_baibot_config_agents_static_definitions_openai_config_api_key', when: "{{ matrix_bot_baibot_config_agents_static_definitions_openai_enabled }}"}
- name: Fail if baibot authentication mode is not configured
ansible.builtin.fail:
msg: >-
You need to configure one baibot authentication mode:
either `matrix_bot_baibot_config_user_password`
or (`matrix_bot_baibot_config_user_access_token` + `matrix_bot_baibot_config_user_device_id`).
when: >-
(
matrix_bot_baibot_config_user_password | default('', true) | string | length == 0
)
and
(
matrix_bot_baibot_config_user_access_token | default('', true) | string | length == 0
and matrix_bot_baibot_config_user_device_id | default('', true) | string | length == 0
)
- name: Fail if baibot authentication mode is configured ambiguously
ansible.builtin.fail:
msg: >-
You need to configure exactly one baibot authentication mode.
Set either `matrix_bot_baibot_config_user_password`,
or (`matrix_bot_baibot_config_user_access_token` + `matrix_bot_baibot_config_user_device_id`) but not both.
when: >-
(
matrix_bot_baibot_config_user_password | default('', true) | string | length > 0
)
and
(
matrix_bot_baibot_config_user_access_token | default('', true) | string | length > 0
or matrix_bot_baibot_config_user_device_id | default('', true) | string | length > 0
)
- name: Fail if baibot access token authentication is incomplete
ansible.builtin.fail:
msg: >-
Access-token authentication requires both
`matrix_bot_baibot_config_user_access_token` and `matrix_bot_baibot_config_user_device_id`.
when: >-
(
matrix_bot_baibot_config_user_password | default('', true) | string | length == 0
)
and
(
matrix_bot_baibot_config_user_access_token | default('', true) | string | length > 0
or matrix_bot_baibot_config_user_device_id | default('', true) | string | length > 0
)
and
(
matrix_bot_baibot_config_user_access_token | default('', true) | string | length == 0
or matrix_bot_baibot_config_user_device_id | default('', true) | string | length == 0
)
- name: Fail if admin patterns list is empty - name: Fail if admin patterns list is empty
ansible.builtin.fail: ansible.builtin.fail:
msg: >- msg: >-
@@ -15,7 +15,11 @@ homeserver:
user: user:
mxid_localpart: {{ matrix_bot_baibot_config_user_mxid_localpart | to_json }} mxid_localpart: {{ matrix_bot_baibot_config_user_mxid_localpart | to_json }}
# Authentication: set EITHER password OR access_token + device_id.
password: {{ matrix_bot_baibot_config_user_password | to_json }} password: {{ matrix_bot_baibot_config_user_password | to_json }}
access_token: {{ matrix_bot_baibot_config_user_access_token | to_json }}
device_id: {{ matrix_bot_baibot_config_user_device_id | to_json }}
# The name the bot uses as a display name and when it refers to itself. # The name the bot uses as a display name and when it refers to itself.
# Leave empty to use the default (baibot). # Leave empty to use the default (baibot).
@@ -0,0 +1,102 @@
# SPDX-FileCopyrightText: 2026 MDAD project contributors
#
# SPDX-License-Identifier: AGPL-3.0-or-later
---
# Project source code URL: https://github.com/commetchat/commet
matrix_client_commet_enabled: true
# The git branch, tag, or SHA to build from
matrix_client_commet_version: "main"
# The hostname at which Commet is served (e.g. commet.example.com)
matrix_client_commet_hostname: ""
# The path at which Commet is exposed.
# This value must either be `/` or not end with a slash (e.g. `/commet`).
matrix_client_commet_path_prefix: /
matrix_client_commet_base_path: "{{ matrix_base_data_path }}/client-commet"
matrix_client_commet_container_src_path: "{{ matrix_client_commet_base_path }}/container-src"
matrix_client_commet_config_path: "{{ matrix_client_commet_base_path }}/config"
# Set to false to pull a pre-built image from a registry instead of building on the server.
matrix_client_commet_container_image_self_build: true
# Self-build settings (used when matrix_client_commet_container_image_self_build: true)
matrix_client_commet_container_image_self_build_repo: "https://github.com/commetchat/commet.git"
# Populated automatically after git clone in setup_install.yml
matrix_client_commet_container_image_self_build_git_hash: ""
matrix_client_commet_container_image_self_build_version_tag: "{{ matrix_client_commet_version }}"
matrix_client_commet_container_image: "localhost/matrix-client-commet:{{ matrix_client_commet_version }}"
# The in-container port nginx listens on
matrix_client_commet_container_port: 8080
# Optionally expose the container port on the host.
# Takes an "<ip>:<port>" or "<port>" value (e.g. "127.0.0.1:8765"), or empty string to not expose.
matrix_client_commet_container_http_host_bind_port: ""
# The base container network
matrix_client_commet_container_network: ""
# Additional container networks the container is connected to.
# The role does not create these networks, so make sure they already exist.
matrix_client_commet_container_additional_networks: []
# Runtime configuration — mounted into the container, not baked into the image
matrix_client_commet_default_homeserver: "matrix.org"
# ---------------------------------------------------------------------------
# Traefik labels
# ---------------------------------------------------------------------------
matrix_client_commet_container_labels_traefik_enabled: true
matrix_client_commet_container_labels_traefik_docker_network: "{{ matrix_client_commet_container_network }}"
matrix_client_commet_container_labels_traefik_hostname: "{{ matrix_client_commet_hostname }}"
# The path prefix must either be `/` or not end with a slash (e.g. `/commet`).
matrix_client_commet_container_labels_traefik_path_prefix: "{{ matrix_client_commet_path_prefix }}"
matrix_client_commet_container_labels_traefik_rule: "Host(`{{ matrix_client_commet_container_labels_traefik_hostname }}`){% if matrix_client_commet_container_labels_traefik_path_prefix != '/' %} && PathPrefix(`{{ matrix_client_commet_container_labels_traefik_path_prefix }}`){% endif %}"
matrix_client_commet_container_labels_traefik_priority: 0
matrix_client_commet_container_labels_traefik_entrypoints: web-secure
matrix_client_commet_container_labels_traefik_tls: "{{ matrix_client_commet_container_labels_traefik_entrypoints != 'web' }}"
matrix_client_commet_container_labels_traefik_tls_certResolver: default # noqa var-naming
# Controls whether a compression middleware will be injected into the middlewares list.
matrix_client_commet_container_labels_traefik_compression_middleware_enabled: false
matrix_client_commet_container_labels_traefik_compression_middleware_name: ""
# Additional response headers (auto-built from security header variables below)
matrix_client_commet_container_labels_traefik_additional_response_headers: "{{ matrix_client_commet_container_labels_traefik_additional_response_headers_auto | combine(matrix_client_commet_container_labels_traefik_additional_response_headers_custom) }}"
matrix_client_commet_container_labels_traefik_additional_response_headers_auto: |
{{
{}
| combine({'X-XSS-Protection': matrix_client_commet_http_header_xss_protection} if matrix_client_commet_http_header_xss_protection else {})
| combine({'X-Content-Type-Options': matrix_client_commet_http_header_content_type_options} if matrix_client_commet_http_header_content_type_options else {})
| combine({'Content-Security-Policy': matrix_client_commet_http_header_content_security_policy} if matrix_client_commet_http_header_content_security_policy else {})
| combine({'Strict-Transport-Security': matrix_client_commet_http_header_strict_transport_security} if matrix_client_commet_http_header_strict_transport_security and matrix_client_commet_container_labels_traefik_tls else {})
}}
matrix_client_commet_container_labels_traefik_additional_response_headers_custom: {}
# Additional container labels (multiline string)
matrix_client_commet_container_labels_additional_labels: ""
# Extra arguments to pass to docker create
matrix_client_commet_container_extra_arguments: []
# ---------------------------------------------------------------------------
# HTTP security headers
# ---------------------------------------------------------------------------
matrix_client_commet_http_header_xss_protection: "1; mode=block"
matrix_client_commet_http_header_content_type_options: nosniff
matrix_client_commet_http_header_content_security_policy: "frame-ancestors 'self'"
matrix_client_commet_http_header_strict_transport_security: "max-age=31536000; includeSubDomains"
# ---------------------------------------------------------------------------
# Systemd
# ---------------------------------------------------------------------------
matrix_client_commet_systemd_required_services_list: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
# matrix_client_commet_restart_necessary is automatically set during installation
# to signal whether the service should be restarted after setup.
matrix_client_commet_restart_necessary: false
@@ -0,0 +1,30 @@
# SPDX-FileCopyrightText: 2026 MDAD project contributors
#
# SPDX-License-Identifier: AGPL-3.0-or-later
---
- tags:
- setup-all
- setup-client-commet
- install-all
- install-client-commet
block:
- when: matrix_client_commet_enabled | bool
ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_install.yml"
- tags:
- setup-all
- setup-client-commet
block:
- when: not matrix_client_commet_enabled | bool
ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
- tags:
- self-check
block:
- when: matrix_client_commet_enabled | bool
ansible.builtin.debug:
msg: >-
Commet is running at
https://{{ matrix_client_commet_hostname }}{{ matrix_client_commet_path_prefix }}
@@ -0,0 +1,116 @@
# SPDX-FileCopyrightText: 2025 Nikita Chernyi
# SPDX-FileCopyrightText: 2026 MDAD project contributors
#
# SPDX-License-Identifier: AGPL-3.0-or-later
---
- name: Ensure Commet paths exist
ansible.builtin.file:
path: "{{ item }}"
state: directory
mode: "0750"
owner: "{{ matrix_user_name }}"
group: "{{ matrix_group_name }}"
with_items:
- "{{ matrix_client_commet_base_path }}"
- "{{ matrix_client_commet_config_path }}"
- name: Ensure Commet container image is pulled
community.docker.docker_image:
name: "{{ matrix_client_commet_container_image }}"
source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}"
force_source: "{{ matrix_client_commet_container_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}"
force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_client_commet_container_image_force_pull }}"
when: "not matrix_client_commet_container_image_self_build | bool"
register: matrix_client_commet_image_pull_result
retries: "{{ devture_playbook_help_container_retries_count }}"
delay: "{{ devture_playbook_help_container_retries_delay }}"
until: matrix_client_commet_image_pull_result is not failed
- when: "matrix_client_commet_container_image_self_build | bool"
block:
- name: Check Commet git repository metadata exists
ansible.builtin.stat:
path: "{{ matrix_client_commet_container_src_path }}/.git/config"
register: matrix_client_commet_git_config_file_stat
- name: Remove Commet source directory if git remote is misconfigured
ansible.builtin.file:
path: "{{ matrix_client_commet_container_src_path }}"
state: absent
when: not matrix_client_commet_git_config_file_stat.stat.exists
become: true
- name: Ensure Commet repository is present on self-build
ansible.builtin.git:
repo: "{{ matrix_client_commet_container_image_self_build_repo }}"
dest: "{{ matrix_client_commet_container_src_path }}"
version: "{{ matrix_client_commet_version }}"
force: "yes"
become: true
become_user: "{{ matrix_user_name }}"
register: matrix_client_commet_git_pull_results
- name: Set git hash fact
ansible.builtin.set_fact:
matrix_client_commet_container_image_self_build_git_hash: "{{ matrix_client_commet_git_pull_results.after }}"
- name: Ensure Commet container image is built
ansible.builtin.command:
cmd: |-
{{ devture_systemd_docker_base_host_command_docker }} buildx build
--tag={{ matrix_client_commet_container_image }}
--build-arg GIT_HASH={{ matrix_client_commet_container_image_self_build_git_hash }}
--build-arg VERSION_TAG={{ matrix_client_commet_container_image_self_build_version_tag }}
--build-arg BUILD_DATE={{ ansible_date_time.epoch }}
--file={{ matrix_client_commet_container_src_path }}/Dockerfile
{{ matrix_client_commet_container_src_path }}
changed_when: true
register: matrix_client_commet_image_build_result
- name: Ensure Commet global_config.json is installed
ansible.builtin.template:
src: "{{ role_path }}/templates/global_config.json.j2"
dest: "{{ matrix_client_commet_config_path }}/global_config.json"
mode: "0644"
owner: "{{ matrix_user_name }}"
group: "{{ matrix_group_name }}"
register: matrix_client_commet_config_result
- name: Ensure Commet support files are installed
ansible.builtin.template:
src: "{{ item.src }}"
dest: "{{ matrix_client_commet_base_path }}/{{ item.name }}"
mode: "0644"
owner: "{{ matrix_user_name }}"
group: "{{ matrix_group_name }}"
with_items:
- {src: "{{ role_path }}/templates/labels.j2", name: "labels"}
- {src: "{{ role_path }}/templates/env.j2", name: "env"}
register: matrix_client_commet_support_files_result
- name: Ensure Commet container network is created
community.general.docker_network:
enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}"
name: "{{ matrix_client_commet_container_network }}"
driver: bridge
driver_options: "{{ devture_systemd_docker_base_container_networks_driver_options }}"
- name: Ensure matrix-client-commet.service is installed
ansible.builtin.template:
src: "{{ role_path }}/templates/systemd/matrix-client-commet.service.j2"
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-client-commet.service"
mode: "0644"
register: matrix_client_commet_systemd_service_result
- name: Determine whether Commet needs a restart
ansible.builtin.set_fact:
matrix_client_commet_restart_necessary: >-
{{
matrix_client_commet_config_result.changed | default(false)
or matrix_client_commet_support_files_result.changed | default(false)
or matrix_client_commet_systemd_service_result.changed | default(false)
or matrix_client_commet_image_build_result.changed | default(false)
or matrix_client_commet_image_pull_result.changed | default(false)
}}
@@ -0,0 +1,29 @@
# SPDX-FileCopyrightText: 2026 MDAD project contributors
#
# SPDX-License-Identifier: AGPL-3.0-or-later
---
- name: Check existence of matrix-client-commet.service
ansible.builtin.stat:
path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-client-commet.service"
register: matrix_client_commet_service_stat
- when: matrix_client_commet_service_stat.stat.exists | bool
block:
- name: Ensure matrix-client-commet is stopped
ansible.builtin.service:
name: matrix-client-commet
state: stopped
enabled: false
daemon_reload: true
- name: Ensure matrix-client-commet.service doesn't exist
ansible.builtin.file:
path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-client-commet.service"
state: absent
- name: Ensure Commet path doesn't exist
ansible.builtin.file:
path: "{{ matrix_client_commet_base_path }}"
state: absent
@@ -0,0 +1,12 @@
{#
SPDX-FileCopyrightText: 2026 MDAD project contributors
SPDX-License-Identifier: AGPL-3.0-or-later
#}
{#
Environment variables for the matrix-client-commet container.
Add custom variables by appending to matrix_client_commet_environment_variables_extension.
#}
{{ matrix_client_commet_environment_variables_extension | default('') }}
@@ -0,0 +1,3 @@
{
"default_homeserver": "{{ matrix_client_commet_default_homeserver }}"
}
@@ -0,0 +1,3 @@
SPDX-FileCopyrightText: 2026 MDAD project contributors
SPDX-License-Identifier: AGPL-3.0-or-later
@@ -0,0 +1,60 @@
{#
SPDX-FileCopyrightText: 2026 MDAD project contributors
SPDX-License-Identifier: AGPL-3.0-or-later
#}
{#
Traefik labels for matrix-client-commet.
#}
{% if matrix_client_commet_container_labels_traefik_enabled %}
traefik.enable=true
{% if matrix_client_commet_container_labels_traefik_docker_network %}
traefik.docker.network={{ matrix_client_commet_container_labels_traefik_docker_network }}
{% endif %}
traefik.http.services.matrix-client-commet.loadbalancer.server.port={{ matrix_client_commet_container_port }}
{% set middlewares = [] %}
{% if matrix_client_commet_container_labels_traefik_compression_middleware_enabled %}
{% set middlewares = middlewares + [matrix_client_commet_container_labels_traefik_compression_middleware_name] %}
{% endif %}
{% if matrix_client_commet_container_labels_traefik_path_prefix != '/' %}
traefik.http.middlewares.matrix-client-commet-slashless-redirect.redirectregex.regex=({{ matrix_client_commet_container_labels_traefik_path_prefix | quote }})$
traefik.http.middlewares.matrix-client-commet-slashless-redirect.redirectregex.replacement=${1}/
{% set middlewares = middlewares + ['matrix-client-commet-slashless-redirect'] %}
{% endif %}
{% if matrix_client_commet_container_labels_traefik_path_prefix != '/' %}
traefik.http.middlewares.matrix-client-commet-strip-prefix.stripprefix.prefixes={{ matrix_client_commet_container_labels_traefik_path_prefix }}
{% set middlewares = middlewares + ['matrix-client-commet-strip-prefix'] %}
{% endif %}
{% if matrix_client_commet_container_labels_traefik_additional_response_headers.keys() | length > 0 %}
{% for name, value in matrix_client_commet_container_labels_traefik_additional_response_headers.items() %}
traefik.http.middlewares.matrix-client-commet-add-headers.headers.customresponseheaders.{{ name }}={{ value }}
{% endfor %}
{% set middlewares = middlewares + ['matrix-client-commet-add-headers'] %}
{% endif %}
traefik.http.routers.matrix-client-commet.rule={{ matrix_client_commet_container_labels_traefik_rule }}
{% if matrix_client_commet_container_labels_traefik_priority | int > 0 %}
traefik.http.routers.matrix-client-commet.priority={{ matrix_client_commet_container_labels_traefik_priority }}
{% endif %}
traefik.http.routers.matrix-client-commet.service=matrix-client-commet
{% if middlewares | length > 0 %}
traefik.http.routers.matrix-client-commet.middlewares={{ middlewares | join(',') }}
{% endif %}
traefik.http.routers.matrix-client-commet.entrypoints={{ matrix_client_commet_container_labels_traefik_entrypoints }}
traefik.http.routers.matrix-client-commet.tls={{ matrix_client_commet_container_labels_traefik_tls | to_json }}
{% if matrix_client_commet_container_labels_traefik_tls %}
traefik.http.routers.matrix-client-commet.tls.certResolver={{ matrix_client_commet_container_labels_traefik_tls_certResolver }}
{% endif %}
{% endif %}
{{ matrix_client_commet_container_labels_additional_labels }}
@@ -0,0 +1,58 @@
{#
SPDX-FileCopyrightText: 2026 MDAD project contributors
SPDX-License-Identifier: AGPL-3.0-or-later
#}
#jinja2: lstrip_blocks: True
[Unit]
Description=Matrix Commet web client
{% for service in matrix_client_commet_systemd_required_services_list %}
Requires={{ service }}
After={{ service }}
{% endfor %}
DefaultDependencies=no
[Service]
Type=simple
Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}"
ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-client-commet 2>/dev/null || true'
ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-client-commet 2>/dev/null || true'
ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \
--rm \
--name=matrix-client-commet \
--log-driver=none \
--user={{ matrix_user_uid }}:{{ matrix_user_gid }} \
--cap-drop=ALL \
--read-only \
--network={{ matrix_client_commet_container_network }} \
{% if matrix_client_commet_container_http_host_bind_port %}
-p {{ matrix_client_commet_container_http_host_bind_port }}:{{ matrix_client_commet_container_port }} \
{% endif %}
--label-file={{ matrix_client_commet_base_path }}/labels \
--env-file={{ matrix_client_commet_base_path }}/env \
--tmpfs=/tmp:rw,noexec,nosuid,size=10m \
--tmpfs=/var/cache/nginx:rw,mode=777 \
--tmpfs=/var/run:rw,mode=777 \
--mount type=bind,src={{ matrix_client_commet_config_path }}/global_config.json,dst=/usr/share/nginx/html/assets/assets/config/global_config.json,ro \
{% for arg in matrix_client_commet_container_extra_arguments %}
{{ arg }} \
{% endfor %}
{{ matrix_client_commet_container_image }}
{% for network in matrix_client_commet_container_additional_networks %}
ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network connect {{ network }} matrix-client-commet
{% endfor %}
ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-client-commet
ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} stop -t {{ devture_systemd_docker_base_container_stop_grace_time_seconds }} matrix-client-commet 2>/dev/null || true'
ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-client-commet 2>/dev/null || true'
Restart=always
RestartSec=30
SyslogIdentifier=matrix-client-commet
[Install]
WantedBy=multi-user.target
@@ -3,10 +3,12 @@
"m.homeserver": { "m.homeserver": {
"base_url": {{ matrix_client_element_default_hs_url | string | to_json }}, "base_url": {{ matrix_client_element_default_hs_url | string | to_json }},
"server_name": {{ matrix_client_element_default_server_name | string | to_json }} "server_name": {{ matrix_client_element_default_server_name | string | to_json }}
}, }
{% if matrix_client_element_default_is_url %},
"m.identity_server": { "m.identity_server": {
"base_url": {{ matrix_client_element_default_is_url | string | to_json }} "base_url": {{ matrix_client_element_default_is_url | string | to_json }}
} }
{% endif %}
}, },
"setting_defaults": { "setting_defaults": {
"custom_themes": {{ matrix_client_element_setting_defaults_custom_themes | to_json }} "custom_themes": {{ matrix_client_element_setting_defaults_custom_themes | to_json }}
@@ -13,7 +13,7 @@ matrix_continuwuity_enabled: true
matrix_continuwuity_hostname: '' matrix_continuwuity_hostname: ''
# renovate: datasource=docker depName=forgejo.ellis.link/continuwuation/continuwuity # renovate: datasource=docker depName=forgejo.ellis.link/continuwuation/continuwuity
matrix_continuwuity_version: v0.5.5 matrix_continuwuity_version: v0.5.6
matrix_continuwuity_container_image: "{{ matrix_continuwuity_container_image_registry_prefix }}/continuwuation/continuwuity:{{ matrix_continuwuity_container_image_tag }}" matrix_continuwuity_container_image: "{{ matrix_continuwuity_container_image_registry_prefix }}/continuwuation/continuwuity:{{ matrix_continuwuity_container_image_tag }}"
matrix_continuwuity_container_image_tag: "{{ matrix_continuwuity_version }}" matrix_continuwuity_container_image_tag: "{{ matrix_continuwuity_version }}"
@@ -1410,6 +1410,7 @@ matrix_synapse_ext_password_provider_ldap_filter: ""
matrix_synapse_ext_password_provider_ldap_active_directory: false matrix_synapse_ext_password_provider_ldap_active_directory: false
matrix_synapse_ext_password_provider_ldap_default_domain: "" matrix_synapse_ext_password_provider_ldap_default_domain: ""
matrix_synapse_ext_password_provider_ldap_tls_options_validate: true matrix_synapse_ext_password_provider_ldap_tls_options_validate: true
matrix_synapse_ext_password_provider_ldap_tls_options_ca_certs_file: ""
# Enable this to activate the Synapse Antispam spam-checker module. # Enable this to activate the Synapse Antispam spam-checker module.
# See: https://github.com/t2bot/synapse-simple-antispam # See: https://github.com/t2bot/synapse-simple-antispam
@@ -2540,6 +2540,9 @@ password_providers:
filter: {{ matrix_synapse_ext_password_provider_ldap_filter | string|to_json }} filter: {{ matrix_synapse_ext_password_provider_ldap_filter | string|to_json }}
tls_options: tls_options:
validate: {{ matrix_synapse_ext_password_provider_ldap_tls_options_validate | to_json }} validate: {{ matrix_synapse_ext_password_provider_ldap_tls_options_validate | to_json }}
{% if matrix_synapse_ext_password_provider_ldap_tls_options_ca_certs_file %}
ca_certs_file: {{ matrix_synapse_ext_password_provider_ldap_tls_options_ca_certs_file | string | to_json }}
{% endif %}
{% endif %} {% endif %}
{% endif %} {% endif %}
+1
View File
@@ -106,6 +106,7 @@
- custom/matrix-prometheus-services-connect - custom/matrix-prometheus-services-connect
- custom/matrix-registration - custom/matrix-registration
- custom/matrix-client-element - custom/matrix-client-element
- custom/matrix-client-commet
- galaxy/hydrogen - galaxy/hydrogen
- galaxy/cinny - galaxy/cinny
- galaxy/sable - galaxy/sable