Compare commits

...

10 Commits

Author SHA1 Message Date
Aine
7a77d84276
synapse-admin: get rid of lookup and config duplicate var 2024-11-08 18:47:37 +02:00
Slavi Pantaleev
28a4434f55 Document why matrix_synapse_admin_well_known_client_configuration duplicates matrix_synapse_admin_configuration (roles/custom/matrix-synapse-admin/templates/config.json.j2) 2024-11-08 18:34:50 +02:00
Aine
30efde4ed3
add missing synapse-admin config options to /.well-known/matrix/client 2024-11-08 18:04:01 +02:00
Slavi Pantaleev
0cb3e530d9 Add support for auto-configuring synapse-admin via /.well-known/matrix/client
Related to:
- https://github.com/etkecc/synapse-admin/pull/126
- https://github.com/etkecc/synapse-admin/releases/tag/v0.10.3-etke27

People who wish to disable this and keep their `/.well-known/matrix/client` file tidier
can do it via:

```yml
matrix_static_files_file_matrix_client_property_cc_etke_synapse_admin_enabled: false
```
2024-11-08 17:48:37 +02:00
Slavi Pantaleev
260421beb1
Merge pull request #3760 from luixxiul/fix
Edit the note about "matrix_homeserver_implementation" variable
2024-11-08 17:02:45 +02:00
Suguru Hirahara
3c34418ebe
Edit the note about "matrix_homeserver_implementation" variable
Since a casual user might want to try another homeserver than Synapse without thinking about its consequence, it is important to clarify that it is not possible to switch homeservers once specified.

Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2024-11-08 23:59:14 +09:00
Slavi Pantaleev
885b8e9204
Merge pull request #3759 from luixxiul/fix
Fix capitalization: element, ids, riot
2024-11-08 16:21:37 +02:00
Suguru Hirahara
2fcd824d6b
Fix capitalization: riot → Riot
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2024-11-08 20:36:35 +09:00
Suguru Hirahara
b61d8f478f
Fix capitalization: ids → IDs
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2024-11-08 20:31:07 +09:00
Suguru Hirahara
3af7355d14
Fix capitalization: element → Element
Signed-off-by: Suguru Hirahara <acioustick@noreply.codeberg.org>
2024-11-08 20:30:59 +09:00
13 changed files with 37 additions and 18 deletions

View File

@ -25,7 +25,7 @@ ansible-playbook -i inventory/hosts setup.yml --extra-vars='username=bot.chatgpt
Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md).
To make sure the bot can read encrypted messages, it will need an encryption key, just like any other new user. While obtaining the access token, follow the prompts to setup a backup key. More information can be found in the [element documentation](https://element.io/help#encryption6).
To make sure the bot can read encrypted messages, it will need an encryption key, just like any other new user. While obtaining the access token, follow the prompts to setup a backup key. More information can be found in the [Element documentation](https://element.io/help#encryption6).
## 3. Adjusting the playbook configuration

View File

@ -365,7 +365,7 @@ The same OIDC provider may have an `id` of `01HFVBY12TMNTYTBV8W921M5FA` on the M
To tell `syn2mas` how the Synapse-configured OIDC provider maps to the new MAS-configured OIDC provider, add this additional configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yml
# Adjust the mapping below to match your provider ids on the Synapse side and the MAS side.
# Adjust the mapping below to match your provider IDs on the Synapse side and the MAS side.
# Don't forget that Synapse automatically adds an `oidc-` prefix to provider ids defined in its configuration.
matrix_authentication_service_syn2mas_process_extra_arguments:
- "--upstreamProviderMapping oidc-keycloak:01HFVBY12TMNTYTBV8W921M5FA"

View File

@ -13,4 +13,4 @@ To get started, first follow the [front the integrated reverse-proxy webserver w
You can either just use the [Caddyfile](Caddyfile) directly or append its content to your own Caddyfile.
In both cases make sure to replace all the `example.com` domains with your own domain.
This example does not include additional services like element, but you should be able copy the first block and replace the `matrix` subdomain with the additional services subdomain. I have not tested this though.
This example does not include additional services like Element, but you should be able copy the first block and replace the `matrix` subdomain with the additional services subdomain. I have not tested this though.

View File

@ -1,6 +1,6 @@
---
# The bare domain name which represents your Matrix identity.
# Matrix user ids for your server will be of the form (`@user:example.com`).
# Matrix user IDs for your server will be of the form (`@user:example.com`).
#
# Note: this playbook does not touch the server referenced here.
# Installation happens on another server ("matrix.example.com", see `matrix_server_fqn_matrix`).
@ -13,6 +13,10 @@ matrix_domain: example.com
# See:
# - `roles/custom/matrix-base/defaults/main.yml` for valid options
# - the `docs/configuring-playbook-IMPLEMENTATION_NAME.md` documentation page, if one is available for your implementation choice
#
# By default, we use Synapse, because it's the only full-featured Matrix server at the moment.
#
# Note that the homeserver implementation of a server will not be able to be changed without data loss.
matrix_homeserver_implementation: synapse
# A secret used as a base, for generating various other secrets.

View File

@ -5882,6 +5882,10 @@ matrix_static_files_file_matrix_client_property_org_matrix_msc2965_authenticatio
matrix_static_files_file_matrix_client_property_m_tile_server_entries_enabled: "{{ matrix_client_element_location_sharing_enabled }}"
matrix_static_files_file_matrix_client_property_m_tile_server_map_style_url: "{{ ('https://' if matrix_playbook_ssl_enabled else 'http://') + matrix_server_fqn_element }}/map_style.json"
# We set this regardless of whether synapse-admin is enabled, because people may wish to use a hosted (externally) synapse-admin installation and still have it auto-configured.
# See: https://github.com/etkecc/synapse-admin/pull/126
matrix_static_files_file_matrix_client_property_cc_etke_synapse_admin_auto: "{{ matrix_synapse_admin_configuration if matrix_homeserver_implementation == 'synapse' else {} }}"
matrix_static_files_file_matrix_server_property_m_server: "{{ matrix_server_fqn_matrix_federation }}:{{ matrix_federation_public_port }}"
matrix_static_files_scheme: "{{ 'https' if matrix_playbook_ssl_enabled else 'http' }}"

View File

@ -1,7 +1,7 @@
---
# The bare domain name which represents your Matrix identity.
# Matrix user ids for your server will be of the form (`@user:example.com`).
# Matrix user IDs for your server will be of the form (`@user:example.com`).
#
# Note: this playbook does not touch the server referenced here.
# Installation happens on another server ("matrix.example.com", see `matrix_server_fqn_matrix`).
@ -54,7 +54,7 @@ matrix_homeserver_enabled: true
# By default, we use Synapse, because it's the only full-featured Matrix server at the moment.
#
# 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.
# Note that the homeserver implementation of a server will not be able to be changed without data loss.
matrix_homeserver_implementation: synapse
# This contains a secret, which is used for generating various other secrets later on.

View File

@ -163,7 +163,7 @@ matrix_bot_go_neb_storage_database: "{{
# The access tokens that the bot uses to authenticate.
# Generate one as described in
# https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/docs/configuring-playbook-dimension.md#access-token
# via curl. With the element method, you might run into decryption problems (see https://github.com/matrix-org/go-neb#quick-start)
# via curl. With the Element method, you might run into decryption problems (see https://github.com/matrix-org/go-neb#quick-start)
matrix_bot_go_neb_clients: []
# - UserID: "@goneb:{{ matrix_domain }}"
# AccessToken: "MDASDASJDIASDJASDAFGFRGER"

View File

@ -77,7 +77,7 @@ matrix_appservice_irc_ircService_servers: [] # noqa var-naming
# # networkId: "example"
# # URL to an icon used as the network icon whenever this network appear in
# # a network list. (Like in the riot room directory, for instance.)
# # a network list. (Like in the Riot room directory, for instance.)
# # icon: https://example.com/images/hash.png
# # The port to connect to. Optional.

View File

@ -161,7 +161,7 @@ matrix_static_files_file_matrix_client_property_m_tile_server_entries_enabled: f
# Controls the m.tile_server/map_style_url property in the /.well-known/matrix/client file
matrix_static_files_file_matrix_client_property_m_tile_server_map_style_url: ""
# Controls whether element related entries (io.element.e2ee) should be added to the client well-known.
# Controls whether Element related entries (io.element.e2ee) should be added to the client well-known.
# By default if any of the following change from their default this would be set to true:
# `matrix_static_files_file_matrix_client_property_io_element_e2ee_default`
# `matrix_static_files_file_matrix_client_property_io_element_e2ee_secure_backup_required`
@ -193,6 +193,16 @@ matrix_static_files_file_matrix_client_property_io_element_e2ee_secure_backup_se
# See: https://github.com/element-hq/element-web/blob/develop/docs/e2ee.md
matrix_static_files_file_matrix_client_property_io_element_e2ee_force_disable: false
# Controls whether `cc.etke.synapse-admin`-related entries should be added to the client well-known.
# By default, if there are entries in `matrix_static_files_file_matrix_client_property_cc_etke_synapse_admin`, we show them (by enabling this).
matrix_static_files_file_matrix_client_property_cc_etke_synapse_admin_enabled: "{{ matrix_static_files_file_matrix_client_property_cc_etke_synapse_admin | default({}) | dict2items | length > 0 }}"
# Controls the cc.etke.synapse-admin property in the /.well-known/matrix/client file.
# See `matrix_static_files_file_matrix_client_property_cc_etke_synapse_admin_entries_enabled`
matrix_static_files_file_matrix_client_property_cc_etke_synapse_admin: "{{ matrix_static_files_file_matrix_client_property_cc_etke_synapse_admin_auto | combine(matrix_static_files_file_matrix_client_property_cc_etke_synapse_admin_custom, recursive=True) }}"
matrix_static_files_file_matrix_client_property_cc_etke_synapse_admin_auto: {}
matrix_static_files_file_matrix_client_property_cc_etke_synapse_admin_custom: {}
# Default /.well-known/matrix/client configuration template which covers the generic use case.
# You can customize it by controlling the various variables inside it.
#

View File

@ -54,4 +54,7 @@
"default": {{ matrix_static_files_file_matrix_client_property_io_element_e2ee_default|to_json }}
}
{% endif %}
{% if matrix_static_files_file_matrix_client_property_cc_etke_synapse_admin_enabled %},
"cc.etke.synapse-admin": {{ matrix_static_files_file_matrix_client_property_cc_etke_synapse_admin | to_json }}
{% endif %}
}

View File

@ -146,7 +146,11 @@ matrix_synapse_admin_path_prefix: /synapse-admin
#
# The side-effect of this lookup is that Ansible would even parse the JSON for us, returning a dict.
# This is unlike what it does when looking up YAML template files (no automatic parsing there).
matrix_synapse_admin_configuration_default: "{{ lookup('template', 'templates/config.json.j2') }}"
matrix_synapse_admin_configuration_default:
restrictBaseUrl: "{{ matrix_synapse_admin_config_restrictBaseUrl }}"
asManagedUsers: "{{ matrix_synapse_admin_config_asManagedUsers }}"
supportURL: "{{ matrix_synapse_admin_config_supportURL }}"
menu: "{{ matrix_synapse_admin_config_menu }}"
# Your custom JSON configuration for synapse-admin should go to `matrix_synapse_admin_configuration_extension_json`.
# This configuration extends the default starting configuration (`matrix_synapse_admin_configuration_default`).

View File

@ -1,6 +0,0 @@
{
"restrictBaseUrl": {{ matrix_synapse_admin_config_restrictBaseUrl | to_json }},
"asManagedUsers": {{ matrix_synapse_admin_config_asManagedUsers | to_json }},
"supportURL": {{ matrix_synapse_admin_config_supportURL | to_json }},
"menu": {{ matrix_synapse_admin_config_menu | to_json }},
}

View File

@ -272,8 +272,8 @@
- {'old': 'matrix_nginx_proxy_base_domain_homepage_enabled', 'new': 'matrix_static_files_file_index_html_enabled'}
- {'old': 'matrix_nginx_proxy_base_domain_homepage_template', 'new': 'matrix_static_files_file_index_html_template'}
- {'old': 'matrix_nginx_proxy_base_domain_create_directory', 'new': '<no longer necessary; see matrix_static_files_file_index_html_enabled>'}
- {'old': 'matrix_nginx_proxy_proxy_riot_compat_redirect_enabled', 'new': '<redirecting the riot domain to an element domain is no longer supported - you can implement it yourself using matrix_client_element_container_labels_additional_labels>'}
- {'old': 'matrix_nginx_proxy_proxy_riot_compat_redirect_hostname', 'new': '<redirecting the riot domain to an element domain is no longer supported - you can implement it yourself using matrix_client_element_container_labels_additional_labels>'}
- {'old': 'matrix_nginx_proxy_proxy_riot_compat_redirect_enabled', 'new': '<redirecting the Riot domain to an Element domain is no longer supported - you can implement it yourself using matrix_client_element_container_labels_additional_labels>'}
- {'old': 'matrix_nginx_proxy_proxy_riot_compat_redirect_hostname', 'new': '<redirecting the Riot domain to an Element domain is no longer supported - you can implement it yourself using matrix_client_element_container_labels_additional_labels>'}
- {'old': 'matrix_nginx_proxy_proxy_matrix_client_redirect_enabled', 'new': '<superseded by matrix_synapse_container_labels_public_client_root_redirection_enabled or other equivalent variables based on the homeserver implementation you use>'}
- {'old': 'matrix_nginx_proxy_proxy_matrix_client_redirect_root_uri_to_domain', 'new': '<superseded by matrix_synapse_container_labels_public_client_root_redirection_url or other equivalent variables based on the homeserver implementation you use>'}
- {'old': 'matrix_nginx_proxy_proxy_matrix_client_api_forwarded_location_synapse_client_api_enabled', 'new': 'matrix_synapse_container_labels_public_client_synapse_client_api_enabled'}