@ -28,7 +28,7 @@
# connection can be idle in seconds - a negative value is unlimited.
# connection can be idle in seconds - a negative value is unlimited.
# The version of the configuration file.
# The version of the configuration file.
version: 1
version: 2
# Global Matrix configuration. This configuration applies to all components.
# Global Matrix configuration. This configuration applies to all components.
global:
global:
@ -66,34 +66,40 @@ global:
# to other servers and the federation API will not be exposed.
# to other servers and the federation API will not be exposed.
disable_federation: {{ (not matrix_dendrite_federation_enabled)|to_json }}
disable_federation: {{ (not matrix_dendrite_federation_enabled)|to_json }}
# Configuration for Kafka/Naffka.
# Server notices allows server admins to send messages to all users.
kafka:
server_notices:
# List of Kafka broker addresses to connect to. This is not needed if using
enabled: false
# Naffka in monolith mode.
# The server localpart to be used when sending notices, ensure this is not yet taken
addresses: []
local_part: "_server"
# The displayname to be used when sending notices
# The prefix to use for Kafka topic names for this homeserver. Change this only if
display_name: "Server alerts"
# you are running more than one Dendrite homeserver on the same Kafka deployment.
# The mxid of the avatar to use
avatar_url: ""
# The roomname to be used when creating messages
room_name: "Server Alerts"
# Configuration for NATS JetStream
jetstream:
# A list of NATS Server addresses to connect to. If none are specified, an
# internal NATS server will be started automatically when running Dendrite
# in monolith mode. It is required to specify the address of at least one
# NATS Server node if running in polylith mode.
addresses:
# - jetstream:4222
# Keep all NATS streams in memory, rather than persisting it to the storage
# path below. This option is present primarily for integration testing and
# should not be used on a real world Dendrite deployment.
in_memory: false
# Persistent directory to store JetStream streams in. This directory
# should be preserved across Dendrite restarts.
storage_path: "/matrix-nats-store"
# The prefix to use for stream names for this homeserver - really only
# useful if running more than one Dendrite on the same NATS deployment.
topic_prefix: Dendrite
topic_prefix: Dendrite
# Whether to use Naffka instead of Kafka. This is only available in monolith
# mode, but means that you can run a single-process server without requiring
# Kafka.
use_naffka: true
# The max size a Kafka message is allowed to use.
# You only need to change this value, if you encounter issues with too large messages.
# Must be less than/equal to "max.message.bytes" configured in Kafka.
# Defaults to 8388608 bytes.
# max_message_bytes: 8388608
# Naffka database options. Not required when using Kafka.
naffka_database:
connection_string: {{ matrix_dendrite_database_str }}/{{ matrix_dendrite_naffka_database }}?sslmode=disable
max_open_conns: 10
max_idle_conns: 2
conn_max_lifetime: -1
# Configuration for Prometheus metric collection.
# Configuration for Prometheus metric collection.
metrics:
metrics:
# Whether or not Prometheus metrics are enabled.
# Whether or not Prometheus metrics are enabled.
@ -126,11 +132,6 @@ app_service_api:
max_idle_conns: 2
max_idle_conns: 2
conn_max_lifetime: -1
conn_max_lifetime: -1
# Disable the validation of TLS certificates of appservices. This is
# not recommended in production since it may allow appservice traffic
# to be sent to an unverified endpoint.
disable_tls_validation: false
# Appservice configuration files to load into this homeserver.
# Appservice configuration files to load into this homeserver.
config_files: {{ matrix_dendrite_app_service_config_files|to_json }}
config_files: {{ matrix_dendrite_app_service_config_files|to_json }}
@ -146,6 +147,10 @@ client_api:
# using the registration shared secret below.
# using the registration shared secret below.
registration_disabled: {{ matrix_dendrite_registration_disabled|to_json }}
registration_disabled: {{ matrix_dendrite_registration_disabled|to_json }}
# Prevents new guest accounts from being created. Guest registration is also
# disabled implicitly by setting 'registration_disabled' above.
guests_disabled: true
# If set, allows registration by anyone who knows the shared secret, regardless of
# If set, allows registration by anyone who knows the shared secret, regardless of
# whether registration is otherwise disabled.
# whether registration is otherwise disabled.
registration_shared_secret: {{ matrix_dendrite_registration_shared_secret|string|to_json }}
registration_shared_secret: {{ matrix_dendrite_registration_shared_secret|string|to_json }}
@ -175,12 +180,6 @@ client_api:
threshold: {{ matrix_dendrite_rate_limiting_threshold|to_json }}
threshold: {{ matrix_dendrite_rate_limiting_threshold|to_json }}
cooloff_ms: {{ matrix_dendrite_rate_limiting_cooloff_ms|to_json }}
cooloff_ms: {{ matrix_dendrite_rate_limiting_cooloff_ms|to_json }}
# Configuration for the EDU server.
edu_server:
internal_api:
listen: http://0.0.0.0:7778
connect: http://edu_server:7778
# Configuration for the Federation API.
# Configuration for the Federation API.
federation_api:
federation_api:
internal_api:
internal_api:
@ -188,20 +187,8 @@ federation_api:
connect: http://federation_api:7772
connect: http://federation_api:7772
external_api:
external_api:
listen: http://0.0.0.0:8072
listen: http://0.0.0.0:8072
# List of paths to X.509 certificates to be used by the external federation listeners.
# These certificates will be used to calculate the TLS fingerprints and other servers
# will expect the certificate to match these fingerprints. Certificates must be in PEM
# format.
federation_certificates: []
# Configuration for the Federation Sender.
federation_sender:
internal_api:
listen: http://0.0.0.0:7775
connect: http://federation_sender:7775
database:
database:
connection_string: {{ matrix_dendrite_database_str }}/{{ matrix_dendrite_federationsender _database }}?sslmode=disable
connection_string: {{ matrix_dendrite_database_str }}/{{ matrix_dendrite_federationapi_database }}?sslmode=disable
max_open_conns: 10
max_open_conns: 10
max_idle_conns: 2
max_idle_conns: 2
conn_max_lifetime: -1
conn_max_lifetime: -1
@ -221,6 +208,22 @@ federation_sender:
host: localhost
host: localhost
port: 8080
port: 8080
# Perspective keyservers to use as a backup when direct key fetches fail. This may
# be required to satisfy key requests for servers that are no longer online when
# joining some rooms.
key_perspectives:
- server_name: matrix.org
keys:
- key_id: ed25519:auto
public_key: Noi6WqcDj0QmPxCNQqgezwTlBKrfqehY1u2FyWP9uYw
- key_id: ed25519:a_RXGa
public_key: l8Hft5qXKn1vfHrg3p4+W8gELQVo8N13JkluMfmn2sQ
# This option will control whether Dendrite will prefer to look up keys directly
# or whether it should try perspective servers first, using direct fetches as a
# last resort.
prefer_direct_fetch: false
# Configuration for the Key Server (for end-to-end encryption).
# Configuration for the Key Server (for end-to-end encryption).
key_server:
key_server:
internal_api:
internal_api:
@ -295,33 +298,6 @@ room_server:
max_idle_conns: 2
max_idle_conns: 2
conn_max_lifetime: -1
conn_max_lifetime: -1
# Configuration for the Signing Key Server (for server signing keys).
signing_key_server:
internal_api:
listen: http://0.0.0.0:7780
connect: http://signing_key_server:7780
database:
connection_string: {{ matrix_dendrite_database_str }}/{{ matrix_dendrite_singingkeyserver_database }}?sslmode=disable
max_open_conns: 10
max_idle_conns: 2
conn_max_lifetime: -1
# Perspective keyservers to use as a backup when direct key fetches fail. This may
# be required to satisfy key requests for servers that are no longer online when
# joining some rooms.
key_perspectives:
- server_name: matrix.org
keys:
- key_id: ed25519:auto
public_key: Noi6WqcDj0QmPxCNQqgezwTlBKrfqehY1u2FyWP9uYw
- key_id: ed25519:a_RXGa
public_key: l8Hft5qXKn1vfHrg3p4+W8gELQVo8N13JkluMfmn2sQ
# This option will control whether Dendrite will prefer to look up keys directly
# or whether it should try perspective servers first, using direct fetches as a
# last resort.
prefer_direct_fetch: false
# Configuration for the Sync API.
# Configuration for the Sync API.
sync_api:
sync_api:
internal_api:
internal_api:
@ -343,31 +319,25 @@ sync_api:
# Configuration for the User API.
# Configuration for the User API.
user_api:
user_api:
# The cost when hashing passwords on registration/login. Default: 10. Min: 4, Max: 31
# See https://pkg.go.dev/golang.org/x/crypto/bcrypt for more information.
# Setting this lower makes registration/login consume less CPU resources at the cost of security
# should the database be compromised. Setting this higher makes registration/login consume more
# CPU resources but makes it harder to brute force password hashes.
# This value can be low if performing tests or on embedded Dendrite instances (e.g WASM builds)
# bcrypt_cost: 10
internal_api:
internal_api:
listen: http://0.0.0.0:7781
listen: http://0.0.0.0:7781
connect: http://user_api:7781
connect: http://user_api:7781
account_database:
account_database:
connection_string: {{ matrix_dendrite_database_str }}/{{ matrix_dendrite_account _database }}?sslmode=disable
connection_string: {{ matrix_dendrite_database_str }}/{{ matrix_dendrite_userapi_database }}?sslmode=disable
max_open_conns: 10
max_open_conns: 10
max_idle_conns: 2
max_idle_conns: 2
conn_max_lifetime: -1
conn_max_lifetime: -1
device_database:
connection_string: {{ matrix_dendrite_database_str }}/{{ matrix_dendrite_device_database }}?sslmode=disable
# Configuration for the Push Server API.
push_server:
internal_api:
listen: http://localhost:7782
connect: http://localhost:7782
database:
connection_string: {{ matrix_dendrite_database_str }}/{{ matrix_dendrite_pushserver_database }}?sslmode=disable
max_open_conns: 10
max_open_conns: 10
max_idle_conns: 2
max_idle_conns: 2
conn_max_lifetime: -1
conn_max_lifetime: -1
# The length of time that a token issued for a relying party from
# /_matrix/client/r0/user/{userId}/openid/request_token endpoint
# is considered to be valid in milliseconds.
# The default lifetime is 3600000ms (60 minutes).
# openid_token_lifetime_ms: 3600000
# Configuration for Opentracing.
# Configuration for Opentracing.
# See https://github.com/matrix-org/dendrite/tree/master/docs/tracing for information on
# See https://github.com/matrix-org/dendrite/tree/master/docs/tracing for information on