| @@ -1,3 +1,44 @@ | |||||
| # 2024-01-17 | |||||
| ## Switching to Element's AGPLv3-licensed Synapse release | |||||
| A few months ago, the [Element](https://element.io/) company has [announced](https://element.io/blog/element-to-adopt-agplv3/) that their work on the Synapse homeserver would no longer be available under the permissive [Apache-2.0 license](https://www.apache.org/licenses/LICENSE-2.0), but only under: | |||||
| - the [AGPLv3](https://www.gnu.org/licenses/agpl-3.0.en.html) free-software license - the same license that this Ansible playbook has always used | |||||
| - a proprietary license, for those wishing for Element to [sell them an exception](https://gnu.org/philosophy/selling-exceptions.html) to the AGPLv3 license | |||||
| You can also learn more in [this post](https://matrix.org/blog/2023/11/06/future-of-synapse-dendrite/) by the Matrix Foundation. | |||||
| The change has [already happened](https://element.io/blog/synapse-now-lives-at-github-com-element-hq-synapse/) and the first Synapse release under the new license is here: [v1.99.0](https://github.com/element-hq/synapse/releases/tag/v1.99.0). | |||||
| There is no up-to-date alternative Synapse fork right now and this free-software (AGPLv3-licensed) playbook is definitely not against free-software licenses, so we are now switching to the Element-maintained Synapse release. | |||||
| **What does this mean to you?** | |||||
| For most home users, it doesn't mean anything. Your installation will continue working as it should and you don't need to do anything. | |||||
| For people building commercial products on top of Synapse, they may have to either buy a license exception from Element (from what we hear, the fee depends on the number of monthly-active users on your instance) or they may need to release all related code as free-software (which is what we've been doing at [etke.cc](https://etke.cc/) ([here](https://gitlab.com/etke.cc)) all along). | |||||
| We're no lawyers and this changelog entry does not aim to give you the best legal advice, so please research on your own! | |||||
| If you'd like to continue using the old Apache-2.0-licensed Synapse (for a while longer anyway), the playbook makes it possible by intruducing a new Ansible variable. You can do it like this: | |||||
| ```yaml | |||||
| # Switch the organization that Synapse container images (or source code for self-building) are pulled from. | |||||
| # Note: the new default value is `element-hq/synapse`. | |||||
| matrix_synapse_github_org_and_repo: matrix-org/synapse | |||||
| # Pin the Synapse version to the last one (v1.98.0) released by the Matrix Foundation | |||||
| # under the old permissive Apache-2.0 license. | |||||
| matrix_synapse_version: v1.98.0 | |||||
| ``` | |||||
| Notes: | |||||
| - if you had already upgraded Synapse to `v1.99.0` by running this playbook, you will still be able to downgrade to `v1.98.0`, because both releases use the same database schema version (`SCHEMA_COMPAT_VERSION = 83` - see [here for v1.98.0](https://github.com/element-hq/synapse/blob/v1.98.0/synapse/storage/schema/__init__.py#L131-L134) and [here for v1.99.0](https://github.com/element-hq/synapse/blob/v1.99.0/synapse/storage/schema/__init__.py#L137-L140)). More details on Synapse's database schema are available [here](https://element-hq.github.io/synapse/develop/development/database_schema.html). It appears that there are no new database migrations introduced in `v1.99.0`, so going back to the older release is possible. This is not guaranteed to hold true for future Synapse releases, so if you're seeing this early-enough, consider pinning the version and organization before re-running the playbook and getting upgraded to the latest version | |||||
| - running an outdated homeserver exposes you to security issues and incompatibilities. Only consider doing this as a short-term solution. | |||||
| # 2024-01-16 | # 2024-01-16 | ||||
| ## `Draupnir` has been relicensed to AFL-3.0 | ## `Draupnir` has been relicensed to AFL-3.0 | ||||
| @@ -12,7 +12,7 @@ matrix_prometheus_services_connect_synapse_rules_enabled: "{{ matrix_prometheus_ | |||||
| # Controls whether the synapse rules shall be downloaded | # Controls whether the synapse rules shall be downloaded | ||||
| matrix_prometheus_services_connect_synapse_rules_download_enabled: "{{ matrix_prometheus_services_connect_synapse_rules_enabled }}" | matrix_prometheus_services_connect_synapse_rules_download_enabled: "{{ matrix_prometheus_services_connect_synapse_rules_enabled }}" | ||||
| matrix_prometheus_services_connect_synapse_rules_download_synapse_tag: master | matrix_prometheus_services_connect_synapse_rules_download_synapse_tag: master | ||||
| matrix_prometheus_services_connect_synapse_rules_download_src_url: "https://raw.githubusercontent.com/matrix-org/synapse/{{ matrix_prometheus_services_connect_synapse_rules_download_synapse_tag }}/contrib/prometheus/synapse-v2.rules" | |||||
| matrix_prometheus_services_connect_synapse_rules_download_src_url: "https://raw.githubusercontent.com/{{ matrix_synapse_github_org_and_repo }}/{{ matrix_prometheus_services_connect_synapse_rules_download_synapse_tag }}/contrib/prometheus/synapse-v2.rules" | |||||
| matrix_prometheus_services_connect_synapse_rules_download_dir_path: '' | matrix_prometheus_services_connect_synapse_rules_download_dir_path: '' | ||||
| matrix_prometheus_services_connect_synapse_rules_download_owner: '' | matrix_prometheus_services_connect_synapse_rules_download_owner: '' | ||||
| matrix_prometheus_services_connect_synapse_rules_download_group: '' | matrix_prometheus_services_connect_synapse_rules_download_group: '' | ||||
| @@ -4,6 +4,17 @@ | |||||
| matrix_synapse_enabled: true | matrix_synapse_enabled: true | ||||
| # Specifies which Github organization and repository name Synapse lives at. | |||||
| # | |||||
| # This influences: | |||||
| # - the Github Container Image registry that container images are pulled from (see `matrix_synapse_docker_image_name`) | |||||
| # - the git repository to code is pulled from when self-building is used (see `matrix_synapse_container_image_self_build_repo`) | |||||
| # - potentially other roles which need to reference the Synapse git repository | |||||
| # | |||||
| # A popular alternative value may be: `matrix-org/synapse`. | |||||
| # However, do note that the last Synapse version available there is v1.98.0. | |||||
| matrix_synapse_github_org_and_repo: element-hq/synapse | |||||
| # renovate: datasource=docker depName=ghcr.io/element-hq/synapse | # renovate: datasource=docker depName=ghcr.io/element-hq/synapse | ||||
| matrix_synapse_version: v1.98.0 | matrix_synapse_version: v1.98.0 | ||||
| @@ -12,7 +23,7 @@ matrix_synapse_uid: '' | |||||
| matrix_synapse_gid: '' | matrix_synapse_gid: '' | ||||
| matrix_synapse_container_image_self_build: false | matrix_synapse_container_image_self_build: false | ||||
| matrix_synapse_container_image_self_build_repo: "https://github.com/element-hq/synapse.git" | |||||
| matrix_synapse_container_image_self_build_repo: "https://github.com/{{ matrix_synapse_github_org_and_repo }}.git" | |||||
| # matrix_synapse_container_image_customizations_enabled controls whether a customized Synapse image will be built. | # matrix_synapse_container_image_customizations_enabled controls whether a customized Synapse image will be built. | ||||
| # | # | ||||
| @@ -72,7 +83,7 @@ matrix_synapse_container_image_customizations_dockerfile_body_custom: '' | |||||
| matrix_synapse_docker_image: "{{ matrix_synapse_docker_image_name_prefix }}{{ matrix_synapse_docker_image_name }}:{{ matrix_synapse_docker_image_tag }}" | matrix_synapse_docker_image: "{{ matrix_synapse_docker_image_name_prefix }}{{ matrix_synapse_docker_image_name }}:{{ matrix_synapse_docker_image_tag }}" | ||||
| matrix_synapse_docker_image_name_prefix: "{{ 'localhost/' if matrix_synapse_container_image_self_build else matrix_synapse_docker_image_registry_prefix }}" | matrix_synapse_docker_image_name_prefix: "{{ 'localhost/' if matrix_synapse_container_image_self_build else matrix_synapse_docker_image_registry_prefix }}" | ||||
| matrix_synapse_docker_image_name: element-hq/synapse | |||||
| matrix_synapse_docker_image_name: "{{ matrix_synapse_github_org_and_repo }}" | |||||
| matrix_synapse_docker_image_tag: "{{ matrix_synapse_version }}" | matrix_synapse_docker_image_tag: "{{ matrix_synapse_version }}" | ||||
| matrix_synapse_docker_image_force_pull: "{{ matrix_synapse_docker_image.endswith(':latest') }}" | matrix_synapse_docker_image_force_pull: "{{ matrix_synapse_docker_image.endswith(':latest') }}" | ||||
| matrix_synapse_docker_image_registry_prefix: ghcr.io/ | matrix_synapse_docker_image_registry_prefix: ghcr.io/ | ||||