|
|
|
@@ -320,22 +320,27 @@ listeners: |
|
|
|
# Used by phonehome stats to group together related servers. |
|
|
|
#server_context: context |
|
|
|
|
|
|
|
# Resource-constrained homeserver Settings |
|
|
|
# Resource-constrained homeserver settings |
|
|
|
# |
|
|
|
# If limit_remote_rooms.enabled is True, the room complexity will be |
|
|
|
# checked before a user joins a new remote room. If it is above |
|
|
|
# limit_remote_rooms.complexity, it will disallow joining or |
|
|
|
# instantly leave. |
|
|
|
# When this is enabled, the room "complexity" will be checked before a user |
|
|
|
# joins a new remote room. If it is above the complexity limit, the server will |
|
|
|
# disallow joining, or will instantly leave. |
|
|
|
# |
|
|
|
# limit_remote_rooms.complexity_error can be set to customise the text |
|
|
|
# displayed to the user when a room above the complexity threshold has |
|
|
|
# its join cancelled. |
|
|
|
# Room complexity is an arbitrary measure based on factors such as the number of |
|
|
|
# users in the room. |
|
|
|
# |
|
|
|
# Uncomment the below lines to enable: |
|
|
|
#limit_remote_rooms: |
|
|
|
# enabled: True |
|
|
|
# complexity: 1.0 |
|
|
|
# complexity_error: "This room is too complex." |
|
|
|
limit_remote_rooms: |
|
|
|
# Uncomment to enable room complexity checking. |
|
|
|
# |
|
|
|
#enabled: true |
|
|
|
|
|
|
|
# the limit above which rooms cannot be joined. The default is 1.0. |
|
|
|
# |
|
|
|
#complexity: 0.5 |
|
|
|
|
|
|
|
# override the error which is returned when the room is too complex. |
|
|
|
# |
|
|
|
#complexity_error: "This room is too complex." |
|
|
|
|
|
|
|
# Whether to require a user to be in the room to add an alias to it. |
|
|
|
# Defaults to 'true'. |
|
|
|
@@ -605,6 +610,50 @@ acme: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Caching ## |
|
|
|
|
|
|
|
# Caching can be configured through the following options. |
|
|
|
# |
|
|
|
# A cache 'factor' is a multiplier that can be applied to each of |
|
|
|
# Synapse's caches in order to increase or decrease the maximum |
|
|
|
# number of entries that can be stored. |
|
|
|
|
|
|
|
# The number of events to cache in memory. Not affected by |
|
|
|
# caches.global_factor. |
|
|
|
# |
|
|
|
event_cache_size: "{{ matrix_synapse_event_cache_size }}" |
|
|
|
|
|
|
|
caches: |
|
|
|
# Controls the global cache factor, which is the default cache factor |
|
|
|
# for all caches if a specific factor for that cache is not otherwise |
|
|
|
# set. |
|
|
|
# |
|
|
|
# This can also be set by the "SYNAPSE_CACHE_FACTOR" environment |
|
|
|
# variable. Setting by environment variable takes priority over |
|
|
|
# setting through the config file. |
|
|
|
# |
|
|
|
# Defaults to 0.5, which will half the size of all caches. |
|
|
|
# |
|
|
|
global_factor: {{ matrix_synapse_caches_global_factor }} |
|
|
|
|
|
|
|
# A dictionary of cache name to cache factor for that individual |
|
|
|
# cache. Overrides the global cache factor for a given cache. |
|
|
|
# |
|
|
|
# These can also be set through environment variables comprised |
|
|
|
# of "SYNAPSE_CACHE_FACTOR_" + the name of the cache in capital |
|
|
|
# letters and underscores. Setting by environment variable |
|
|
|
# takes priority over setting through the config file. |
|
|
|
# Ex. SYNAPSE_CACHE_FACTOR_GET_USERS_WHO_SHARE_ROOM_WITH_USER=2.0 |
|
|
|
# |
|
|
|
# Some caches have '*' and other characters that are not |
|
|
|
# alphanumeric or underscores. These caches can be named with or |
|
|
|
# without the special characters stripped. For example, to specify |
|
|
|
# the cache factor for `*stateGroupCache*` via an environment |
|
|
|
# variable would be `SYNAPSE_CACHE_FACTOR_STATEGROUPCACHE=2.0`. |
|
|
|
# |
|
|
|
per_cache_factors: |
|
|
|
#get_users_who_share_room_with_user: 2.0 |
|
|
|
|
|
|
|
## Database ## |
|
|
|
|
|
|
|
database: |
|
|
|
@@ -618,10 +667,6 @@ database: |
|
|
|
cp_min: 5 |
|
|
|
cp_max: 10 |
|
|
|
|
|
|
|
# Number of events to cache in memory. |
|
|
|
# |
|
|
|
event_cache_size: "{{ matrix_synapse_event_cache_size }}" |
|
|
|
|
|
|
|
|
|
|
|
## Logging ## |
|
|
|
|
|
|
|
@@ -884,25 +929,28 @@ url_preview_accept_language: |
|
|
|
|
|
|
|
|
|
|
|
## Captcha ## |
|
|
|
# See docs/CAPTCHA_SETUP for full details of configuring this. |
|
|
|
# See docs/CAPTCHA_SETUP.md for full details of configuring this. |
|
|
|
|
|
|
|
# This homeserver's ReCAPTCHA public key. |
|
|
|
# This homeserver's ReCAPTCHA public key. Must be specified if |
|
|
|
# enable_registration_captcha is enabled. |
|
|
|
# |
|
|
|
#recaptcha_public_key: "YOUR_PUBLIC_KEY" |
|
|
|
|
|
|
|
# This homeserver's ReCAPTCHA private key. |
|
|
|
# This homeserver's ReCAPTCHA private key. Must be specified if |
|
|
|
# enable_registration_captcha is enabled. |
|
|
|
# |
|
|
|
#recaptcha_private_key: "YOUR_PRIVATE_KEY" |
|
|
|
|
|
|
|
# Enables ReCaptcha checks when registering, preventing signup |
|
|
|
# Uncomment to enable ReCaptcha checks when registering, preventing signup |
|
|
|
# unless a captcha is answered. Requires a valid ReCaptcha |
|
|
|
# public/private key. |
|
|
|
# public/private key. Defaults to 'false'. |
|
|
|
# |
|
|
|
#enable_registration_captcha: false |
|
|
|
#enable_registration_captcha: true |
|
|
|
|
|
|
|
# The API endpoint to use for verifying m.login.recaptcha responses. |
|
|
|
# Defaults to "https://www.recaptcha.net/recaptcha/api/siteverify". |
|
|
|
# |
|
|
|
#recaptcha_siteverify_api: "https://www.recaptcha.net/recaptcha/api/siteverify" |
|
|
|
#recaptcha_siteverify_api: "https://my.recaptcha.site" |
|
|
|
|
|
|
|
|
|
|
|
## TURN ## |
|
|
|
@@ -1182,6 +1230,7 @@ metrics_flags: |
|
|
|
#known_servers: true |
|
|
|
|
|
|
|
# Whether or not to report anonymized homeserver usage statistics. |
|
|
|
# |
|
|
|
report_stats: {{ matrix_synapse_report_stats|to_json }} |
|
|
|
|
|
|
|
# The endpoint to report the anonymized homeserver usage statistics to. |
|
|
|
@@ -1448,6 +1497,94 @@ saml2_config: |
|
|
|
#template_dir: "res/templates" |
|
|
|
|
|
|
|
|
|
|
|
# Enable OpenID Connect for registration and login. Uses authlib. |
|
|
|
# |
|
|
|
oidc_config: |
|
|
|
# enable OpenID Connect. Defaults to false. |
|
|
|
# |
|
|
|
#enabled: true |
|
|
|
|
|
|
|
# use the OIDC discovery mechanism to discover endpoints. Defaults to true. |
|
|
|
# |
|
|
|
#discover: true |
|
|
|
|
|
|
|
# the OIDC issuer. Used to validate tokens and discover the providers endpoints. Required. |
|
|
|
# |
|
|
|
#issuer: "https://accounts.example.com/" |
|
|
|
|
|
|
|
# oauth2 client id to use. Required. |
|
|
|
# |
|
|
|
#client_id: "provided-by-your-issuer" |
|
|
|
|
|
|
|
# oauth2 client secret to use. Required. |
|
|
|
# |
|
|
|
#client_secret: "provided-by-your-issuer" |
|
|
|
|
|
|
|
# auth method to use when exchanging the token. |
|
|
|
# Valid values are "client_secret_basic" (default), "client_secret_post" and "none". |
|
|
|
# |
|
|
|
#client_auth_method: "client_secret_basic" |
|
|
|
|
|
|
|
# list of scopes to ask. This should include the "openid" scope. Defaults to ["openid"]. |
|
|
|
# |
|
|
|
#scopes: ["openid"] |
|
|
|
|
|
|
|
# the oauth2 authorization endpoint. Required if provider discovery is disabled. |
|
|
|
# |
|
|
|
#authorization_endpoint: "https://accounts.example.com/oauth2/auth" |
|
|
|
|
|
|
|
# the oauth2 token endpoint. Required if provider discovery is disabled. |
|
|
|
# |
|
|
|
#token_endpoint: "https://accounts.example.com/oauth2/token" |
|
|
|
|
|
|
|
# the OIDC userinfo endpoint. Required if discovery is disabled and the "openid" scope is not asked. |
|
|
|
# |
|
|
|
#userinfo_endpoint: "https://accounts.example.com/userinfo" |
|
|
|
|
|
|
|
# URI where to fetch the JWKS. Required if discovery is disabled and the "openid" scope is used. |
|
|
|
# |
|
|
|
#jwks_uri: "https://accounts.example.com/.well-known/jwks.json" |
|
|
|
|
|
|
|
# skip metadata verification. Defaults to false. |
|
|
|
# Use this if you are connecting to a provider that is not OpenID Connect compliant. |
|
|
|
# Avoid this in production. |
|
|
|
# |
|
|
|
#skip_verification: false |
|
|
|
|
|
|
|
|
|
|
|
# An external module can be provided here as a custom solution to mapping |
|
|
|
# attributes returned from a OIDC provider onto a matrix user. |
|
|
|
# |
|
|
|
user_mapping_provider: |
|
|
|
# The custom module's class. Uncomment to use a custom module. |
|
|
|
# Default is 'synapse.handlers.oidc_handler.JinjaOidcMappingProvider'. |
|
|
|
# |
|
|
|
#module: mapping_provider.OidcMappingProvider |
|
|
|
|
|
|
|
# Custom configuration values for the module. Below options are intended |
|
|
|
# for the built-in provider, they should be changed if using a custom |
|
|
|
# module. This section will be passed as a Python dictionary to the |
|
|
|
# module's `parse_config` method. |
|
|
|
# |
|
|
|
# Below is the config of the default mapping provider, based on Jinja2 |
|
|
|
# templates. Those templates are used to render user attributes, where the |
|
|
|
# userinfo object is available through the `user` variable. |
|
|
|
# |
|
|
|
config: |
|
|
|
# name of the claim containing a unique identifier for the user. |
|
|
|
# Defaults to `sub`, which OpenID Connect compliant providers should provide. |
|
|
|
# |
|
|
|
#subject_claim: "sub" |
|
|
|
|
|
|
|
# Jinja2 template for the localpart of the MXID |
|
|
|
# |
|
|
|
localpart_template: "{% raw %}{{ user.preferred_username }}{% endraw %}" |
|
|
|
|
|
|
|
# Jinja2 template for the display name to set on first login. Optional. |
|
|
|
# |
|
|
|
#display_name_template: "{% raw %}{{ user.given_name }} {{ user.last_name }}{% endraw %}" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Enable CAS for registration and login. |
|
|
|
# |
|
|
|
@@ -1455,10 +1592,96 @@ saml2_config: |
|
|
|
# enabled: true |
|
|
|
# server_url: "https://cas-server.com" |
|
|
|
# service_url: "https://homeserver.domain.com:8448" |
|
|
|
# #displayname_attribute: name |
|
|
|
# #required_attributes: |
|
|
|
# # name: value |
|
|
|
|
|
|
|
|
|
|
|
# Additional settings to use with single-sign on systems such as SAML2 and CAS. |
|
|
|
# |
|
|
|
sso: |
|
|
|
# A list of client URLs which are whitelisted so that the user does not |
|
|
|
# have to confirm giving access to their account to the URL. Any client |
|
|
|
# whose URL starts with an entry in the following list will not be subject |
|
|
|
# to an additional confirmation step after the SSO login is completed. |
|
|
|
# |
|
|
|
# WARNING: An entry such as "https://my.client" is insecure, because it |
|
|
|
# will also match "https://my.client.evil.site", exposing your users to |
|
|
|
# phishing attacks from evil.site. To avoid this, include a slash after the |
|
|
|
# hostname: "https://my.client/". |
|
|
|
# |
|
|
|
# If public_baseurl is set, then the login fallback page (used by clients |
|
|
|
# that don't natively support the required login flows) is whitelisted in |
|
|
|
# addition to any URLs in this list. |
|
|
|
# |
|
|
|
# By default, this list is empty. |
|
|
|
# |
|
|
|
#client_whitelist: |
|
|
|
# - https://riot.im/develop |
|
|
|
# - https://my.custom.client/ |
|
|
|
|
|
|
|
# Directory in which Synapse will try to find the template files below. |
|
|
|
# If not set, default templates from within the Synapse package will be used. |
|
|
|
# |
|
|
|
# DO NOT UNCOMMENT THIS SETTING unless you want to customise the templates. |
|
|
|
# If you *do* uncomment it, you will need to make sure that all the templates |
|
|
|
# below are in the directory. |
|
|
|
# |
|
|
|
# Synapse will look for the following templates in this directory: |
|
|
|
# |
|
|
|
# * HTML page for a confirmation step before redirecting back to the client |
|
|
|
# with the login token: 'sso_redirect_confirm.html'. |
|
|
|
# |
|
|
|
# When rendering, this template is given three variables: |
|
|
|
# * redirect_url: the URL the user is about to be redirected to. Needs |
|
|
|
# manual escaping (see |
|
|
|
# https://jinja.palletsprojects.com/en/2.11.x/templates/#html-escaping). |
|
|
|
# |
|
|
|
# * display_url: the same as `redirect_url`, but with the query |
|
|
|
# parameters stripped. The intention is to have a |
|
|
|
# human-readable URL to show to users, not to use it as |
|
|
|
# the final address to redirect to. Needs manual escaping |
|
|
|
# (see https://jinja.palletsprojects.com/en/2.11.x/templates/#html-escaping). |
|
|
|
# |
|
|
|
# * server_name: the homeserver's name. |
|
|
|
# |
|
|
|
# * HTML page which notifies the user that they are authenticating to confirm |
|
|
|
# an operation on their account during the user interactive authentication |
|
|
|
# process: 'sso_auth_confirm.html'. |
|
|
|
# |
|
|
|
# When rendering, this template is given the following variables: |
|
|
|
# * redirect_url: the URL the user is about to be redirected to. Needs |
|
|
|
# manual escaping (see |
|
|
|
# https://jinja.palletsprojects.com/en/2.11.x/templates/#html-escaping). |
|
|
|
# |
|
|
|
# * description: the operation which the user is being asked to confirm |
|
|
|
# |
|
|
|
# * HTML page shown after a successful user interactive authentication session: |
|
|
|
# 'sso_auth_success.html'. |
|
|
|
# |
|
|
|
# Note that this page must include the JavaScript which notifies of a successful authentication |
|
|
|
# (see https://matrix.org/docs/spec/client_server/r0.6.0#fallback). |
|
|
|
# |
|
|
|
# This template has no additional variables. |
|
|
|
# |
|
|
|
# * HTML page shown during single sign-on if a deactivated user (according to Synapse's database) |
|
|
|
# attempts to login: 'sso_account_deactivated.html'. |
|
|
|
# |
|
|
|
# This template has no additional variables. |
|
|
|
# |
|
|
|
# * HTML page to display to users if something goes wrong during the |
|
|
|
# OpenID Connect authentication process: 'sso_error.html'. |
|
|
|
# |
|
|
|
# When rendering, this template is given two variables: |
|
|
|
# * error: the technical name of the error |
|
|
|
# * error_description: a human-readable message for the error |
|
|
|
# |
|
|
|
# You can see the default templates at: |
|
|
|
# https://github.com/matrix-org/synapse/tree/master/synapse/res/templates |
|
|
|
# |
|
|
|
#template_dir: "res/templates" |
|
|
|
|
|
|
|
|
|
|
|
# The JWT needs to contain a globally unique "sub" (subject) claim. |
|
|
|
# |
|
|
|
#jwt_config: |
|
|
|
@@ -1501,8 +1724,8 @@ email: |
|
|
|
# Username/password for authentication to the SMTP server. By default, no |
|
|
|
# authentication is attempted. |
|
|
|
# |
|
|
|
# smtp_user: "exampleusername" |
|
|
|
# smtp_pass: "examplepassword" |
|
|
|
#smtp_user: "exampleusername" |
|
|
|
#smtp_pass: "examplepassword" |
|
|
|
|
|
|
|
# Uncomment the following to require TLS transport security for SMTP. |
|
|
|
# By default, Synapse will connect over plain text, and will then switch to |
|
|
|
@@ -1681,10 +1904,17 @@ push: |
|
|
|
include_content: {{ matrix_synapse_push_include_content|to_json }} |
|
|
|
|
|
|
|
|
|
|
|
#spam_checker: |
|
|
|
# module: "my_custom_project.SuperSpamChecker" |
|
|
|
# config: |
|
|
|
# example_option: 'things' |
|
|
|
# Spam checkers are third-party modules that can block specific actions |
|
|
|
# of local users, such as creating rooms and registering undesirable |
|
|
|
# usernames, as well as remote users by redacting incoming events. |
|
|
|
# |
|
|
|
# spam_checker: |
|
|
|
#- module: "my_custom_project.SuperSpamChecker" |
|
|
|
# config: |
|
|
|
# example_option: 'things' |
|
|
|
#- module: "some_other_project.BadEventStopper" |
|
|
|
# config: |
|
|
|
# example_stop_events_from: ['@bad:example.com'] |
|
|
|
spam_checker: {{ matrix_synapse_spam_checker|to_json }} |
|
|
|
|
|
|
|
# Uncomment to allow non-server-admin users to create groups on this server |
|
|
|
|