mirror of
https://github.com/spantaleev/matrix-docker-ansible-deploy.git
synced 2025-05-02 17:16:30 +02:00
Merge branch 'master' into element-call-integration
This commit is contained in:
commit
2c1c49444a
@ -45,7 +45,7 @@ Add the following configuration to your `inventory/host_vars/matrix.example.com/
|
|||||||
```yaml
|
```yaml
|
||||||
matrix_appservice_draupnir_for_all_enabled: true
|
matrix_appservice_draupnir_for_all_enabled: true
|
||||||
|
|
||||||
matrix_appservice_draupnir_for_all_master_control_room_alias: "MANAGEMENT_ROOM_ALIAS_HERE"
|
matrix_appservice_draupnir_for_all_config_adminRoom: "MANAGEMENT_ROOM_ALIAS_HERE"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Extending the configuration
|
### Extending the configuration
|
||||||
|
@ -54,11 +54,11 @@ To enable the native E2EE support, add the following configuration to your `vars
|
|||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# Enables the native E2EE support
|
# Enables the native E2EE support
|
||||||
matrix_bot_draupnir_enable_experimental_rust_crypto: true
|
matrix_bot_draupnir_config_experimentalRustCrypto: true
|
||||||
|
|
||||||
# Access token which the bot will use for logging in.
|
# Access token which the bot will use for logging in.
|
||||||
# Comment out `matrix_bot_draupnir_login_native` when using this option.
|
# Comment out `matrix_bot_draupnir_login_native` when using this option.
|
||||||
matrix_bot_draupnir_access_token: "CLEAN_ACCESS_TOKEN_HERE"
|
matrix_bot_draupnir_config_accessToken: "CLEAN_ACCESS_TOKEN_HERE"
|
||||||
```
|
```
|
||||||
|
|
||||||
## Adjusting the playbook configuration
|
## Adjusting the playbook configuration
|
||||||
@ -73,13 +73,13 @@ matrix_bot_draupnir_enabled: true
|
|||||||
# matrix_bot_draupnir_login: bot.draupnir
|
# matrix_bot_draupnir_login: bot.draupnir
|
||||||
|
|
||||||
# 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 creating the user on your own and using `matrix_bot_draupnir_access_token` to login you can comment out this line.
|
# If creating the user on your own and using `matrix_bot_draupnir_config_accessToken` to login you can comment out this line.
|
||||||
matrix_bot_draupnir_password: PASSWORD_FOR_THE_BOT
|
matrix_bot_draupnir_password: PASSWORD_FOR_THE_BOT
|
||||||
|
|
||||||
# Comment out if using `matrix_bot_draupnir_enable_experimental_rust_crypto: true` or `matrix_bot_draupnir_access_token` to login.
|
# Comment out if using `matrix_bot_draupnir_config_experimentalRustCrypto: true` or `matrix_bot_draupnir_config_accessToken` to login.
|
||||||
matrix_bot_draupnir_login_native: true
|
matrix_bot_draupnir_login_native: true
|
||||||
|
|
||||||
matrix_bot_draupnir_management_room: "MANAGEMENT_ROOM_ID_HERE"
|
matrix_bot_draupnir_config_managementRoom: "MANAGEMENT_ROOM_ID_HERE"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Create and invite the bot to the management room
|
### Create and invite the bot to the management room
|
||||||
@ -142,7 +142,7 @@ Draupnir can receive reports in the management room.
|
|||||||
The bot can intercept the report API endpoint of the client-server API, which requires integration with the reverse proxy in front of the homeserver. If you are using Traefik, this playbook can set this up for you:
|
The bot can intercept the report API endpoint of the client-server API, which requires integration with the reverse proxy in front of the homeserver. If you are using Traefik, this playbook can set this up for you:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
matrix_bot_draupnir_abuse_reporting_enabled: true
|
matrix_bot_draupnir_config_web_abuseReporting: true
|
||||||
```
|
```
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
@ -115,7 +115,7 @@ The shortcut commands with the [`just` program](just.md) are also available: `ju
|
|||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
To receive push notifications with UnifiedPush from the ntfy server, you need to **install [the ntfy Android app](https://docs.ntfy.sh/subscribe/phone/)** which works as the Distrubutor and then **configure a UnifiedPush-compatible Matrix client**. After setting up the ntfy Android app, the Matrix client listens to it, and push notitications are "distributed" from it.
|
To receive push notifications with UnifiedPush from the ntfy server, you need to **install [the ntfy Android app](https://docs.ntfy.sh/subscribe/phone/)** which works as the Distrubutor, **log in to the account on the ntfy app** if you have enabled the access control, and then **configure a UnifiedPush-compatible Matrix client**. After setting up the ntfy Android app, the Matrix client listens to it, and push notitications are "distributed" from it.
|
||||||
|
|
||||||
For details about installing and configuring the ntfy Android app, take a look at [this section](https://github.com/mother-of-all-self-hosting/ansible-role-ntfy/blob/main/docs/configuring-ntfy.md#install-the-ntfy-androidios-app) on the role's documentation.
|
For details about installing and configuring the ntfy Android app, take a look at [this section](https://github.com/mother-of-all-self-hosting/ansible-role-ntfy/blob/main/docs/configuring-ntfy.md#install-the-ntfy-androidios-app) on the role's documentation.
|
||||||
|
|
||||||
|
@ -11,57 +11,60 @@ SPDX-License-Identifier: AGPL-3.0-or-later
|
|||||||
|
|
||||||
# Adjusting SSL certificate retrieval (optional, advanced)
|
# Adjusting SSL certificate retrieval (optional, advanced)
|
||||||
|
|
||||||
By default, this playbook retrieves and auto-renews free SSL certificates from [Let's Encrypt](https://letsencrypt.org/) for the domains it needs (e.g. `matrix.example.com` and others)
|
By default, the playbook retrieves and automatically renews free SSL certificates from [Let's Encrypt](https://letsencrypt.org/) via [ACME](https://en.wikipedia.org/wiki/Automatic_Certificate_Management_Environment) for the domains of the services it installs (e.g. `matrix.example.com` and others). Refer this guide if you want to modify settings about how it manages SSL certificates or have the Traefik server use yours.
|
||||||
|
|
||||||
This guide is about using the integrated Traefik server and doesn't apply if you're using [your own webserver](configuring-playbook-own-webserver.md).
|
**Notes**:
|
||||||
|
- This guide is intended to be referred for configuring the integrated Traefik server with regard to SSL certificates retrieval. If you're using [your own webserver](configuring-playbook-own-webserver.md), consult its documentation about how to configure it.
|
||||||
|
- Let's Encrypt ends the expiration notification email service on June 4, 2025 (see: [the official announcement](https://letsencrypt.org/2025/01/22/ending-expiration-emails/)), and it recommends using a third party service for those who want to receive expiriation notifications. If you are looking for a self-hosting service, you may be interested in a monitoring tool such as [Update Kuma](https://github.com/louislam/uptime-kuma/).
|
||||||
|
|
||||||
## Using staging Let's Encrypt certificates instead of real ones
|
The [Mother-of-All-Self-Hosting (MASH)](https://github.com/mother-of-all-self-hosting/mash-playbook) Ansible playbook can be used to install and manage an Uptime Kuma instance. See [this page](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/uptime-kuma.md) for the instruction to install it with the MASH playbook. If you are wondering how to use the MASH playbook for your Matrix server, refer [this page](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/setting-up-services-on-mdad-server.md).
|
||||||
|
|
||||||
For testing purposes, you may wish to use staging certificates provide by Let's Encrypt.
|
## Use staging Let's Encrypt certificates
|
||||||
|
|
||||||
Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
|
For testing purposes, you may wish to use staging certificates provided by Let's Encrypt to avoid hitting [its rate limits](https://letsencrypt.org/docs/rate-limits/).
|
||||||
|
|
||||||
|
To use ones, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
traefik_config_certificatesResolvers_acme_use_staging: true
|
traefik_config_certificatesResolvers_acme_use_staging: true
|
||||||
```
|
```
|
||||||
|
|
||||||
## Disabling SSL termination
|
## Disable SSL termination
|
||||||
|
|
||||||
For testing or other purposes, you may wish to install services without SSL termination and have services exposed to `http://` instead of `https://`.
|
For testing or other purposes, you may wish to install services without SSL termination and have services exposed to `http://` instead of `https://`.
|
||||||
|
|
||||||
Add the following configuration to your `vars.yml` file:
|
To do so, add the following configuration to your `vars.yml` file:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
traefik_config_entrypoint_web_secure_enabled: false
|
traefik_config_entrypoint_web_secure_enabled: false
|
||||||
```
|
```
|
||||||
|
|
||||||
## Using self-signed SSL certificates
|
## Use self-signed SSL certificates
|
||||||
|
|
||||||
If you'd like to use your own SSL certificates, instead of the default (SSL certificates obtained automatically via [ACME](https://en.wikipedia.org/wiki/Automatic_Certificate_Management_Environment) from [Let's Encrypt](https://letsencrypt.org/)):
|
To use self-signed certificates, generate them and follow the documentation below about using your own certificates.
|
||||||
|
|
||||||
- generate your self-signed certificate files
|
## Use your own SSL certificates
|
||||||
- follow the [Using your own SSL certificates](#using-your-own-ssl-certificates) documentation below
|
|
||||||
|
|
||||||
## Using your own SSL certificates
|
To use your own certificates, prepare them and follow the steps below:
|
||||||
|
|
||||||
To use your own SSL certificates with Traefik, you need to:
|
- Disable [ACME](https://en.wikipedia.org/wiki/Automatic_Certificate_Management_Environment) / [Let's Encrypt](https://letsencrypt.org/) support
|
||||||
|
- Put a custom Traefik configuration file on the server, with the help of this Ansible playbook (via the [`aux` role](https://github.com/mother-of-all-self-hosting/ansible-role-aux)) or manually
|
||||||
|
- Register your custom configuration file with Traefik, by adding an extra provider of type [file](https://doc.traefik.io/traefik/providers/file/)
|
||||||
|
- Put the SSL files on the server, with the help of this Ansible playbook (via the [`aux` role](https://github.com/mother-of-all-self-hosting/ansible-role-aux)) or manually
|
||||||
|
|
||||||
- disable [ACME](https://en.wikipedia.org/wiki/Automatic_Certificate_Management_Environment) / [Let's Encrypt](https://letsencrypt.org/) support
|
For those steps, you can add the following configuration to your `vars.yml` file (adapt to your needs). If you will put the custom configuration files manually, make sure to remove the `aux_file_definitions` variable.
|
||||||
- put a custom Traefik configuration file on the server, with the help of this Ansible playbook (via the [`aux` role](https://github.com/mother-of-all-self-hosting/ansible-role-aux)) or manually
|
|
||||||
- register your custom configuration file with Traefik, by adding an extra provider of type [file](https://doc.traefik.io/traefik/providers/file/)
|
|
||||||
- put the SSL files on the server, with the help of this Ansible playbook (via the [`aux` role](https://github.com/mother-of-all-self-hosting/ansible-role-aux)) or manually
|
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
# Disable ACME / Let's Encrypt support.
|
# Disable ACME / Let's Encrypt support.
|
||||||
traefik_config_certificatesResolvers_acme_enabled: false
|
traefik_config_certificatesResolvers_acme_enabled: false
|
||||||
|
|
||||||
# Disabling ACME support (above) automatically disables the creation of the SSL directory.
|
# Disabling ACME support (above) automatically disables the SSL directory to be created.
|
||||||
# Force-enable it here, because we'll add our certificate files there.
|
# Force-enable it to be created with this configuration, because we'll add our certificate files there.
|
||||||
traefik_ssl_dir_enabled: true
|
traefik_ssl_dir_enabled: true
|
||||||
|
|
||||||
# Tell Traefik to load our custom ssl key pair by extending provider configuration.
|
# Tell Traefik to load our custom SSL key pair by extending provider configuration.
|
||||||
# The key pair files are created below, in `aux_file_definitions`.
|
# The key pair files are created below, in `aux_file_definitions`.
|
||||||
# The `/ssl/…` path is an in-container path, not a path on the host (like `/matrix/traefik/ssl`). Do not change it!
|
# Note that the `/ssl/…` path is an **in-container path**, not a path on the host (like `/matrix/traefik/ssl`). Do not change it!
|
||||||
traefik_provider_configuration_extension_yaml:
|
traefik_provider_configuration_extension_yaml:
|
||||||
tls:
|
tls:
|
||||||
certificates:
|
certificates:
|
||||||
@ -74,14 +77,14 @@ traefik_provider_configuration_extension_yaml:
|
|||||||
keyFile: /ssl/privkey.pem
|
keyFile: /ssl/privkey.pem
|
||||||
|
|
||||||
# Use the aux role to create our custom files on the server.
|
# Use the aux role to create our custom files on the server.
|
||||||
# If you'd like to do this manually, you remove this `aux_file_definitions` variable.
|
# If you'd like to do this manually, remove this `aux_file_definitions` variable.
|
||||||
aux_file_definitions:
|
aux_file_definitions:
|
||||||
# Create the privkey.pem file on the server by
|
# Create the privkey.pem file on the server by
|
||||||
# uploading a file from the computer where Ansible is running.
|
# uploading a file from the computer where Ansible is running.
|
||||||
- dest: "{{ traefik_ssl_dir_path }}/privkey.pem"
|
- dest: "{{ traefik_ssl_dir_path }}/privkey.pem"
|
||||||
src: /path/on/your/Ansible/computer/to/privkey.pem
|
src: /path/on/your/Ansible/computer/to/privkey.pem
|
||||||
# Alternatively, comment out `src` above and uncomment the lines below to provide the certificate content inline.
|
# Alternatively, comment out `src` above and uncomment the lines below to provide the certificate content inline.
|
||||||
# Note the indentation level.
|
# Mind the indentation level (indented with two white space characters).
|
||||||
# content: |
|
# content: |
|
||||||
# FILE CONTENT
|
# FILE CONTENT
|
||||||
# HERE
|
# HERE
|
||||||
@ -91,20 +94,22 @@ aux_file_definitions:
|
|||||||
- dest: "{{ traefik_ssl_dir_path }}/cert.pem"
|
- dest: "{{ traefik_ssl_dir_path }}/cert.pem"
|
||||||
src: /path/on/your/Ansible/computer/to/cert.pem
|
src: /path/on/your/Ansible/computer/to/cert.pem
|
||||||
# Alternatively, comment out `src` above and uncomment the lines below to provide the certificate content inline.
|
# Alternatively, comment out `src` above and uncomment the lines below to provide the certificate content inline.
|
||||||
# Note the indentation level.
|
# Mind the indentation level (indented with two white space characters).
|
||||||
# content: |
|
# content: |
|
||||||
# FILE CONTENT
|
# FILE CONTENT
|
||||||
# HERE
|
# HERE
|
||||||
```
|
```
|
||||||
|
|
||||||
## Using a DNS-01 ACME challenge type, instead of HTTP-01
|
## Use a DNS-01 ACME challenge type, instead of HTTP-01
|
||||||
|
|
||||||
You can configure Traefik to use the [DNS-01 challenge type](https://letsencrypt.org/docs/challenge-types/#dns-01-challenge) for Let's Encrypt. This is less commonly used than the default [HTTP-01 challenge type](https://letsencrypt.org/docs/challenge-types/#http-01-challenge), but it can be helpful to:
|
You can configure Traefik to use the [DNS-01 challenge type](https://letsencrypt.org/docs/challenge-types/#dns-01-challenge) for Let's Encrypt. This is less commonly used than the default [HTTP-01 challenge type](https://letsencrypt.org/docs/challenge-types/#http-01-challenge), but can be helpful to:
|
||||||
|
|
||||||
- hide your public IP from Let's Encrypt logs
|
- hide your public IP from Let's Encrypt logs
|
||||||
- allow you to obtain SSL certificates for servers which are not accessible (via HTTP) from the public internet (and for which the HTTP-01 challenge would fail)
|
- allow you to obtain SSL certificates for servers which are not accessible (via HTTP) from the public internet (and for which the HTTP-01 challenge would fail)
|
||||||
|
|
||||||
This is an example for how to edit the `vars.yml` file if you're using Cloudflare:
|
### Example: Cloudflare
|
||||||
|
|
||||||
|
Here is an example for configurations on the `vars.yml` file for Cloudflare. Please adjust it as necessary before applying it.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
traefik_config_certificatesResolvers_acme_dnsChallenge_enabled: true
|
traefik_config_certificatesResolvers_acme_dnsChallenge_enabled: true
|
||||||
|
@ -27,7 +27,7 @@ Here are some playbook tags that you should be familiar with:
|
|||||||
|
|
||||||
- `stop` — stops all systemd services
|
- `stop` — stops all systemd services
|
||||||
|
|
||||||
- `ensure-matrix-users-created` — a special tag which ensures that all special users needed by the playbook (for bots, etc.) are created
|
- `ensure-matrix-users-created` or its alias `ensure-users-created` — a special tag which ensures that all special users needed by the playbook (for bots, etc.) are created
|
||||||
|
|
||||||
**Notes**:
|
**Notes**:
|
||||||
- `setup-*` tags and `install-*` tags **do not start services** automatically, because you may wish to do things before starting services, such as importing a database dump, restoring data from another server, etc.
|
- `setup-*` tags and `install-*` tags **do not start services** automatically, because you may wish to do things before starting services, such as importing a database dump, restoring data from another server, etc.
|
||||||
|
@ -3194,10 +3194,10 @@ matrix_bot_draupnir_container_additional_networks_auto: |-
|
|||||||
) | unique
|
) | unique
|
||||||
}}
|
}}
|
||||||
|
|
||||||
matrix_bot_draupnir_homeserver_url: "{{ 'http://matrix-pantalaimon:8009' if matrix_bot_draupnir_pantalaimon_use else matrix_addons_homeserver_client_api_url }}"
|
matrix_bot_draupnir_config_homeserverUrl: "{{ 'http://matrix-pantalaimon:8009' if matrix_bot_draupnir_pantalaimon_use else matrix_addons_homeserver_client_api_url }}" # noqa var-naming
|
||||||
matrix_bot_draupnir_raw_homeserver_url: "{{ matrix_addons_homeserver_client_api_url }}"
|
matrix_bot_draupnir_config_rawHomeserverUrl: "{{ matrix_addons_homeserver_client_api_url }}" # noqa var-naming
|
||||||
|
|
||||||
matrix_bot_draupnir_container_labels_traefik_enabled: "{{ matrix_bot_draupnir_web_enabled and matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] }}"
|
matrix_bot_draupnir_container_labels_traefik_enabled: "{{ matrix_bot_draupnir_config_web_enabled and matrix_playbook_reverse_proxy_type in ['playbook-managed-traefik', 'other-traefik-container'] }}"
|
||||||
matrix_bot_draupnir_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}"
|
matrix_bot_draupnir_container_labels_traefik_docker_network: "{{ matrix_playbook_reverse_proxyable_services_additional_network }}"
|
||||||
matrix_bot_draupnir_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}"
|
matrix_bot_draupnir_container_labels_traefik_entrypoints: "{{ traefik_entrypoint_primary }}"
|
||||||
matrix_bot_draupnir_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}"
|
matrix_bot_draupnir_container_labels_traefik_tls_certResolver: "{{ traefik_certResolver_primary }}"
|
||||||
|
@ -52,7 +52,7 @@ SPDX-FileCopyrightText: 2023 - 2024 Michael Hollister
|
|||||||
SPDX-FileCopyrightText: 2023 - 2024 Pierre 'McFly' Marty
|
SPDX-FileCopyrightText: 2023 - 2024 Pierre 'McFly' Marty
|
||||||
SPDX-FileCopyrightText: 2023 Antonis Christofides
|
SPDX-FileCopyrightText: 2023 Antonis Christofides
|
||||||
SPDX-FileCopyrightText: 2023 Benjamin Kampmann
|
SPDX-FileCopyrightText: 2023 Benjamin Kampmann
|
||||||
SPDX-FileCopyrightText: 2023 Catalan Lover
|
SPDX-FileCopyrightText: 2023 - 2025 Catalan Lover <catalanlover@protonmail.com>
|
||||||
SPDX-FileCopyrightText: 2023 Cody Wyatt Neiman
|
SPDX-FileCopyrightText: 2023 Cody Wyatt Neiman
|
||||||
SPDX-FileCopyrightText: 2023 Johan Swetzén
|
SPDX-FileCopyrightText: 2023 Johan Swetzén
|
||||||
SPDX-FileCopyrightText: 2023 Kabir Kwatra
|
SPDX-FileCopyrightText: 2023 Kabir Kwatra
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
# SPDX-FileCopyrightText: 2024 - 2025 MDAD project contributors
|
# SPDX-FileCopyrightText: 2024 MDAD project contributors
|
||||||
|
# SPDX-FileCopyrightText: 2024 - 2025 Catalan Lover <catalanlover@protonmail.com>
|
||||||
# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev
|
# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev
|
||||||
# SPDX-FileCopyrightText: 2024 Suguru Hirahara
|
# SPDX-FileCopyrightText: 2024 Suguru Hirahara
|
||||||
#
|
#
|
||||||
@ -51,12 +52,12 @@ matrix_appservice_draupnir_for_all_systemd_wanted_services_list: []
|
|||||||
# Note: Draupnir is fairly verbose - expect a lot of messages from it.
|
# Note: Draupnir is fairly verbose - expect a lot of messages from it.
|
||||||
# This room is diffrent for Appservice Mode compared to normal mode.
|
# This room is diffrent for Appservice Mode compared to normal mode.
|
||||||
# In Appservice mode it provides functions like user management.
|
# In Appservice mode it provides functions like user management.
|
||||||
matrix_appservice_draupnir_for_all_master_control_room_alias: ""
|
matrix_appservice_draupnir_for_all_config_adminRoom: "" # noqa var-naming
|
||||||
|
|
||||||
# Placeholder Remenant of the fact that Cat belived Master Control Room to be separated from Access Control Policy List.
|
# Controls if the room state backing store is activated.
|
||||||
# The alias of the Policy list used to control who can provision a bot for them selfs.
|
# Room state backing store makes restarts of the bot lightning fast as the bot does not suffer from amnesia.
|
||||||
# This should be a room alias - not a matrix.to URL.
|
# This config option has diminished improvements for bots on extremely fast homeservers or very very small bots on fast homeservers.
|
||||||
# matrix_appservice_draupnir_for_all_management_policy_list_alias: ""
|
matrix_appservice_draupnir_for_all_config_roomStateBackingStore_enabled: false # noqa var-naming
|
||||||
|
|
||||||
matrix_appservice_draupnir_for_all_database_username: matrix_appservice_draupnir_for_all
|
matrix_appservice_draupnir_for_all_database_username: matrix_appservice_draupnir_for_all
|
||||||
matrix_appservice_draupnir_for_all_database_password: 'some-passsword'
|
matrix_appservice_draupnir_for_all_database_password: 'some-passsword'
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
# SPDX-FileCopyrightText: 2024 MDAD project contributors
|
# SPDX-FileCopyrightText: 2024 MDAD project contributors
|
||||||
|
# SPDX-FileCopyrightText: 2024 Catalan Lover <catalanlover@protonmail.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
# SPDX-FileCopyrightText: 2024 David Mehren
|
# SPDX-FileCopyrightText: 2024 David Mehren
|
||||||
# SPDX-FileCopyrightText: 2024 MDAD project contributors
|
# SPDX-FileCopyrightText: 2024 MDAD project contributors
|
||||||
|
# SPDX-FileCopyrightText: 2024 Catalan Lover <catalanlover@protonmail.com>
|
||||||
# SPDX-FileCopyrightText: 2024 Slavi Pantaleev
|
# SPDX-FileCopyrightText: 2024 Slavi Pantaleev
|
||||||
# SPDX-FileCopyrightText: 2024 Suguru Hirahara
|
# SPDX-FileCopyrightText: 2024 Suguru Hirahara
|
||||||
#
|
#
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 - 2024 MDAD project contributors
|
# SPDX-FileCopyrightText: 2023 - 2024 MDAD project contributors
|
||||||
|
# SPDX-FileCopyrightText: 2024 Catalan Lover <catalanlover@protonmail.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
# SPDX-FileCopyrightText: 2024 MDAD project contributors
|
# SPDX-FileCopyrightText: 2024 MDAD project contributors
|
||||||
|
# SPDX-FileCopyrightText: 2024 Catalan Lover <catalanlover@protonmail.com>
|
||||||
# SPDX-FileCopyrightText: 2024 Slavi Pantaleev
|
# SPDX-FileCopyrightText: 2024 Slavi Pantaleev
|
||||||
# SPDX-FileCopyrightText: 2025 Suguru Hirahara
|
# SPDX-FileCopyrightText: 2025 Suguru Hirahara
|
||||||
#
|
#
|
||||||
@ -10,7 +11,7 @@
|
|||||||
ansible.builtin.fail:
|
ansible.builtin.fail:
|
||||||
msg: "The `{{ item }}` variable must be defined and have a non-null value."
|
msg: "The `{{ item }}` variable must be defined and have a non-null value."
|
||||||
with_items:
|
with_items:
|
||||||
- "matrix_appservice_draupnir_for_all_master_control_room_alias"
|
- "matrix_appservice_draupnir_for_all_config_adminRoom"
|
||||||
- "matrix_bot_draupnir_container_network"
|
- "matrix_bot_draupnir_container_network"
|
||||||
when: "vars[item] == '' or vars[item] is none"
|
when: "vars[item] == '' or vars[item] is none"
|
||||||
|
|
||||||
@ -22,3 +23,5 @@
|
|||||||
when: "item.old in vars"
|
when: "item.old in vars"
|
||||||
with_items:
|
with_items:
|
||||||
- {'old': 'matrix_appservice_draupnir_for_all_docker_image_name_prefix', 'new': 'matrix_appservice_draupnir_for_all_docker_image_registry_prefix'}
|
- {'old': 'matrix_appservice_draupnir_for_all_docker_image_name_prefix', 'new': 'matrix_appservice_draupnir_for_all_docker_image_registry_prefix'}
|
||||||
|
- {'old': 'matrix_appservice_draupnir_for_all_enable_room_state_backing_store', 'new': 'matrix_appservice_draupnir_for_all_config_roomStateBackingStore_enabled'}
|
||||||
|
- {'old': 'matrix_appservice_draupnir_for_all_master_control_room_alias', 'new': 'matrix_appservice_draupnir_for_all_config_adminRoom'}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
{#
|
{#
|
||||||
SPDX-FileCopyrightText: 2024 MDAD project contributors
|
SPDX-FileCopyrightText: 2024 MDAD project contributors
|
||||||
|
SPDX-FileCopyrightText: 2024 - 2025 Catalan Lover <catalanlover@protonmail.com>
|
||||||
SPDX-FileCopyrightText: 2024 Suguru Hirahara
|
SPDX-FileCopyrightText: 2024 Suguru Hirahara
|
||||||
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
@ -18,8 +19,14 @@ db:
|
|||||||
|
|
||||||
# A room you have created that scopes who can access the appservice.
|
# A room you have created that scopes who can access the appservice.
|
||||||
# See docs/access_control.md
|
# See docs/access_control.md
|
||||||
adminRoom: "{{ matrix_appservice_draupnir_for_all_master_control_room_alias }}"
|
adminRoom: {{ matrix_appservice_draupnir_for_all_config_adminRoom | to_json }}
|
||||||
|
|
||||||
# This is a web api that the widget connects to in order to interact with the appservice.
|
# This is a web api that the widget connects to in order to interact with the appservice.
|
||||||
webAPI:
|
webAPI:
|
||||||
port: 9000
|
port: 9000
|
||||||
|
|
||||||
|
# The directory the bot should store various bits of information in
|
||||||
|
dataPath: "/data"
|
||||||
|
|
||||||
|
roomStateBackingStore:
|
||||||
|
enabled: {{ matrix_appservice_draupnir_for_all_config_roomStateBackingStore_enabled | to_json }}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
{#
|
{#
|
||||||
SPDX-FileCopyrightText: 2024 MDAD project contributors
|
SPDX-FileCopyrightText: 2024 MDAD project contributors
|
||||||
|
SPDX-FileCopyrightText: 2024 - 2025 Catalan Lover <catalanlover@protonmail.com>
|
||||||
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
#}
|
#}
|
||||||
@ -73,3 +74,20 @@ commands:
|
|||||||
- "brigading"
|
- "brigading"
|
||||||
- "harassment"
|
- "harassment"
|
||||||
- "disagreement"
|
- "disagreement"
|
||||||
|
|
||||||
|
# Safe mode provides recovery options for some failure modes when Draupnir
|
||||||
|
# fails to start. For example, if the bot fails to resolve a room alias in
|
||||||
|
# a watched list, or if the server has parted from a protected room and can't
|
||||||
|
# find a way back in. Safe mode will provide different options to recover from
|
||||||
|
# these. Such as unprotecting the room or unwatching the policy list.
|
||||||
|
# By default Draupnir will boot into safe mode only when the failure mode
|
||||||
|
# is recoverable.
|
||||||
|
# It may be desirable to prevent the bot from starting into safe mode if you have
|
||||||
|
# a pager system when Draupnir is down, as Draupnir could prevent your monitoring
|
||||||
|
# system from identifying a failure to start.
|
||||||
|
#safeMode:
|
||||||
|
# # The option for entering safe mode when Draupnir fails to start up.
|
||||||
|
# # - "RecoveryOnly" will only start the bot in safe mode when there are recovery options available. This is the default.
|
||||||
|
# # - "Never" will never start the bot in safe mode when Draupnir fails to start normally.
|
||||||
|
# # - "Always" will always start the bot in safe mode when Draupnir fails to start normally.
|
||||||
|
# bootOption: RecoveryOnly
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
SPDX-FileCopyrightText: 2024 MDAD project contributors
|
SPDX-FileCopyrightText: 2024 MDAD project contributors
|
||||||
|
SPDX-FileCopyrightText: 2024 Catalan Lover <catalanlover@protonmail.com>
|
||||||
SPDX-FileCopyrightText: 2024 Slavi Pantaleev
|
SPDX-FileCopyrightText: 2024 Slavi Pantaleev
|
||||||
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 - 2024 MDAD project contributors
|
# SPDX-FileCopyrightText: 2023 - 2024 MDAD project contributors
|
||||||
|
# SPDX-FileCopyrightText: 2023 - 2025 Catalan Lover <catalanlover@protonmail.com>
|
||||||
# SPDX-FileCopyrightText: 2023 Samuel Meenzen
|
# SPDX-FileCopyrightText: 2023 Samuel Meenzen
|
||||||
# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev
|
# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev
|
||||||
#
|
#
|
||||||
@ -27,9 +28,9 @@ matrix_bot_draupnir_config_path: "{{ matrix_bot_draupnir_base_path }}/config"
|
|||||||
matrix_bot_draupnir_data_path: "{{ matrix_bot_draupnir_base_path }}/data"
|
matrix_bot_draupnir_data_path: "{{ matrix_bot_draupnir_base_path }}/data"
|
||||||
matrix_bot_draupnir_docker_src_files_path: "{{ matrix_bot_draupnir_base_path }}/docker-src"
|
matrix_bot_draupnir_docker_src_files_path: "{{ matrix_bot_draupnir_base_path }}/docker-src"
|
||||||
|
|
||||||
matrix_bot_draupnir_abuse_reporting_enabled: false
|
matrix_bot_draupnir_config_web_abuseReporting: false # noqa var-naming
|
||||||
matrix_bot_draupnir_web_enabled: "{{ matrix_bot_draupnir_abuse_reporting_enabled }}"
|
matrix_bot_draupnir_config_web_enabled: "{{ matrix_bot_draupnir_config_web_abuseReporting }}" # noqa var-naming
|
||||||
matrix_bot_draupnir_display_reports: "{{ matrix_bot_draupnir_abuse_reporting_enabled }}"
|
matrix_bot_draupnir_config_displayReports: "{{ matrix_bot_draupnir_config_web_abuseReporting }}" # noqa var-naming
|
||||||
|
|
||||||
matrix_bot_draupnir_container_network: ""
|
matrix_bot_draupnir_container_network: ""
|
||||||
|
|
||||||
@ -56,7 +57,7 @@ matrix_bot_draupnir_systemd_wanted_services_list: []
|
|||||||
|
|
||||||
# Whether Draupnir should talk to the homeserver through Pantalaimon
|
# Whether Draupnir should talk to the homeserver through Pantalaimon
|
||||||
# If true, then other variables must be provided including pointing
|
# If true, then other variables must be provided including pointing
|
||||||
# `matrix_bot_draupnir_homeserver_url` to the Pantalaimon URL.
|
# `matrix_bot_draupnir_config_homeserverUrl` to the Pantalaimon URL.
|
||||||
#
|
#
|
||||||
# The upstream project discourages enabling this option, because it is
|
# The upstream project discourages enabling this option, because it is
|
||||||
# known that running Draupnir along with Pantalaimon breaks all workflows that involve
|
# known that running Draupnir along with Pantalaimon breaks all workflows that involve
|
||||||
@ -70,39 +71,41 @@ matrix_bot_draupnir_pantalaimon_breakage_ignore: false
|
|||||||
# Tells the bot if it should use its native E2EE support in the form of experimental Rust Crypto in the bot SDK.
|
# Tells the bot if it should use its native E2EE support in the form of experimental Rust Crypto in the bot SDK.
|
||||||
# This option is mutually exclusive with `matrix_bot_draupnir_pantalaimon_use`.
|
# This option is mutually exclusive with `matrix_bot_draupnir_pantalaimon_use`.
|
||||||
# Rust Crypto requires a clean access token that has not touched E2EE so curl is recommended as a method to obtain it.
|
# Rust Crypto requires a clean access token that has not touched E2EE so curl is recommended as a method to obtain it.
|
||||||
matrix_bot_draupnir_enable_experimental_rust_crypto: false
|
matrix_bot_draupnir_config_experimentalRustCrypto: false # noqa var-naming
|
||||||
|
|
||||||
# The access token for the bot user. Required if Pantalaimon is NOT used.
|
# The access token for the bot user. Required if Pantalaimon is NOT used.
|
||||||
# (Otherwise provide `matrix_bot_draupnir_pantalaimon_username` and `matrix_bot_draupnir_pantalaimon_password` instead.)
|
# (Otherwise provide `matrix_bot_draupnir_pantalaimon_username` and `matrix_bot_draupnir_pantalaimon_password` instead.)
|
||||||
matrix_bot_draupnir_access_token: ""
|
matrix_bot_draupnir_config_accessToken: "" # noqa var-naming
|
||||||
|
|
||||||
# Username and password for the bot. Required if Pantalaimon is used.
|
# Username and password for the bot. Required if Pantalaimon is used.
|
||||||
# (Otherwise provide `matrix_bot_draupnir_access_token` instead.)
|
# (Otherwise provide `matrix_bot_draupnir_config_accessToken` instead.)
|
||||||
matrix_bot_draupnir_pantalaimon_username: ""
|
matrix_bot_draupnir_pantalaimon_username: ""
|
||||||
matrix_bot_draupnir_pantalaimon_password: ""
|
matrix_bot_draupnir_pantalaimon_password: ""
|
||||||
|
|
||||||
# Username and password the bot uses for logging in directly. If Pantalaimon is used,
|
# Username and password the bot uses for logging in directly. If Pantalaimon is used,
|
||||||
# these values become the values of `matrix_bot_draupnir_pantalaimon_username` and `matrix_bot_draupnir_pantalaimon_password`
|
# these values become the values of `matrix_bot_draupnir_pantalaimon_username` and `matrix_bot_draupnir_pantalaimon_password`
|
||||||
|
# These config options do not follow the common naming schema as to not cause user confusion over them being called Pantalaimon when using native login.
|
||||||
matrix_bot_draupnir_login: "{{ matrix_bot_draupnir_pantalaimon_username if matrix_bot_draupnir_pantalaimon_use == 'true' else 'bot.draupnir' }}"
|
matrix_bot_draupnir_login: "{{ matrix_bot_draupnir_pantalaimon_username if matrix_bot_draupnir_pantalaimon_use == 'true' else 'bot.draupnir' }}"
|
||||||
matrix_bot_draupnir_password: "{{ matrix_bot_draupnir_pantalaimon_password }}"
|
matrix_bot_draupnir_password: "{{ matrix_bot_draupnir_pantalaimon_password }}"
|
||||||
|
|
||||||
# Controls if we activate the config block for Pantalaimon for now. Its name will
|
# Controls if we activate the config block for Pantalaimon for now. Its name will
|
||||||
# probably be changed for our usecase due to Draupnir's push to scrub Pantalaimon from the codebase.
|
# probably be changed for our usecase due to Draupnir's push to scrub Pantalaimon from the codebase.
|
||||||
|
# This configuration option does not follow the common naming schema as its not controlling a config key directly.
|
||||||
matrix_bot_draupnir_login_native: ""
|
matrix_bot_draupnir_login_native: ""
|
||||||
|
|
||||||
# The room ID where people can use the bot. The bot has no access controls, so
|
# The room ID where people can use the bot. The bot has no access controls, so
|
||||||
# anyone in this room can use the bot - secure your room!
|
# anyone in this room can use the bot - secure your room!
|
||||||
# This should be a room alias or room ID - not a matrix.to URL.
|
# This should be a room alias or room ID - not a matrix.to URL.
|
||||||
# Note: Draupnir is fairly verbose - expect a lot of messages from it.
|
# Note: Draupnir is fairly verbose - expect a lot of messages from it.
|
||||||
matrix_bot_draupnir_management_room: ""
|
matrix_bot_draupnir_config_managementRoom: "" # noqa var-naming
|
||||||
|
|
||||||
# Endpoint URL that Draupnir uses to interact with the Matrix homeserver (client-server API).
|
# Endpoint URL that Draupnir uses to interact with the Matrix homeserver (client-server API).
|
||||||
# Set this to the Pantalaimon URL if you're using that.
|
# Set this to the Pantalaimon URL if you're using that.
|
||||||
matrix_bot_draupnir_homeserver_url: ""
|
matrix_bot_draupnir_config_homeserverUrl: "" # noqa var-naming
|
||||||
|
|
||||||
# Endpoint URL that Draupnir could use to fetch events related to reports (client-server API and /_synapse/).
|
# Endpoint URL that Draupnir could use to fetch events related to reports (client-server API and /_synapse/).
|
||||||
# Only set this to the public-internet homeserver client API URL. Do NOT set this to the Pantalaimon URL.
|
# Only set this to the public-internet homeserver client API URL. Do NOT set this to the Pantalaimon URL.
|
||||||
matrix_bot_draupnir_raw_homeserver_url: ""
|
matrix_bot_draupnir_config_rawHomeserverUrl: "" # noqa var-naming
|
||||||
|
|
||||||
# Disable Server ACL is used if you do not want to give the bot the right to apply Server ACLs in rooms without complaints from the bot.
|
# Disable Server ACL is used if you do not want to give the bot the right to apply Server ACLs in rooms without complaints from the bot.
|
||||||
# This setting is described the following way in the configuration.
|
# This setting is described the following way in the configuration.
|
||||||
@ -112,12 +115,12 @@ matrix_bot_draupnir_raw_homeserver_url: ""
|
|||||||
# It is recommended to consult with people from the upstream project beforehand.
|
# It is recommended to consult with people from the upstream project beforehand.
|
||||||
#
|
#
|
||||||
# It is exposed here because it is common enough to be valid to expose.
|
# It is exposed here because it is common enough to be valid to expose.
|
||||||
matrix_bot_draupnir_disable_server_acl: "false"
|
matrix_bot_draupnir_config_disableServerACL: false # noqa var-naming
|
||||||
|
|
||||||
# Controls if the room state backing store is activated.
|
# Controls if the room state backing store is activated.
|
||||||
# Room state backing store makes restarts of the bot lightning fast as the bot does not suffer from amnesia.
|
# Room state backing store makes restarts of the bot lightning fast as the bot does not suffer from amnesia.
|
||||||
# This config option has diminished improvements for bots on extremely fast homeservers or very very small bots on fast homeservers.
|
# This config option has diminished improvements for bots on extremely fast homeservers or very very small bots on fast homeservers.
|
||||||
matrix_bot_draupnir_enable_room_state_backing_store: "true"
|
matrix_bot_draupnir_config_roomStateBackingStore_enabled: true # noqa var-naming
|
||||||
|
|
||||||
# Default configuration template which covers the generic use case.
|
# Default configuration template which covers the generic use case.
|
||||||
# You can customize it by controlling the various variables inside it.
|
# You can customize it by controlling the various variables inside it.
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 MDAD project contributors
|
# SPDX-FileCopyrightText: 2023 MDAD project contributors
|
||||||
|
# SPDX-FileCopyrightText: 2023 Catalan Lover <catalanlover@protonmail.com>
|
||||||
# SPDX-FileCopyrightText: 2023 Slavi Pantaleev
|
# SPDX-FileCopyrightText: 2023 Slavi Pantaleev
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 - 2024 MDAD project contributors
|
# SPDX-FileCopyrightText: 2023 - 2024 MDAD project contributors
|
||||||
|
# SPDX-FileCopyrightText: 2023 Catalan Lover <catalanlover@protonmail.com>
|
||||||
# SPDX-FileCopyrightText: 2024 David Mehren
|
# SPDX-FileCopyrightText: 2024 David Mehren
|
||||||
# SPDX-FileCopyrightText: 2024 Slavi Pantaleev
|
# SPDX-FileCopyrightText: 2024 Slavi Pantaleev
|
||||||
# SPDX-FileCopyrightText: 2024 Suguru Hirahara
|
# SPDX-FileCopyrightText: 2024 Suguru Hirahara
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 MDAD project contributors
|
# SPDX-FileCopyrightText: 2023 MDAD project contributors
|
||||||
|
# SPDX-FileCopyrightText: 2023 Catalan Lover <catalanlover@protonmail.com>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
|
@ -1,20 +1,40 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 - 2025 MDAD project contributors
|
# SPDX-FileCopyrightText: 2023 - 2025 MDAD project contributors
|
||||||
|
# SPDX-FileCopyrightText: 2023 - 2025 Catalan Lover <catalanlover@protonmail.com>
|
||||||
# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev
|
# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: AGPL-3.0-or-later
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
- name: (Deprecation) Catch and report renamed Draupnir settings
|
||||||
|
ansible.builtin.fail:
|
||||||
|
msg: >-
|
||||||
|
Your configuration contains a variable, which now has a different name.
|
||||||
|
Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml).
|
||||||
|
when: "item.old in vars"
|
||||||
|
with_items:
|
||||||
|
- {'old': 'matrix_bot_draupnir_container_image_name_prefix', 'new': 'matrix_bot_draupnir_container_image_registry_prefix'}
|
||||||
|
- {'old': 'matrix_bot_draupnir_enable_room_state_backing_store', 'new': 'matrix_bot_draupnir_config_roomStateBackingStore_enabled'}
|
||||||
|
- {'old': 'matrix_bot_draupnir_disable_server_acl', 'new': 'matrix_bot_draupnir_config_disableServerACL'}
|
||||||
|
- {'old': 'matrix_bot_draupnir_enable_experimental_rust_crypto', 'new': 'matrix_bot_draupnir_config_experimentalRustCrypto'}
|
||||||
|
- {'old': 'matrix_bot_draupnir_access_token', 'new': 'matrix_bot_draupnir_config_accessToken'}
|
||||||
|
- {'old': 'matrix_bot_draupnir_management_room', 'new': 'matrix_bot_draupnir_config_managementRoom'}
|
||||||
|
- {'old': 'matrix_bot_draupnir_homeserver_url', 'new': 'matrix_bot_draupnir_config_homeserverUrl'}
|
||||||
|
- {'old': 'matrix_bot_draupnir_raw_homeserver_url', 'new': 'matrix_bot_draupnir_config_rawHomeserverUrl'}
|
||||||
|
- {'old': 'matrix_bot_draupnir_web_enabled', 'new': 'matrix_bot_draupnir_config_web_enabled'}
|
||||||
|
- {'old': 'matrix_bot_draupnir_abuse_reporting_enabled', 'new': 'matrix_bot_draupnir_config_web_abuseReporting'}
|
||||||
|
- {'old': 'matrix_bot_draupnir_display_reports', 'new': 'matrix_bot_draupnir_config_displayReports'}
|
||||||
|
|
||||||
- name: Fail if required matrix-bot-draupnir variables are undefined
|
- name: Fail if required matrix-bot-draupnir variables are undefined
|
||||||
ansible.builtin.fail:
|
ansible.builtin.fail:
|
||||||
msg: "The `{{ item.name }}` variable must be defined and have a non-null value."
|
msg: "The `{{ item.name }}` variable must be defined and have a non-null value."
|
||||||
with_items:
|
with_items:
|
||||||
- {'name': 'matrix_bot_draupnir_access_token', when: "{{ not matrix_bot_draupnir_pantalaimon_use }}"}
|
- {'name': 'matrix_bot_draupnir_config_accessToken', when: "{{ not matrix_bot_draupnir_pantalaimon_use }}"}
|
||||||
- {'name': 'matrix_bot_draupnir_access_token', when: "{{ matrix_bot_draupnir_enable_experimental_rust_crypto }}"}
|
- {'name': 'matrix_bot_draupnir_config_accessToken', when: "{{ matrix_bot_draupnir_config_experimentalRustCrypto }}"}
|
||||||
- {'name': 'matrix_bot_draupnir_management_room', when: true}
|
- {'name': 'matrix_bot_draupnir_config_managementRoom', when: true}
|
||||||
- {'name': 'matrix_bot_draupnir_container_network', when: true}
|
- {'name': 'matrix_bot_draupnir_container_network', when: true}
|
||||||
- {'name': 'matrix_bot_draupnir_homeserver_url', when: true}
|
- {'name': 'matrix_bot_draupnir_config_homeserverUrl', when: true}
|
||||||
- {'name': 'matrix_bot_draupnir_raw_homeserver_url', when: true}
|
- {'name': 'matrix_bot_draupnir_config_rawHomeserverUrl', when: true}
|
||||||
- {'name': 'matrix_bot_draupnir_pantalaimon_username', when: "{{ matrix_bot_draupnir_pantalaimon_use }}"}
|
- {'name': 'matrix_bot_draupnir_pantalaimon_username', when: "{{ matrix_bot_draupnir_pantalaimon_use }}"}
|
||||||
- {'name': 'matrix_bot_draupnir_pantalaimon_password', when: "{{ matrix_bot_draupnir_pantalaimon_use }}"}
|
- {'name': 'matrix_bot_draupnir_pantalaimon_password', when: "{{ matrix_bot_draupnir_pantalaimon_use }}"}
|
||||||
when: "item.when | bool and (vars[item.name] == '' or vars[item.name] is none)"
|
when: "item.when | bool and (vars[item.name] == '' or vars[item.name] is none)"
|
||||||
@ -23,9 +43,9 @@
|
|||||||
ansible.builtin.fail:
|
ansible.builtin.fail:
|
||||||
msg: "The `{{ item.name }}` variable must be undefined or have a null value."
|
msg: "The `{{ item.name }}` variable must be undefined or have a null value."
|
||||||
with_items:
|
with_items:
|
||||||
- {'name': 'matrix_bot_draupnir_access_token', when: "{{ matrix_bot_draupnir_pantalaimon_use }}"}
|
- {'name': 'matrix_bot_draupnir_config_accessToken', when: "{{ matrix_bot_draupnir_pantalaimon_use }}"}
|
||||||
- {'name': 'matrix_bot_draupnir_access_token', when: "{{ matrix_bot_draupnir_login_native }}"}
|
- {'name': 'matrix_bot_draupnir_config_accessToken', when: "{{ matrix_bot_draupnir_login_native }}"}
|
||||||
- {'name': 'matrix_bot_draupnir_pantalaimon_use', when: "{{ matrix_bot_draupnir_enable_experimental_rust_crypto }}"}
|
- {'name': 'matrix_bot_draupnir_pantalaimon_use', when: "{{ matrix_bot_draupnir_config_experimentalRustCrypto }}"}
|
||||||
when: "item.when | bool and not (vars[item.name] == '' or vars[item.name] is none)"
|
when: "item.when | bool and not (vars[item.name] == '' or vars[item.name] is none)"
|
||||||
|
|
||||||
- when: "matrix_bot_draupnir_pantalaimon_use == 'true' and matrix_bot_draupnir_pantalaimon_breakage_ignore == 'false'"
|
- when: "matrix_bot_draupnir_pantalaimon_use == 'true' and matrix_bot_draupnir_pantalaimon_breakage_ignore == 'false'"
|
||||||
@ -37,15 +57,6 @@
|
|||||||
devture_playbook_runtime_messages_list | default([])
|
devture_playbook_runtime_messages_list | default([])
|
||||||
+
|
+
|
||||||
[
|
[
|
||||||
"Note: Draupnir does not support running with Pantalaimon as it would break all workflows that involve answering prompts with reactions. To enable E2EE for Draupnir, it is recommended to use matrix_bot_draupnir_enable_experimental_rust_crypto instead. This warning can be disabled by setting matrix_bot_draupnir_pantalaimon_breakage_ignore to true."
|
"Note: Draupnir does not support running with Pantalaimon as it would break all workflows that involve answering prompts with reactions. To enable E2EE for Draupnir, it is recommended to use matrix_bot_draupnir_config_experimentalRustCrypto instead. This warning can be disabled by setting matrix_bot_draupnir_pantalaimon_breakage_ignore to true."
|
||||||
]
|
]
|
||||||
}}
|
}}
|
||||||
|
|
||||||
- name: (Deprecation) Catch and report renamed Draupnir settings
|
|
||||||
ansible.builtin.fail:
|
|
||||||
msg: >-
|
|
||||||
Your configuration contains a variable, which now has a different name.
|
|
||||||
Please rename the variable (`{{ item.old }}` -> `{{ item.new }}`) on your configuration file (vars.yml).
|
|
||||||
when: "item.old in vars"
|
|
||||||
with_items:
|
|
||||||
- {'old': 'matrix_bot_draupnir_container_image_name_prefix', 'new': 'matrix_bot_draupnir_container_image_registry_prefix'}
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
{#
|
{#
|
||||||
SPDX-FileCopyrightText: 2023 - 2024 MDAD project contributors
|
SPDX-FileCopyrightText: 2023 - 2024 MDAD project contributors
|
||||||
|
SPDX-FileCopyrightText: 2023 - 2025 Catalan Lover <catalanlover@protonmail.com>
|
||||||
SPDX-FileCopyrightText: 2024 Slavi Pantaleev
|
SPDX-FileCopyrightText: 2024 Slavi Pantaleev
|
||||||
SPDX-FileCopyrightText: 2024 Suguru Hirahara
|
SPDX-FileCopyrightText: 2024 Suguru Hirahara
|
||||||
|
|
||||||
@ -7,16 +8,16 @@ SPDX-License-Identifier: AGPL-3.0-or-later
|
|||||||
#}
|
#}
|
||||||
|
|
||||||
# Endpoint URL that Draupnir uses to interact with the Matrix homeserver (client-server API),
|
# Endpoint URL that Draupnir uses to interact with the Matrix homeserver (client-server API),
|
||||||
homeserverUrl: {{ matrix_bot_draupnir_homeserver_url | to_json }}
|
homeserverUrl: {{ matrix_bot_draupnir_config_homeserverUrl | to_json }}
|
||||||
|
|
||||||
# Endpoint URL that Draupnir could use to fetch events related to reports (client-server API and /_synapse/),
|
# Endpoint URL that Draupnir could use to fetch events related to reports (client-server API and /_synapse/),
|
||||||
# only set this to the public-internet homeserver client API URL, do NOT set this to the pantalaimon URL.
|
# only set this to the public-internet homeserver client API URL, do NOT set this to the pantalaimon URL.
|
||||||
rawHomeserverUrl: {{ matrix_bot_draupnir_raw_homeserver_url | to_json }}
|
rawHomeserverUrl: {{ matrix_bot_draupnir_config_rawHomeserverUrl | to_json }}
|
||||||
|
|
||||||
# Matrix Access Token to use, Draupnir will only use this if pantalaimon.use is false.
|
# Matrix Access Token to use, Draupnir will only use this if pantalaimon.use is false.
|
||||||
# This option can be loaded from a file by passing "--access-token-path <path>" at the command line,
|
# This option can be loaded from a file by passing "--access-token-path <path>" at the command line,
|
||||||
# which would allow using secret management systems such as systemd's service credentials.
|
# which would allow using secret management systems such as systemd's service credentials.
|
||||||
accessToken: {{ matrix_bot_draupnir_access_token | to_json }}
|
accessToken: {{ matrix_bot_draupnir_config_accessToken | to_json }}
|
||||||
|
|
||||||
{% if matrix_bot_draupnir_pantalaimon_use or matrix_bot_draupnir_login_native %}
|
{% if matrix_bot_draupnir_pantalaimon_use or matrix_bot_draupnir_login_native %}
|
||||||
# Options related to Pantalaimon (https://github.com/matrix-org/pantalaimon)
|
# Options related to Pantalaimon (https://github.com/matrix-org/pantalaimon)
|
||||||
@ -42,7 +43,7 @@ pantalaimon:
|
|||||||
# Make sure Pantalaimon is disabled in Draupnir's configuration.
|
# Make sure Pantalaimon is disabled in Draupnir's configuration.
|
||||||
#
|
#
|
||||||
# Warning: At this time this is not considered production safe.
|
# Warning: At this time this is not considered production safe.
|
||||||
experimentalRustCrypto: {{ matrix_bot_draupnir_enable_experimental_rust_crypto | to_json }}
|
experimentalRustCrypto: {{ matrix_bot_draupnir_config_experimentalRustCrypto | to_json }}
|
||||||
|
|
||||||
# The path Draupnir will store its state/data in, leave default ("/data/storage") when using containers.
|
# The path Draupnir will store its state/data in, leave default ("/data/storage") when using containers.
|
||||||
dataPath: "/data"
|
dataPath: "/data"
|
||||||
@ -65,7 +66,7 @@ recordIgnoredInvites: false
|
|||||||
#
|
#
|
||||||
# Note: By default, Draupnir is fairly verbose - expect a lot of messages in this room.
|
# Note: By default, Draupnir is fairly verbose - expect a lot of messages in this room.
|
||||||
# (see verboseLogging to adjust this a bit.)
|
# (see verboseLogging to adjust this a bit.)
|
||||||
managementRoom: {{ matrix_bot_draupnir_management_room | to_json }}
|
managementRoom: {{ matrix_bot_draupnir_config_managementRoom | to_json }}
|
||||||
|
|
||||||
# Deprecated and will be removed in a future version.
|
# Deprecated and will be removed in a future version.
|
||||||
# Running with verboseLogging is unsupported.
|
# Running with verboseLogging is unsupported.
|
||||||
@ -93,7 +94,7 @@ noop: false
|
|||||||
|
|
||||||
# Whether or not Draupnir should apply `m.room.server_acl` events.
|
# Whether or not Draupnir should apply `m.room.server_acl` events.
|
||||||
# DO NOT change this to `true` unless you are very confident that you know what you are doing.
|
# DO NOT change this to `true` unless you are very confident that you know what you are doing.
|
||||||
disableServerACL: {{ matrix_bot_draupnir_disable_server_acl | to_json }}
|
disableServerACL: {{ matrix_bot_draupnir_config_disableServerACL | to_json }}
|
||||||
|
|
||||||
# A case-insensitive list of ban reasons to have the bot also automatically redact the user's messages for.
|
# A case-insensitive list of ban reasons to have the bot also automatically redact the user's messages for.
|
||||||
#
|
#
|
||||||
@ -199,7 +200,7 @@ commands:
|
|||||||
# homeserver and know that Draupnir is starting up quickly. If your homeserver can
|
# homeserver and know that Draupnir is starting up quickly. If your homeserver can
|
||||||
# respond quickly to Draupnir's requests for `/state` then you might not need this option.
|
# respond quickly to Draupnir's requests for `/state` then you might not need this option.
|
||||||
roomStateBackingStore:
|
roomStateBackingStore:
|
||||||
enabled: {{ matrix_bot_draupnir_enable_room_state_backing_store | to_json }}
|
enabled: {{ matrix_bot_draupnir_config_roomStateBackingStore_enabled | to_json }}
|
||||||
|
|
||||||
# Safe mode provides recovery options for some failure modes when Draupnir
|
# Safe mode provides recovery options for some failure modes when Draupnir
|
||||||
# fails to start. For example, if the bot fails to resolve a room alias in
|
# fails to start. For example, if the bot fails to resolve a room alias in
|
||||||
@ -261,7 +262,7 @@ health:
|
|||||||
# and 1.0 means "trace performance at every opportunity".
|
# and 1.0 means "trace performance at every opportunity".
|
||||||
# tracesSampleRate: 0.5
|
# tracesSampleRate: 0.5
|
||||||
|
|
||||||
{% if matrix_bot_draupnir_web_enabled %}
|
{% if matrix_bot_draupnir_config_web_enabled %}
|
||||||
# Options for exposing web APIs.
|
# Options for exposing web APIs.
|
||||||
web:
|
web:
|
||||||
# Whether to enable web APIs.
|
# Whether to enable web APIs.
|
||||||
@ -287,7 +288,7 @@ web:
|
|||||||
# to configure a reverse proxy, see e.g. test/nginx.conf
|
# to configure a reverse proxy, see e.g. test/nginx.conf
|
||||||
abuseReporting:
|
abuseReporting:
|
||||||
# Whether to enable this feature.
|
# Whether to enable this feature.
|
||||||
enabled: {{ matrix_bot_draupnir_abuse_reporting_enabled | to_json }}
|
enabled: {{ matrix_bot_draupnir_config_web_abuseReporting | to_json }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
# FIXME: This configuration option is currently broken in the playbook as admin APIs cannot
|
# FIXME: This configuration option is currently broken in the playbook as admin APIs cannot
|
||||||
@ -300,4 +301,4 @@ web:
|
|||||||
|
|
||||||
# Whether or not new reports, received either by webapi or polling,
|
# Whether or not new reports, received either by webapi or polling,
|
||||||
# should be printed to our managementRoom.
|
# should be printed to our managementRoom.
|
||||||
displayReports: {{ matrix_bot_draupnir_display_reports | to_json }}
|
displayReports: {{ matrix_bot_draupnir_config_displayReports | to_json }}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
SPDX-FileCopyrightText: 2023 - 2025 Slavi Pantaleev
|
SPDX-FileCopyrightText: 2023 - 2025 Slavi Pantaleev
|
||||||
|
SPDX-FileCopyrightText: 2023 - 2024 Catalan Lover <catalanlover@protonmail.com>
|
||||||
SPDX-FileCopyrightText: 2024 MDAD project contributors
|
SPDX-FileCopyrightText: 2024 MDAD project contributors
|
||||||
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
@ -1275,6 +1275,13 @@ matrix_synapse_experimental_features_msc4140_enabled: false
|
|||||||
# See `matrix_synapse_experimental_features_msc4140_enabled`.
|
# See `matrix_synapse_experimental_features_msc4140_enabled`.
|
||||||
matrix_synapse_max_event_delay_duration: 24h
|
matrix_synapse_max_event_delay_duration: 24h
|
||||||
|
|
||||||
|
# Controls whether to enable the MSC4133 experimental feature (Custom profile fields).
|
||||||
|
#
|
||||||
|
# This allows clients to set custom profile fields (e.g. User Time Zone in Element Web)
|
||||||
|
#
|
||||||
|
# See https://github.com/matrix-org/matrix-spec-proposals/pull/4133
|
||||||
|
matrix_synapse_experimental_features_msc4133_enabled: false
|
||||||
|
|
||||||
# Controls whether to enable the MSC4222 experimental feature (adding `state_after` to sync v2).
|
# Controls whether to enable the MSC4222 experimental feature (adding `state_after` to sync v2).
|
||||||
#
|
#
|
||||||
# Allow clients to opt-in to a change of the sync v2 API that allows them to correctly track the state of the room.
|
# Allow clients to opt-in to a change of the sync v2 API that allows them to correctly track the state of the room.
|
||||||
@ -1331,7 +1338,8 @@ matrix_synapse_ext_spam_checker_synapse_simple_antispam_config_blocked_homeserve
|
|||||||
# See: https://github.com/matrix-org/mjolnir#synapse-module
|
# See: https://github.com/matrix-org/mjolnir#synapse-module
|
||||||
matrix_synapse_ext_spam_checker_mjolnir_antispam_enabled: false
|
matrix_synapse_ext_spam_checker_mjolnir_antispam_enabled: false
|
||||||
matrix_synapse_ext_spam_checker_mjolnir_antispam_git_repository_url: "https://github.com/matrix-org/mjolnir"
|
matrix_synapse_ext_spam_checker_mjolnir_antispam_git_repository_url: "https://github.com/matrix-org/mjolnir"
|
||||||
matrix_synapse_ext_spam_checker_mjolnir_antispam_git_version: "v1.6.4"
|
# renovate: datasource=docker depName=matrixdotorg/mjolnir
|
||||||
|
matrix_synapse_ext_spam_checker_mjolnir_antispam_git_version: "v1.9.2"
|
||||||
matrix_synapse_ext_spam_checker_mjolnir_antispam_config_block_invites: true
|
matrix_synapse_ext_spam_checker_mjolnir_antispam_config_block_invites: true
|
||||||
# Flag messages sent by servers/users in the ban lists as spam. Currently
|
# Flag messages sent by servers/users in the ban lists as spam. Currently
|
||||||
# this means that spammy messages will appear as empty to users. Default
|
# this means that spammy messages will appear as empty to users. Default
|
||||||
|
@ -47,6 +47,14 @@
|
|||||||
|
|
||||||
- {'name': 'matrix_synapse_container_labels_traefik_compression_middleware_name', when: "{{ matrix_synapse_container_labels_traefik_compression_middleware_enabled }}"}
|
- {'name': 'matrix_synapse_container_labels_traefik_compression_middleware_name', when: "{{ matrix_synapse_container_labels_traefik_compression_middleware_enabled }}"}
|
||||||
|
|
||||||
|
# If only MSC 4108 is enabled, Synapse fails with: "MSC4108 requires MSC3861 to be enabled"
|
||||||
|
- name: Fail if Synapse experimental feature QR code login (MSC4108) is enabled while Next-Gen Auth (MSC3861) is not
|
||||||
|
ansible.builtin.fail:
|
||||||
|
msg: >-
|
||||||
|
QR code login (MSC4108) requires Next-Gen Auth (MSC3861) to be enabled or Synapse will fail to start.
|
||||||
|
Enable `matrix_synapse_experimental_features_msc3861_enabled` when using `matrix_synapse_experimental_features_msc4108_enabled`.
|
||||||
|
when: "matrix_synapse_experimental_features_msc4108_enabled and not matrix_synapse_experimental_features_msc3861_enabled"
|
||||||
|
|
||||||
- name: Fail if asking for more than 1 instance of single-instance workers
|
- name: Fail if asking for more than 1 instance of single-instance workers
|
||||||
ansible.builtin.fail:
|
ansible.builtin.fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
|
@ -2987,6 +2987,9 @@ experimental_features:
|
|||||||
{% if matrix_synapse_experimental_features_msc4108_enabled %}
|
{% if matrix_synapse_experimental_features_msc4108_enabled %}
|
||||||
msc4108_enabled: true
|
msc4108_enabled: true
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if matrix_synapse_experimental_features_msc4133_enabled %}
|
||||||
|
msc4133_enabled: true
|
||||||
|
{% endif %}
|
||||||
{% if matrix_synapse_experimental_features_msc4140_enabled %}
|
{% if matrix_synapse_experimental_features_msc4140_enabled %}
|
||||||
msc4140_enabled: true
|
msc4140_enabled: true
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user