| @@ -1,3 +1,13 @@ | |||||
| # 2026-09-17 | |||||
| ## (Backward Compatibility Break) Continuwuity requires registration challenges and disables legacy media by default | |||||
| [Continuwuity v26.9.0](https://forgejo.ellis.link/continuwuation/continuwuity/src/tag/v26.9.0/CHANGELOG.md) removes challengeless registration from official images. Remove `matrix_continuwuity_config_yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse` from your configuration; validation will report it even if set to `false`. To continue accepting registrations, configure a registration token, ReCAPTCHA, or required email verification as described in [Configuring Continuwuity](docs/configuring-playbook-continuwuity.md#protecting-registration). Existing accounts and admin-managed registration tokens are unaffected. Remove the corresponding upstream option from any custom template or environment override too. | |||||
| Legacy, unauthenticated media endpoints are now disabled by default. Update clients and integrations that still use them to support authenticated media. Authenticated media endpoints remain enabled. Review any explicit `allow_legacy_media` override, which keeps unauthenticated access enabled despite the new default. | |||||
| After reviewing these changes, set `matrix_playbook_migration_validated_version: v2026.09.17.0` in your `vars.yml`. If you use another homeserver implementation, these Continuwuity changes do not affect it. | |||||
| # 2026-08-20 | # 2026-08-20 | ||||
| ## MatrixRTC transports are advertised in the client well-known again | ## MatrixRTC transports are advertised in the client well-known again | ||||
| @@ -35,6 +35,19 @@ matrix_continuwuity_config_allow_registration: true | |||||
| matrix_continuwuity_config_registration_token: '' | matrix_continuwuity_config_registration_token: '' | ||||
| ``` | ``` | ||||
| ### Protecting registration | |||||
| Official Continuwuity images require a registration challenge. Set `matrix_continuwuity_config_registration_token` to a strong token, or configure one of these alternatives: | |||||
| - ReCAPTCHA: set both `matrix_continuwuity_config_recaptcha_site_key` and `matrix_continuwuity_config_recaptcha_private_site_key`. | |||||
| - Email verification: configure working SMTP and set `matrix_continuwuity_config_smtp_require_email_for_registration: true`. The playbook enables SMTP through the local Exim relay by default; merely enabling SMTP does not require email verification. | |||||
| Keep `matrix_continuwuity_config_allow_registration: true` to allow registration. Tokens managed through the admin room remain supported. See the upstream [configuration reference](https://continuwuity.org/configuration) for details. | |||||
| ### Media access | |||||
| Continuwuity disables legacy, unauthenticated media endpoints by default. Clients and integrations must use authenticated media endpoints. If you previously enabled `CONTINUWUITY_ALLOW_LEGACY_MEDIA` through `matrix_continuwuity_environment_variables_extension`, or set `allow_legacy_media` in a custom template, review that override: it allows anyone who knows a media URL to access the file. | |||||
| ### Extending the configuration | ### Extending the configuration | ||||
| There are some additional things you may wish to configure about the server. | There are some additional things you may wish to configure about the server. | ||||
| @@ -2,7 +2,7 @@ | |||||
| # This variable acknowledges that you've reviewed breaking changes up to this version. | # This variable acknowledges that you've reviewed breaking changes up to this version. | ||||
| # The playbook will fail if this is outdated, guiding you through what changed. | # The playbook will fail if this is outdated, guiding you through what changed. | ||||
| # See the changelog: https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/CHANGELOG.md | # See the changelog: https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/CHANGELOG.md | ||||
| matrix_playbook_migration_validated_version: v2026.05.18.0 | |||||
| matrix_playbook_migration_validated_version: v2026.09.17.0 | |||||
| # The bare domain name which represents your Matrix identity. | # The bare domain name which represents your Matrix identity. | ||||
| # Matrix user IDs for your server will be of the form (`@alice:example.com`). | # Matrix user IDs for your server will be of the form (`@alice:example.com`). | ||||
| @@ -14,7 +14,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: v26.8.1 | |||||
| matrix_continuwuity_version: v26.9.0 | |||||
| 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 }}" | ||||
| @@ -151,16 +151,9 @@ matrix_continuwuity_config_allow_registration: false | |||||
| # Controls if newly registered users are automatically suspended, requiring admin approval. | # Controls if newly registered users are automatically suspended, requiring admin approval. | ||||
| matrix_continuwuity_config_suspend_on_register: false | matrix_continuwuity_config_suspend_on_register: false | ||||
| # Controls the `yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse` setting. | |||||
| # This is only used when `matrix_continuwuity_config_allow_registration` is set to true and no registration token is configured. | |||||
| matrix_continuwuity_config_yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse: false | |||||
| # Controls the `registration_token` setting. | # Controls the `registration_token` setting. | ||||
| # When registration is enabled (`matrix_continuwuity_config_allow_registration`) you: | |||||
| # - either need to set a token to protect registration from abuse | |||||
| # - or you need to enable the `yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse` setting | |||||
| # (see `matrix_continuwuity_config_yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse`), | |||||
| # to allow registration without any form of 2nd-step. | |||||
| # When registration is enabled, protect it with a registration token, ReCAPTCHA, | |||||
| # or required email verification. Official images do not support challengeless registration. | |||||
| matrix_continuwuity_config_registration_token: '' | matrix_continuwuity_config_registration_token: '' | ||||
| # Controls the `new_user_displayname_suffix` setting. | # Controls the `new_user_displayname_suffix` setting. | ||||
| @@ -38,6 +38,16 @@ | |||||
| - {'old': 'matrix_continuwuity_docker_image_registry_prefix_upstream_default', 'new': 'matrix_continuwuity_container_image_registry_prefix_upstream_default'} | - {'old': 'matrix_continuwuity_docker_image_registry_prefix_upstream_default', 'new': 'matrix_continuwuity_container_image_registry_prefix_upstream_default'} | ||||
| - {'old': 'matrix_continuwuity_container_image_force_pull', 'new': '<removed> (the new community.docker.docker_image_pull module handles this natively)'} | - {'old': 'matrix_continuwuity_container_image_force_pull', 'new': '<removed> (the new community.docker.docker_image_pull module handles this natively)'} | ||||
| - name: (Deprecation) Catch and report removed Continuwuity challengeless registration setting | |||||
| ansible.builtin.fail: | |||||
| msg: >- | |||||
| Remove `matrix_continuwuity_config_yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse` | |||||
| from your configuration (vars.yml). Continuwuity's official images no longer support challengeless registration. | |||||
| To keep registration enabled, configure `matrix_continuwuity_config_registration_token`, both ReCAPTCHA keys, | |||||
| or SMTP with `matrix_continuwuity_config_smtp_require_email_for_registration: true`. | |||||
| See docs/configuring-playbook-continuwuity.md for details. | |||||
| when: matrix_continuwuity_config_yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse is defined | |||||
| - name: Fail if Continuwuity ReCAPTCHA is only partially configured | - name: Fail if Continuwuity ReCAPTCHA is only partially configured | ||||
| ansible.builtin.fail: | ansible.builtin.fail: | ||||
| msg: >- | msg: >- | ||||
| @@ -458,9 +458,8 @@ max_request_size = {{ matrix_continuwuity_config_max_request_size }} | |||||
| # Enables registration. If set to false, no users can register on this | # Enables registration. If set to false, no users can register on this | ||||
| # server. | # server. | ||||
| # | # | ||||
| # If set to true without a token configured, users can register with no | |||||
| # form of 2nd-step only if you set the following option to true: | |||||
| # `yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse` | |||||
| # Registration requires a token, ReCAPTCHA, or email verification. | |||||
| # Official images do not support challengeless registration. | |||||
| # | # | ||||
| # If you would like registration only via token reg, please configure | # If you would like registration only via token reg, please configure | ||||
| # `registration_token`. | # `registration_token`. | ||||
| @@ -483,11 +482,6 @@ allow_registration = {{ matrix_continuwuity_config_allow_registration | to_json | |||||
| # | # | ||||
| suspend_on_register = {{ matrix_continuwuity_config_suspend_on_register | to_json }} | suspend_on_register = {{ matrix_continuwuity_config_suspend_on_register | to_json }} | ||||
| # Enabling this setting opens registration to anyone without restrictions. | |||||
| # This makes your server vulnerable to abuse | |||||
| # | |||||
| yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse = {{ matrix_continuwuity_config_yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse | to_json }} | |||||
| # A static registration token that new users will have to provide when | # A static registration token that new users will have to provide when | ||||
| # creating an account. This token does not supersede tokens from other | # creating an account. This token does not supersede tokens from other | ||||
| # sources, such as the `!admin token` command or the | # sources, such as the `!admin token` command or the | ||||
| @@ -1327,10 +1321,9 @@ allow_outgoing_presence = {{ matrix_continuwuity_config_allow_outgoing_presence | |||||
| # | # | ||||
| # The authenticated equivalent endpoints are always enabled. | # The authenticated equivalent endpoints are always enabled. | ||||
| # | # | ||||
| # Defaults to true for now, but this is highly subject to change, likely | |||||
| # in the next release. | |||||
| # Defaults to false, as unauthenticated media has been sunsetted. | |||||
| # | # | ||||
| #allow_legacy_media = true | |||||
| #allow_legacy_media = false | |||||
| # This item is undocumented. Please contribute documentation for it. | # This item is undocumented. Please contribute documentation for it. | ||||
| # | # | ||||
| @@ -14,10 +14,13 @@ matrix_playbook_migration_validated_version: '' | |||||
| # The version that the playbook expects the user to have validated against. | # The version that the playbook expects the user to have validated against. | ||||
| # This is bumped whenever a breaking change is introduced. | # This is bumped whenever a breaking change is introduced. | ||||
| # The value configured here needs to exist in `matrix_playbook_migration_breaking_changes` as well. | # The value configured here needs to exist in `matrix_playbook_migration_breaking_changes` as well. | ||||
| matrix_playbook_migration_expected_version: "v2026.05.18.0" | |||||
| matrix_playbook_migration_expected_version: "v2026.09.17.0" | |||||
| # A list of breaking changes, used to inform users what changed between their validated version and the expected version. | # A list of breaking changes, used to inform users what changed between their validated version and the expected version. | ||||
| matrix_playbook_migration_breaking_changes: | matrix_playbook_migration_breaking_changes: | ||||
| - version: "v2026.09.17.0" | |||||
| summary: "Continuwuity v26.9.0 requires registration challenges in official images and disables legacy unauthenticated media by default" | |||||
| changelog_url: "https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/CHANGELOG.md#2026-09-17" | |||||
| - version: "v2026.05.18.0" | - version: "v2026.05.18.0" | ||||
| summary: "LiveKit Server has been upgraded to v1.12.0 — TURN no longer relays to restricted peer CIDRs (loopback, link-local, multicast, private, unspecified) by default; TURN credentials now carry a TTL (300s)" | summary: "LiveKit Server has been upgraded to v1.12.0 — TURN no longer relays to restricted peer CIDRs (loopback, link-local, multicast, private, unspecified) by default; TURN credentials now carry a TTL (300s)" | ||||
| changelog_url: "https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/CHANGELOG.md#2026-05-18" | changelog_url: "https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/CHANGELOG.md#2026-05-18" | ||||