Make matrix_homeserver_implementation influence matrix_IMPLEMENTATION_enabled, not the other way around

Doing this seems more reasonable and simpler.
development
Slavi Pantaleev 3 years ago
parent 4139290cc9
commit 1dfe21944f

@ -10,6 +10,10 @@
# Example value: example.com # Example value: example.com
matrix_domain: YOUR_BARE_DOMAIN_NAME_HERE matrix_domain: YOUR_BARE_DOMAIN_NAME_HERE
# The Matrix homeserver software to install.
# See `roles/matrix-base/defaults/main.yml` for valid options.
matrix_homeserver_implementation: synapse
# This is something which is provided to Let's Encrypt when retrieving SSL certificates for domains. # This is something which is provided to Let's Encrypt when retrieving SSL certificates for domains.
# #
# In case SSL renewal fails at some point, you'll also get an email notification there. # In case SSL renewal fails at some point, you'll also get an email notification there.

@ -17,17 +17,6 @@ matrix_container_global_registry_prefix: "docker.io/"
# #
###################################################################### ######################################################################
matrix_homeserver_enabled_implementations_list: |
{{
(
(['synapse'] if matrix_synapse_enabled else [])
+
(['dendrite'] if matrix_dendrite_enabled else [])
)
}}
matrix_homeserver_implementation: "{{ matrix_homeserver_enabled_implementations_list[0] if matrix_homeserver_enabled_implementations_list|length == 1 else '' }}"
matrix_identity_server_url: "{{ ('https://' + matrix_server_fqn_matrix) if matrix_ma1sd_enabled else None }}" matrix_identity_server_url: "{{ ('https://' + matrix_server_fqn_matrix) if matrix_ma1sd_enabled else None }}"
# If Synapse workers are enabled and matrix-nginx-proxy is disabled, certain APIs may not work over 'http://matrix-synapse:{{ matrix_synapse_container_client_api_port }}'. # If Synapse workers are enabled and matrix-nginx-proxy is disabled, certain APIs may not work over 'http://matrix-synapse:{{ matrix_synapse_container_client_api_port }}'.
@ -1906,6 +1895,8 @@ matrix_client_cinny_self_check_validate_certificates: "{{ false if matrix_ssl_re
# #
###################################################################### ######################################################################
matrix_synapse_enabled: "{{ matrix_homeserver_implementation == 'synapse' }}"
matrix_synapse_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}" matrix_synapse_container_image_self_build: "{{ matrix_architecture not in ['arm64', 'amd64'] }}"
# When ma1sd is enabled, we can use it to validate email addresses and phone numbers. # When ma1sd is enabled, we can use it to validate email addresses and phone numbers.
@ -2205,6 +2196,8 @@ matrix_postgres_backup_databases: |
# #
###################################################################### ######################################################################
matrix_dendrite_enabled: "{{ matrix_homeserver_implementation == 'dendrite' }}"
# Normally, matrix-nginx-proxy is enabled and nginx can reach Dendrite over the container network. # Normally, matrix-nginx-proxy is enabled and nginx can reach Dendrite over the container network.
# If matrix-nginx-proxy is not enabled, or you otherwise have a need for it, # If matrix-nginx-proxy is not enabled, or you otherwise have a need for it,
# you can expose Dendrite's ports to the host. # you can expose Dendrite's ports to the host.

@ -8,11 +8,13 @@
matrix_domain: ~ matrix_domain: ~
# This will contain the homeserver implementation that is in use. # This will contain the homeserver implementation that is in use.
# Example values: 'synapse', 'dendrite', etc. # Valid values: synapse, dendrite
# You normally don't need to set this variable manually. #
# Its value is automatically set depending on the homeserver implementation that you have enabled via other variables # By default, we use Synapse, because it's the only full-featured Matrix server at the moment.
# (e.g. `matrix_synapse_enabled`, `matrix_dendrite_enabled`, etc.) #
matrix_homeserver_implementation: '' # This value automatically influences other variables (`matrix_synapse_enabled`, `matrix_dendrite_enabled`, etc.).
# The homeserver implementation of an existing server cannot be changed without data loss.
matrix_homeserver_implementation: synapse
# This is where your data lives and what we set up. # This is where your data lives and what we set up.
# This and the Element FQN (see below) are expected to be on the same server. # This and the Element FQN (see below) are expected to be on the same server.

@ -1,15 +1,9 @@
--- ---
- name: Fail if 0 or more than 1 homeserver implementations enabled - name: Fail if invalid homeserver implementation
fail: fail:
msg: >- msg: "You need to set a valid homeserver implementation in `matrix_homeserver_implementation`"
You have 0 or more than 1 homeserver implementations enabled when: "matrix_homeserver_implementation not in ['synapse', 'dendrite']"
({{ matrix_homeserver_enabled_implementations_list|join(', ') }}).
If you have more than 1 implementation enabled, you can disable the unnecessary implementations by adding `matrix_IMPLEMENTATION_enabled: false` to your vars.yml file.
If you have 0 implementations enabled, you can enable one by adding `matrix_IMPLEMENTATION_enabled: false` to your vars.yml file (e.g. `matrix_dendrite_enabled: true`).
when: "matrix_homeserver_enabled_implementations_list|length != 1"
# We generally support Ansible 2.7.1 and above. # We generally support Ansible 2.7.1 and above.
- name: Fail if running on Ansible < 2.7.1 - name: Fail if running on Ansible < 2.7.1

@ -1,7 +1,7 @@
# Dendrite is a second-generation Matrix homeserver currently in Beta # Dendrite is a second-generation Matrix homeserver currently in Beta
# See: https://github.com/matrix-org/dendrite # See: https://github.com/matrix-org/dendrite
matrix_dendrite_enabled: false matrix_dendrite_enabled: true
matrix_dendrite_docker_image: "{{ matrix_dendrite_docker_image_name_prefix }}matrixdotorg/dendrite-monolith:{{ matrix_dendrite_docker_image_tag }}" matrix_dendrite_docker_image: "{{ matrix_dendrite_docker_image_name_prefix }}matrixdotorg/dendrite-monolith:{{ matrix_dendrite_docker_image_tag }}"
matrix_dendrite_docker_image_name_prefix: "docker.io/" matrix_dendrite_docker_image_name_prefix: "docker.io/"

Loading…
Cancel
Save