1383 lines
47 KiB
TOML
1383 lines
47 KiB
TOML
### conduwuit Configuration
|
|
###
|
|
### THIS FILE IS GENERATED. CHANGES/CONTRIBUTIONS IN THE REPO WILL
|
|
### BE OVERWRITTEN!
|
|
###
|
|
### You should rename this file before configuring your server. Changes
|
|
### to documentation and defaults can be contributed in source code at
|
|
### src/core/config/mod.rs. This file is generated when building.
|
|
###
|
|
### Any values pre-populated are the default values for said config option.
|
|
###
|
|
### At the minimum, you MUST edit all the config options to your environment
|
|
### that say "YOU NEED TO EDIT THIS".
|
|
### See https://conduwuit.puppyirl.gay/configuration.html for ways to
|
|
### configure conduwuit
|
|
|
|
[global]
|
|
|
|
# The server_name is the pretty name of this server. It is used as a
|
|
# suffix for user and room IDs/aliases.
|
|
#
|
|
# See the docs for reverse proxying and delegation: https://conduwuit.puppyirl.gay/deploying/generic.html#setting-up-the-reverse-proxy
|
|
# Also see the `[global.well_known]` config section at the very bottom.
|
|
#
|
|
# Examples of delegation:
|
|
# - https://puppygock.gay/.well-known/matrix/server
|
|
# - https://puppygock.gay/.well-known/matrix/client
|
|
#
|
|
# YOU NEED TO EDIT THIS. THIS CANNOT BE CHANGED AFTER WITHOUT A DATABASE
|
|
# WIPE.
|
|
#
|
|
# example: "conduwuit.woof"
|
|
#
|
|
#server_name =
|
|
|
|
# default address (IPv4 or IPv6) conduwuit will listen on.
|
|
#
|
|
# If you are using Docker or a container NAT networking setup, this must
|
|
# be "0.0.0.0".
|
|
#
|
|
# To listen on multiple addresses, specify a vector e.g. ["127.0.0.1",
|
|
# "::1"]
|
|
#
|
|
#address = ["127.0.0.1", "::1"]
|
|
|
|
# The port(s) conduwuit will be running on.
|
|
#
|
|
# See https://conduwuit.puppyirl.gay/deploying/generic.html#setting-up-the-reverse-proxy for reverse proxying.
|
|
#
|
|
# Docker users: Don't change this, you'll need to map an external port to
|
|
# this.
|
|
#
|
|
# To listen on multiple ports, specify a vector e.g. [8080, 8448]
|
|
#
|
|
#port = 8008
|
|
|
|
# Uncomment unix_socket_path to listen on a UNIX socket at the specified
|
|
# path. If listening on a UNIX socket, you MUST remove/comment the
|
|
# 'address' key if definedm AND add your reverse proxy to the 'conduwuit'
|
|
# group, unless world RW permissions are specified with unix_socket_perms
|
|
# (666 minimum).
|
|
#
|
|
# example: "/run/conduwuit/conduwuit.sock"
|
|
#
|
|
#unix_socket_path =
|
|
|
|
# The default permissions (in octal) to create the UNIX socket with.
|
|
#
|
|
#unix_socket_perms = 660
|
|
|
|
# This is the only directory where conduwuit will save its data, including
|
|
# media.
|
|
# Note: this was previously "/var/lib/matrix-conduit"
|
|
#
|
|
# YOU NEED TO EDIT THIS.
|
|
#
|
|
# example: "/var/lib/conduwuit"
|
|
#
|
|
#database_path =
|
|
|
|
# conduwuit supports online database backups using RocksDB's Backup engine
|
|
# API. To use this, set a database backup path that conduwuit can write
|
|
# to.
|
|
#
|
|
# See https://conduwuit.puppyirl.gay/maintenance.html#backups for more information.
|
|
#
|
|
# example: "/opt/conduwuit-db-backups"
|
|
#
|
|
#database_backup_path =
|
|
|
|
# The amount of online RocksDB database backups to keep/retain, if using
|
|
# "database_backup_path", before deleting the oldest one.
|
|
#
|
|
#database_backups_to_keep = 1
|
|
|
|
# Set this to any float value in megabytes for conduwuit to tell the
|
|
# database engine that this much memory is available for database-related
|
|
# caches.
|
|
#
|
|
# May be useful if you have significant memory to spare to increase
|
|
# performance.
|
|
#
|
|
# Similar to the individual LRU caches, this is scaled up with your CPU
|
|
# core count.
|
|
#
|
|
# This defaults to 128.0 + (64.0 * CPU core count)
|
|
#
|
|
#db_cache_capacity_mb =
|
|
|
|
# Option to control adding arbitrary text to the end of the user's
|
|
# displayname upon registration with a space before the text. This was the
|
|
# lightning bolt emoji option, just replaced with support for adding your
|
|
# own custom text or emojis. To disable, set this to "" (an empty string).
|
|
#
|
|
# The default is the trans pride flag.
|
|
#
|
|
# example: "🏳️⚧️"
|
|
#
|
|
#new_user_displayname_suffix = "🏳️⚧️"
|
|
|
|
# If enabled, conduwuit will send a simple GET request periodically to
|
|
# `https://pupbrain.dev/check-for-updates/stable` for any new
|
|
# announcements made. Despite the name, this is not an update check
|
|
# endpoint, it is simply an announcement check endpoint.
|
|
#
|
|
# This is disabled by default as this is rarely used except for security
|
|
# updates or major updates.
|
|
#
|
|
#allow_check_for_updates = false
|
|
|
|
# Set this to any float value to multiply conduwuit's in-memory LRU caches
|
|
# with such as "auth_chain_cache_capacity".
|
|
#
|
|
# May be useful if you have significant memory to spare to increase
|
|
# performance. This was previously called
|
|
# `conduit_cache_capacity_modifier`.
|
|
#
|
|
# If you have low memory, reducing this may be viable.
|
|
#
|
|
# By default, the individual caches such as "auth_chain_cache_capacity"
|
|
# are scaled by your CPU core count.
|
|
#
|
|
#cache_capacity_modifier = 1.0
|
|
|
|
# This item is undocumented. Please contribute documentation for it.
|
|
#
|
|
#pdu_cache_capacity = varies by system
|
|
|
|
# This item is undocumented. Please contribute documentation for it.
|
|
#
|
|
#auth_chain_cache_capacity = varies by system
|
|
|
|
# This item is undocumented. Please contribute documentation for it.
|
|
#
|
|
#shorteventid_cache_capacity = varies by system
|
|
|
|
# This item is undocumented. Please contribute documentation for it.
|
|
#
|
|
#eventidshort_cache_capacity = varies by system
|
|
|
|
# This item is undocumented. Please contribute documentation for it.
|
|
#
|
|
#shortstatekey_cache_capacity = varies by system
|
|
|
|
# This item is undocumented. Please contribute documentation for it.
|
|
#
|
|
#statekeyshort_cache_capacity = varies by system
|
|
|
|
# This item is undocumented. Please contribute documentation for it.
|
|
#
|
|
#server_visibility_cache_capacity = varies by system
|
|
|
|
# This item is undocumented. Please contribute documentation for it.
|
|
#
|
|
#user_visibility_cache_capacity = varies by system
|
|
|
|
# This item is undocumented. Please contribute documentation for it.
|
|
#
|
|
#stateinfo_cache_capacity = varies by system
|
|
|
|
# This item is undocumented. Please contribute documentation for it.
|
|
#
|
|
#roomid_spacehierarchy_cache_capacity = varies by system
|
|
|
|
# Maximum entries stored in DNS memory-cache. The size of an entry may
|
|
# vary so please take care if raising this value excessively. Only
|
|
# decrease this when using an external DNS cache. Please note
|
|
# that systemd-resolved does *not* count as an external cache, even when
|
|
# configured to do so.
|
|
#
|
|
#dns_cache_entries = 32768
|
|
|
|
# Minimum time-to-live in seconds for entries in the DNS cache. The
|
|
# default may appear high to most administrators; this is by design as the
|
|
# majority of NXDOMAINs are correct for a long time (e.g. the server is no
|
|
# longer running Matrix). Only decrease this if you are using an external
|
|
# DNS cache.
|
|
#
|
|
# default_dns_min_ttl: 259200
|
|
#
|
|
#dns_min_ttl =
|
|
|
|
# Minimum time-to-live in seconds for NXDOMAIN entries in the DNS cache.
|
|
# This value is critical for the server to federate efficiently.
|
|
# NXDOMAIN's are assumed to not be returning to the federation
|
|
# and aggressively cached rather than constantly rechecked.
|
|
#
|
|
# Defaults to 3 days as these are *very rarely* false negatives.
|
|
#
|
|
#dns_min_ttl_nxdomain = 259200
|
|
|
|
# Number of retries after a timeout.
|
|
#
|
|
#dns_attempts = 10
|
|
|
|
# The number of seconds to wait for a reply to a DNS query. Please note
|
|
# that recursive queries can take up to several seconds for some domains,
|
|
# so this value should not be too low, especially on slower hardware or
|
|
# resolvers.
|
|
#
|
|
#dns_timeout = 10
|
|
|
|
# Fallback to TCP on DNS errors. Set this to false if unsupported by
|
|
# nameserver.
|
|
#
|
|
#dns_tcp_fallback = true
|
|
|
|
# Enable to query all nameservers until the domain is found. Referred to
|
|
# as "trust_negative_responses" in hickory_resolver. This can avoid
|
|
# useless DNS queries if the first nameserver responds with NXDOMAIN or
|
|
# an empty NOERROR response.
|
|
#
|
|
#query_all_nameservers = true
|
|
|
|
# Enables using *only* TCP for querying your specified nameservers instead
|
|
# of UDP.
|
|
#
|
|
# If you are running conduwuit in a container environment, this config option may need to be enabled. See https://conduwuit.puppyirl.gay/troubleshooting.html#potential-dns-issues-when-using-docker for more details.
|
|
#
|
|
#query_over_tcp_only = false
|
|
|
|
# DNS A/AAAA record lookup strategy
|
|
#
|
|
# Takes a number of one of the following options:
|
|
# 1 - Ipv4Only (Only query for A records, no AAAA/IPv6)
|
|
#
|
|
# 2 - Ipv6Only (Only query for AAAA records, no A/IPv4)
|
|
#
|
|
# 3 - Ipv4AndIpv6 (Query for A and AAAA records in parallel, uses whatever
|
|
# returns a successful response first)
|
|
#
|
|
# 4 - Ipv6thenIpv4 (Query for AAAA record, if that fails then query the A
|
|
# record)
|
|
#
|
|
# 5 - Ipv4thenIpv6 (Query for A record, if that fails then query the AAAA
|
|
# record)
|
|
#
|
|
# If you don't have IPv6 networking, then for better DNS performance it
|
|
# may be suitable to set this to Ipv4Only (1) as you will never ever use
|
|
# the AAAA record contents even if the AAAA record is successful instead
|
|
# of the A record.
|
|
#
|
|
#ip_lookup_strategy = 5
|
|
|
|
# Max request size for file uploads in bytes. Defaults to 20MB.
|
|
#
|
|
#max_request_size = 20971520
|
|
|
|
# This item is undocumented. Please contribute documentation for it.
|
|
#
|
|
#max_fetch_prev_events = 192
|
|
|
|
# Default/base connection timeout (seconds). This is used only by URL
|
|
# previews and update/news endpoint checks.
|
|
#
|
|
#request_conn_timeout = 10
|
|
|
|
# Default/base request timeout (seconds). The time waiting to receive more
|
|
# data from another server. This is used only by URL previews,
|
|
# update/news, and misc endpoint checks.
|
|
#
|
|
#request_timeout = 35
|
|
|
|
# Default/base request total timeout (seconds). The time limit for a whole
|
|
# request. This is set very high to not cancel healthy requests while
|
|
# serving as a backstop. This is used only by URL previews and
|
|
# update/news endpoint checks.
|
|
#
|
|
#request_total_timeout = 320
|
|
|
|
# Default/base idle connection pool timeout (seconds). This is used only
|
|
# by URL previews and update/news endpoint checks.
|
|
#
|
|
#request_idle_timeout = 5
|
|
|
|
# Default/base max idle connections per host. This is used only by URL
|
|
# previews and update/news endpoint checks. Defaults to 1 as generally the
|
|
# same open connection can be re-used.
|
|
#
|
|
#request_idle_per_host = 1
|
|
|
|
# Federation well-known resolution connection timeout (seconds)
|
|
#
|
|
#well_known_conn_timeout = 6
|
|
|
|
# Federation HTTP well-known resolution request timeout (seconds)
|
|
#
|
|
#well_known_timeout = 10
|
|
|
|
# Federation client request timeout (seconds). You most definitely want
|
|
# this to be high to account for extremely large room joins, slow
|
|
# homeservers, your own resources etc.
|
|
#
|
|
#federation_timeout = 300
|
|
|
|
# Federation client idle connection pool timeout (seconds)
|
|
#
|
|
#federation_idle_timeout = 25
|
|
|
|
# Federation client max idle connections per host. Defaults to 1 as
|
|
# generally the same open connection can be re-used
|
|
#
|
|
#federation_idle_per_host = 1
|
|
|
|
# Federation sender request timeout (seconds). The time it takes for the
|
|
# remote server to process sent transactions can take a while.
|
|
#
|
|
#sender_timeout = 180
|
|
|
|
# Federation sender idle connection pool timeout (seconds)
|
|
#
|
|
#sender_idle_timeout = 180
|
|
|
|
# Federation sender transaction retry backoff limit (seconds)
|
|
#
|
|
#sender_retry_backoff_limit = 86400
|
|
|
|
# Appservice URL request connection timeout. Defaults to 35 seconds as
|
|
# generally appservices are hosted within the same network.
|
|
#
|
|
#appservice_timeout = 35
|
|
|
|
# Appservice URL idle connection pool timeout (seconds)
|
|
#
|
|
#appservice_idle_timeout = 300
|
|
|
|
# Notification gateway pusher idle connection pool timeout
|
|
#
|
|
#pusher_idle_timeout = 15
|
|
|
|
# Enables registration. If set to false, no users can register on this
|
|
# server.
|
|
#
|
|
# If set to true without a token configured, users can register with no
|
|
# form of 2nd-step only if you set
|
|
# `yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse` to
|
|
# true in your config.
|
|
#
|
|
# If you would like registration only via token reg, please configure
|
|
# `registration_token` or `registration_token_file`.
|
|
#
|
|
#allow_registration = false
|
|
|
|
# This item is undocumented. Please contribute documentation for it.
|
|
#
|
|
#yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse = false
|
|
|
|
# A static registration token that new users will have to provide when
|
|
# creating an account. If unset and `allow_registration` is true,
|
|
# registration is open without any condition.
|
|
#
|
|
# YOU NEED TO EDIT THIS OR USE registration_token_file.
|
|
#
|
|
# example: "o&^uCtes4HPf0Vu@F20jQeeWE7"
|
|
#
|
|
#registration_token =
|
|
|
|
# Path to a file on the system that gets read for the registration token.
|
|
# this config option takes precedence/priority over "registration_token".
|
|
#
|
|
# conduwuit must be able to access the file, and it must not be empty
|
|
#
|
|
# example: "/etc/conduwuit/.reg_token"
|
|
#
|
|
#registration_token_file =
|
|
|
|
# Controls whether encrypted rooms and events are allowed.
|
|
#
|
|
#allow_encryption = true
|
|
|
|
# Controls whether federation is allowed or not. It is not recommended to
|
|
# disable this after the fact due to potential federation breakage.
|
|
#
|
|
#allow_federation = true
|
|
|
|
# This item is undocumented. Please contribute documentation for it.
|
|
#
|
|
#federation_loopback = false
|
|
|
|
# Set this to true to require authentication on the normally
|
|
# unauthenticated profile retrieval endpoints (GET)
|
|
# "/_matrix/client/v3/profile/{userId}".
|
|
#
|
|
# This can prevent profile scraping.
|
|
#
|
|
#require_auth_for_profile_requests = false
|
|
|
|
# Set this to true to allow your server's public room directory to be
|
|
# federated. Set this to false to protect against /publicRooms spiders,
|
|
# but will forbid external users from viewing your server's public room
|
|
# directory. If federation is disabled entirely (`allow_federation`),
|
|
# this is inherently false.
|
|
#
|
|
#allow_public_room_directory_over_federation = false
|
|
|
|
# Set this to true to allow your server's public room directory to be
|
|
# queried without client authentication (access token) through the Client
|
|
# APIs. Set this to false to protect against /publicRooms spiders.
|
|
#
|
|
#allow_public_room_directory_without_auth = false
|
|
|
|
# allow guests/unauthenticated users to access TURN credentials
|
|
#
|
|
# this is the equivalent of Synapse's `turn_allow_guests` config option.
|
|
# this allows any unauthenticated user to call the endpoint
|
|
# `/_matrix/client/v3/voip/turnServer`.
|
|
#
|
|
# It is unlikely you need to enable this as all major clients support
|
|
# authentication for this endpoint and prevents misuse of your TURN server
|
|
# from potential bots.
|
|
#
|
|
#turn_allow_guests = false
|
|
|
|
# Set this to true to lock down your server's public room directory and
|
|
# only allow admins to publish rooms to the room directory. Unpublishing
|
|
# is still allowed by all users with this enabled.
|
|
#
|
|
#lockdown_public_room_directory = false
|
|
|
|
# Set this to true to allow federating device display names / allow
|
|
# external users to see your device display name. If federation is
|
|
# disabled entirely (`allow_federation`), this is inherently false. For
|
|
# privacy reasons, this is best left disabled.
|
|
#
|
|
#allow_device_name_federation = false
|
|
|
|
# Config option to allow or disallow incoming federation requests that
|
|
# obtain the profiles of our local users from
|
|
# `/_matrix/federation/v1/query/profile`
|
|
#
|
|
# Increases privacy of your local user's such as display names, but some
|
|
# remote users may get a false "this user does not exist" error when they
|
|
# try to invite you to a DM or room. Also can protect against profile
|
|
# spiders.
|
|
#
|
|
# This is inherently false if `allow_federation` is disabled
|
|
#
|
|
#allow_inbound_profile_lookup_federation_requests = true
|
|
|
|
# controls whether standard users are allowed to create rooms. appservices
|
|
# and admins are always allowed to create rooms
|
|
#
|
|
#allow_room_creation = true
|
|
|
|
# Set to false to disable users from joining or creating room versions
|
|
# that aren't 100% officially supported by conduwuit.
|
|
#
|
|
# conduwuit officially supports room versions 6 - 11.
|
|
#
|
|
# conduwuit has slightly experimental (though works fine in practice)
|
|
# support for versions 3 - 5
|
|
#
|
|
#allow_unstable_room_versions = true
|
|
|
|
# default room version conduwuit will create rooms with.
|
|
#
|
|
# per spec, room version 10 is the default.
|
|
#
|
|
#default_room_version = 10
|
|
|
|
# This item is undocumented. Please contribute documentation for it.
|
|
#
|
|
#allow_jaeger = false
|
|
|
|
# This item is undocumented. Please contribute documentation for it.
|
|
#
|
|
#jaeger_filter = "info"
|
|
|
|
# If the 'perf_measurements' compile-time feature is enabled, enables
|
|
# collecting folded stack trace profile of tracing spans using
|
|
# tracing_flame. The resulting profile can be visualized with inferno[1],
|
|
# speedscope[2], or a number of other tools.
|
|
#
|
|
# [1]: https://github.com/jonhoo/inferno
|
|
# [2]: www.speedscope.app
|
|
#
|
|
#tracing_flame = false
|
|
|
|
# This item is undocumented. Please contribute documentation for it.
|
|
#
|
|
#tracing_flame_filter = "info"
|
|
|
|
# This item is undocumented. Please contribute documentation for it.
|
|
#
|
|
#tracing_flame_output_path = "./tracing.folded"
|
|
|
|
# Examples:
|
|
# - No proxy (default):
|
|
# proxy ="none"
|
|
#
|
|
# - For global proxy, create the section at the bottom of this file:
|
|
# [global.proxy]
|
|
# global = { url = "socks5h://localhost:9050" }
|
|
#
|
|
# - To proxy some domains:
|
|
# [global.proxy]
|
|
# [[global.proxy.by_domain]]
|
|
# url = "socks5h://localhost:9050"
|
|
# include = ["*.onion", "matrix.myspecial.onion"]
|
|
# exclude = ["*.myspecial.onion"]
|
|
#
|
|
# Include vs. Exclude:
|
|
# - If include is an empty list, it is assumed to be `["*"]`.
|
|
# - If a domain matches both the exclude and include list, the proxy will
|
|
# only be used if it was included because of a more specific rule than
|
|
# it was excluded. In the above example, the proxy would be used for
|
|
# `ordinary.onion`, `matrix.myspecial.onion`, but not
|
|
# `hello.myspecial.onion`.
|
|
#
|
|
#proxy = "none"
|
|
|
|
# This item is undocumented. Please contribute documentation for it.
|
|
#
|
|
#jwt_secret =
|
|
|
|
# Servers listed here will be used to gather public keys of other servers
|
|
# (notary trusted key servers).
|
|
#
|
|
# Currently, conduwuit doesn't support inbound batched key requests, so
|
|
# this list should only contain other Synapse servers
|
|
#
|
|
# example: ["matrix.org", "constellatory.net", "tchncs.de"]
|
|
#
|
|
#trusted_servers = ["matrix.org"]
|
|
|
|
# Whether to query the servers listed in trusted_servers first or query
|
|
# the origin server first. For best security, querying the origin server
|
|
# first is advised to minimize the exposure to a compromised trusted
|
|
# server. For maximum federation/join performance this can be set to true,
|
|
# however other options exist to query trusted servers first under
|
|
# specific high-load circumstances and should be evaluated before setting
|
|
# this to true.
|
|
#
|
|
#query_trusted_key_servers_first = false
|
|
|
|
# Whether to query the servers listed in trusted_servers first
|
|
# specifically on room joins. This option limits the exposure to a
|
|
# compromised trusted server to room joins only. The join operation
|
|
# requires gathering keys from many origin servers which can cause
|
|
# significant delays. Therefor this defaults to true to mitigate
|
|
# unexpected delays out-of-the-box. The security-paranoid or those
|
|
# willing to tolerate delays are advised to set this to false. Note that
|
|
# setting query_trusted_key_servers_first to true causes this option to
|
|
# be ignored.
|
|
#
|
|
#query_trusted_key_servers_first_on_join = true
|
|
|
|
# Only query trusted servers for keys and never the origin server. This is
|
|
# intended for clusters or custom deployments using their trusted_servers
|
|
# as forwarding-agents to cache and deduplicate requests. Notary servers
|
|
# do not act as forwarding-agents by default, therefor do not enable this
|
|
# unless you know exactly what you are doing.
|
|
#
|
|
#only_query_trusted_key_servers = false
|
|
|
|
# Maximum number of keys to request in each trusted server batch query.
|
|
#
|
|
#trusted_server_batch_size = 1024
|
|
|
|
# max log level for conduwuit. allows debug, info, warn, or error
|
|
# see also: https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives
|
|
#
|
|
# **Caveat**:
|
|
# For release builds, the tracing crate is configured to only implement
|
|
# levels higher than error to avoid unnecessary overhead in the compiled
|
|
# binary from trace macros. For debug builds, this restriction is not
|
|
# applied.
|
|
#
|
|
#log = "info"
|
|
|
|
# controls whether logs will be outputted with ANSI colours
|
|
#
|
|
#log_colors = true
|
|
|
|
# configures the span events which will be outputted with the log
|
|
#
|
|
#log_span_events = "none"
|
|
|
|
# OpenID token expiration/TTL in seconds
|
|
#
|
|
# These are the OpenID tokens that are primarily used for Matrix account
|
|
# integrations (e.g. Vector Integrations in Element), *not* OIDC/OpenID
|
|
# Connect/etc
|
|
#
|
|
#openid_token_ttl = 3600
|
|
|
|
# static TURN username to provide the client if not using a shared secret
|
|
# ("turn_secret"), It is recommended to use a shared secret over static
|
|
# credentials.
|
|
#
|
|
#turn_username = false
|
|
|
|
# static TURN password to provide the client if not using a shared secret
|
|
# ("turn_secret"). It is recommended to use a shared secret over static
|
|
# credentials.
|
|
#
|
|
#turn_password = false
|
|
|
|
# vector list of TURN URIs/servers to use
|
|
#
|
|
# replace "example.turn.uri" with your TURN domain, such as the coturn
|
|
# "realm" config option. if using TURN over TLS, replace the URI prefix
|
|
# "turn:" with "turns:"
|
|
#
|
|
# example: ["turn:example.turn.uri?transport=udp",
|
|
# "turn:example.turn.uri?transport=tcp"]
|
|
#
|
|
#turn_uris = []
|
|
|
|
# TURN secret to use for generating the HMAC-SHA1 hash apart of username
|
|
# and password generation
|
|
#
|
|
# this is more secure, but if needed you can use traditional
|
|
# static username/password credentials.
|
|
#
|
|
#turn_secret = false
|
|
|
|
# TURN secret to use that's read from the file path specified
|
|
#
|
|
# this takes priority over "turn_secret" first, and falls back to
|
|
# "turn_secret" if invalid or failed to open.
|
|
#
|
|
# example: "/etc/conduwuit/.turn_secret"
|
|
#
|
|
#turn_secret_file =
|
|
|
|
# TURN TTL in seconds
|
|
#
|
|
#turn_ttl = 86400
|
|
|
|
# List/vector of room IDs or room aliases that conduwuit will make newly
|
|
# registered users join. The rooms specified must be rooms that you
|
|
# have joined at least once on the server, and must be public.
|
|
#
|
|
# example: ["#conduwuit:puppygock.gay",
|
|
# "!eoIzvAvVwY23LPDay8:puppygock.gay"]
|
|
#
|
|
#auto_join_rooms = []
|
|
|
|
# Config option to automatically deactivate the account of any user who
|
|
# attempts to join a:
|
|
# - banned room
|
|
# - forbidden room alias
|
|
# - room alias or ID with a forbidden server name
|
|
#
|
|
# This may be useful if all your banned lists consist of toxic rooms or
|
|
# servers that no good faith user would ever attempt to join, and
|
|
# to automatically remediate the problem without any admin user
|
|
# intervention.
|
|
#
|
|
# This will also make the user leave all rooms. Federation (e.g. remote
|
|
# room invites) are ignored here.
|
|
#
|
|
# Defaults to false as rooms can be banned for non-moderation-related
|
|
# reasons
|
|
#
|
|
#auto_deactivate_banned_room_attempts = false
|
|
|
|
# RocksDB log level. This is not the same as conduwuit's log level. This
|
|
# is the log level for the RocksDB engine/library which show up in your
|
|
# database folder/path as `LOG` files. conduwuit will log RocksDB errors
|
|
# as normal through tracing.
|
|
#
|
|
#rocksdb_log_level = "error"
|
|
|
|
# This item is undocumented. Please contribute documentation for it.
|
|
#
|
|
#rocksdb_log_stderr = false
|
|
|
|
# Max RocksDB `LOG` file size before rotating in bytes. Defaults to 4MB in
|
|
# bytes.
|
|
#
|
|
#rocksdb_max_log_file_size = 4194304
|
|
|
|
# Time in seconds before RocksDB will forcibly rotate logs.
|
|
#
|
|
#rocksdb_log_time_to_roll = 0
|
|
|
|
# Set this to true to use RocksDB config options that are tailored to HDDs
|
|
# (slower device storage)
|
|
#
|
|
# It is worth noting that by default, conduwuit will use RocksDB with
|
|
# Direct IO enabled. *Generally* speaking this improves performance as it
|
|
# bypasses buffered I/O (system page cache). However there is a potential
|
|
# chance that Direct IO may cause issues with database operations if your
|
|
# setup is uncommon. This has been observed with FUSE filesystems, and
|
|
# possibly ZFS filesystem. RocksDB generally deals/corrects these issues
|
|
# but it cannot account for all setups. If you experience any weird
|
|
# RocksDB issues, try enabling this option as it turns off Direct IO and
|
|
# feel free to report in the conduwuit Matrix room if this option fixes
|
|
# your DB issues.
|
|
#
|
|
# See https://github.com/facebook/rocksdb/wiki/Direct-IO for more information.
|
|
#
|
|
#rocksdb_optimize_for_spinning_disks = false
|
|
|
|
# Enables direct-io to increase database performance via unbuffered I/O.
|
|
#
|
|
# See https://github.com/facebook/rocksdb/wiki/Direct-IO for more details about Direct IO and RocksDB.
|
|
#
|
|
# Set this option to false if the database resides on a filesystem which
|
|
# does not support direct-io like FUSE, or any form of complex filesystem
|
|
# setup such as possibly ZFS.
|
|
#
|
|
#rocksdb_direct_io = true
|
|
|
|
# Amount of threads that RocksDB will use for parallelism on database
|
|
# operatons such as cleanup, sync, flush, compaction, etc. Set to 0 to use
|
|
# all your logical threads. Defaults to your CPU logical thread count.
|
|
#
|
|
#rocksdb_parallelism_threads = 0
|
|
|
|
# Maximum number of LOG files RocksDB will keep. This must *not* be set to
|
|
# 0. It must be at least 1. Defaults to 3 as these are not very useful
|
|
# unless troubleshooting/debugging a RocksDB bug.
|
|
#
|
|
#rocksdb_max_log_files = 3
|
|
|
|
# Type of RocksDB database compression to use.
|
|
#
|
|
# Available options are "zstd", "zlib", "bz2", "lz4", or "none"
|
|
#
|
|
# It is best to use ZSTD as an overall good balance between
|
|
# speed/performance, storage, IO amplification, and CPU usage.
|
|
# For more performance but less compression (more storage used) and less
|
|
# CPU usage, use LZ4. See https://github.com/facebook/rocksdb/wiki/Compression for more details.
|
|
#
|
|
# "none" will disable compression.
|
|
#
|
|
#rocksdb_compression_algo = "zstd"
|
|
|
|
# Level of compression the specified compression algorithm for RocksDB to
|
|
# use.
|
|
#
|
|
# Default is 32767, which is internally read by RocksDB as the
|
|
# default magic number and translated to the library's default
|
|
# compression level as they all differ.
|
|
# See their `kDefaultCompressionLevel`.
|
|
#
|
|
#rocksdb_compression_level = 32767
|
|
|
|
# Level of compression the specified compression algorithm for the
|
|
# bottommost level/data for RocksDB to use. Default is 32767, which is
|
|
# internally read by RocksDB as the default magic number and translated
|
|
# to the library's default compression level as they all differ.
|
|
# See their `kDefaultCompressionLevel`.
|
|
#
|
|
# Since this is the bottommost level (generally old and least used data),
|
|
# it may be desirable to have a very high compression level here as it's
|
|
# lesss likely for this data to be used. Research your chosen compression
|
|
# algorithm.
|
|
#
|
|
#rocksdb_bottommost_compression_level = 32767
|
|
|
|
# Whether to enable RocksDB's "bottommost_compression".
|
|
#
|
|
# At the expense of more CPU usage, this will further compress the
|
|
# database to reduce more storage. It is recommended to use ZSTD
|
|
# compression with this for best compression results. This may be useful
|
|
# if you're trying to reduce storage usage from the database.
|
|
#
|
|
# See https://github.com/facebook/rocksdb/wiki/Compression for more details.
|
|
#
|
|
#rocksdb_bottommost_compression = false
|
|
|
|
# Database recovery mode (for RocksDB WAL corruption)
|
|
#
|
|
# Use this option when the server reports corruption and refuses to start.
|
|
# Set mode 2 (PointInTime) to cleanly recover from this corruption. The
|
|
# server will continue from the last good state, several seconds or
|
|
# minutes prior to the crash. Clients may have to run "clear-cache &
|
|
# reload" to account for the rollback. Upon success, you may reset the
|
|
# mode back to default and restart again. Please note in some cases the
|
|
# corruption error may not be cleared for at least 30 minutes of
|
|
# operation in PointInTime mode.
|
|
#
|
|
# As a very last ditch effort, if PointInTime does not fix or resolve
|
|
# anything, you can try mode 3 (SkipAnyCorruptedRecord) but this will
|
|
# leave the server in a potentially inconsistent state.
|
|
#
|
|
# The default mode 1 (TolerateCorruptedTailRecords) will automatically
|
|
# drop the last entry in the database if corrupted during shutdown, but
|
|
# nothing more. It is extraordinarily unlikely this will desynchronize
|
|
# clients. To disable any form of silent rollback set mode 0
|
|
# (AbsoluteConsistency).
|
|
#
|
|
# The options are:
|
|
# 0 = AbsoluteConsistency
|
|
# 1 = TolerateCorruptedTailRecords (default)
|
|
# 2 = PointInTime (use me if trying to recover)
|
|
# 3 = SkipAnyCorruptedRecord (you now voided your Conduwuit warranty)
|
|
#
|
|
# See https://github.com/facebook/rocksdb/wiki/WAL-Recovery-Modes for more information on these modes.
|
|
#
|
|
# See https://conduwuit.puppyirl.gay/troubleshooting.html#database-corruption for more details on recovering a corrupt database.
|
|
#
|
|
#rocksdb_recovery_mode = 1
|
|
|
|
# Database repair mode (for RocksDB SST corruption)
|
|
#
|
|
# Use this option when the server reports corruption while running or
|
|
# panics. If the server refuses to start use the recovery mode options
|
|
# first. Corruption errors containing the acronym 'SST' which occur after
|
|
# startup will likely require this option.
|
|
#
|
|
# - Backing up your database directory is recommended prior to running the
|
|
# repair.
|
|
# - Disabling repair mode and restarting the server is recommended after
|
|
# running the repair.
|
|
#
|
|
# See https://conduwuit.puppyirl.gay/troubleshooting.html#database-corruption for more details on recovering a corrupt database.
|
|
#
|
|
#rocksdb_repair = false
|
|
|
|
# This item is undocumented. Please contribute documentation for it.
|
|
#
|
|
#rocksdb_read_only = false
|
|
|
|
# This item is undocumented. Please contribute documentation for it.
|
|
#
|
|
#rocksdb_secondary = false
|
|
|
|
# Enables idle CPU priority for compaction thread. This is not enabled by
|
|
# default to prevent compaction from falling too far behind on busy
|
|
# systems.
|
|
#
|
|
#rocksdb_compaction_prio_idle = false
|
|
|
|
# Enables idle IO priority for compaction thread. This prevents any
|
|
# unexpected lag in the server's operation and is usually a good idea.
|
|
# Enabled by default.
|
|
#
|
|
#rocksdb_compaction_ioprio_idle = true
|
|
|
|
# Config option to disable RocksDB compaction. You should never ever have
|
|
# to disable this. If you for some reason find yourself needing to disable
|
|
# this as part of troubleshooting or a bug, please reach out to us in the
|
|
# conduwuit Matrix room with information and details.
|
|
#
|
|
# Disabling compaction will lead to a significantly bloated and
|
|
# explosively large database, gradually poor performance, unnecessarily
|
|
# excessive disk read/writes, and slower shutdowns and startups.
|
|
#
|
|
#rocksdb_compaction = true
|
|
|
|
# Level of statistics collection. Some admin commands to display database
|
|
# statistics may require this option to be set. Database performance may
|
|
# be impacted by higher settings.
|
|
#
|
|
# Option is a number ranging from 0 to 6:
|
|
# 0 = No statistics.
|
|
# 1 = No statistics in release mode (default).
|
|
# 2 to 3 = Statistics with no performance impact.
|
|
# 3 to 5 = Statistics with possible performance impact.
|
|
# 6 = All statistics.
|
|
#
|
|
#rocksdb_stats_level = 1
|
|
|
|
# This is a password that can be configured that will let you login to the
|
|
# server bot account (currently `@conduit`) for emergency troubleshooting
|
|
# purposes such as recovering/recreating your admin room, or inviting
|
|
# yourself back.
|
|
#
|
|
# See https://conduwuit.puppyirl.gay/troubleshooting.html#lost-access-to-admin-room for other ways to get back into your admin room.
|
|
#
|
|
# Once this password is unset, all sessions will be logged out for
|
|
# security purposes.
|
|
#
|
|
# example: "F670$2CP@Hw8mG7RY1$%!#Ic7YA"
|
|
#
|
|
#emergency_password =
|
|
|
|
# This item is undocumented. Please contribute documentation for it.
|
|
#
|
|
#notification_push_path = "/_matrix/push/v1/notify"
|
|
|
|
# Config option to control local (your server only) presence
|
|
# updates/requests. Note that presence on conduwuit is
|
|
# very fast unlike Synapse's. If using outgoing presence, this MUST be
|
|
# enabled.
|
|
#
|
|
#allow_local_presence = true
|
|
|
|
# Config option to control incoming federated presence updates/requests.
|
|
#
|
|
# This option receives presence updates from other
|
|
# servers, but does not send any unless `allow_outgoing_presence` is true.
|
|
# Note that presence on conduwuit is very fast unlike Synapse's.
|
|
#
|
|
#allow_incoming_presence = true
|
|
|
|
# Config option to control outgoing presence updates/requests.
|
|
#
|
|
# This option sends presence updates to other servers, but does not
|
|
# receive any unless `allow_incoming_presence` is true.
|
|
# Note that presence on conduwuit is very fast unlike Synapse's.
|
|
# If using outgoing presence, you MUST enable `allow_local_presence` as
|
|
# well.
|
|
#
|
|
#allow_outgoing_presence = true
|
|
|
|
# Config option to control how many seconds before presence updates that
|
|
# you are idle. Defaults to 5 minutes.
|
|
#
|
|
#presence_idle_timeout_s = 300
|
|
|
|
# Config option to control how many seconds before presence updates that
|
|
# you are offline. Defaults to 30 minutes.
|
|
#
|
|
#presence_offline_timeout_s = 1800
|
|
|
|
# Config option to enable the presence idle timer for remote users.
|
|
# Disabling is offered as an optimization for servers participating in
|
|
# many large rooms or when resources are limited. Disabling it may cause
|
|
# incorrect presence states (i.e. stuck online) to be seen for some
|
|
# remote users.
|
|
#
|
|
#presence_timeout_remote_users = true
|
|
|
|
# Config option to control whether we should receive remote incoming read
|
|
# receipts.
|
|
#
|
|
#allow_incoming_read_receipts = true
|
|
|
|
# Config option to control whether we should send read receipts to remote
|
|
# servers.
|
|
#
|
|
#allow_outgoing_read_receipts = true
|
|
|
|
# Config option to control outgoing typing updates to federation.
|
|
#
|
|
#allow_outgoing_typing = true
|
|
|
|
# Config option to control incoming typing updates from federation.
|
|
#
|
|
#allow_incoming_typing = true
|
|
|
|
# Config option to control maximum time federation user can indicate
|
|
# typing.
|
|
#
|
|
#typing_federation_timeout_s = 30
|
|
|
|
# Config option to control minimum time local client can indicate typing.
|
|
# This does not override a client's request to stop typing. It only
|
|
# enforces a minimum value in case of no stop request.
|
|
#
|
|
#typing_client_timeout_min_s = 15
|
|
|
|
# Config option to control maximum time local client can indicate typing.
|
|
#
|
|
#typing_client_timeout_max_s = 45
|
|
|
|
# Set this to true for conduwuit to compress HTTP response bodies using
|
|
# zstd. This option does nothing if conduwuit was not built with
|
|
# `zstd_compression` feature. Please be aware that enabling HTTP
|
|
# compression may weaken TLS. Most users should not need to enable this.
|
|
# See https://breachattack.com/ and https://wikipedia.org/wiki/BREACH
|
|
# before deciding to enable this.
|
|
#
|
|
#zstd_compression = false
|
|
|
|
# Set this to true for conduwuit to compress HTTP response bodies using
|
|
# gzip. This option does nothing if conduwuit was not built with
|
|
# `gzip_compression` feature. Please be aware that enabling HTTP
|
|
# compression may weaken TLS. Most users should not need to enable this.
|
|
# See https://breachattack.com/ and https://wikipedia.org/wiki/BREACH before
|
|
# deciding to enable this.
|
|
#
|
|
# If you are in a large amount of rooms, you may find that enabling this
|
|
# is necessary to reduce the significantly large response bodies.
|
|
#
|
|
#gzip_compression = false
|
|
|
|
# Set this to true for conduwuit to compress HTTP response bodies using
|
|
# brotli. This option does nothing if conduwuit was not built with
|
|
# `brotli_compression` feature. Please be aware that enabling HTTP
|
|
# compression may weaken TLS. Most users should not need to enable this.
|
|
# See https://breachattack.com/ and https://wikipedia.org/wiki/BREACH before
|
|
# deciding to enable this.
|
|
#
|
|
#brotli_compression = false
|
|
|
|
# Set to true to allow user type "guest" registrations. Some clients like
|
|
# Element attempt to register guest users automatically.
|
|
#
|
|
#allow_guest_registration = false
|
|
|
|
# Set to true to log guest registrations in the admin room. Note that
|
|
# these may be noisy or unnecessary if you're a public homeserver.
|
|
#
|
|
#log_guest_registrations = false
|
|
|
|
# Set to true to allow guest registrations/users to auto join any rooms
|
|
# specified in `auto_join_rooms`.
|
|
#
|
|
#allow_guests_auto_join_rooms = false
|
|
|
|
# Config option to control whether the legacy unauthenticated Matrix media
|
|
# repository endpoints will be enabled. These endpoints consist of:
|
|
# - /_matrix/media/*/config
|
|
# - /_matrix/media/*/upload
|
|
# - /_matrix/media/*/preview_url
|
|
# - /_matrix/media/*/download/*
|
|
# - /_matrix/media/*/thumbnail/*
|
|
#
|
|
# The authenticated equivalent endpoints are always enabled.
|
|
#
|
|
# Defaults to true for now, but this is highly subject to change, likely
|
|
# in the next release.
|
|
#
|
|
#allow_legacy_media = true
|
|
|
|
# This item is undocumented. Please contribute documentation for it.
|
|
#
|
|
#freeze_legacy_media = true
|
|
|
|
# Checks consistency of the media directory at startup:
|
|
# 1. When `media_compat_file_link` is enbled, this check will upgrade
|
|
# media when switching back and forth between Conduit and conduwuit.
|
|
# Both options must be enabled to handle this.
|
|
# 2. When media is deleted from the directory, this check will also delete
|
|
# its database entry.
|
|
#
|
|
# If none of these checks apply to your use cases, and your media
|
|
# directory is significantly large setting this to false may reduce
|
|
# startup time.
|
|
#
|
|
#media_startup_check = true
|
|
|
|
# Enable backward-compatibility with Conduit's media directory by creating
|
|
# symlinks of media. This option is only necessary if you plan on using
|
|
# Conduit again. Otherwise setting this to false reduces filesystem
|
|
# clutter and overhead for managing these symlinks in the directory. This
|
|
# is now disabled by default. You may still return to upstream Conduit
|
|
# but you have to run conduwuit at least once with this set to true and
|
|
# allow the media_startup_check to take place before shutting
|
|
# down to return to Conduit.
|
|
#
|
|
#media_compat_file_link = false
|
|
|
|
# Prunes missing media from the database as part of the media startup
|
|
# checks. This means if you delete files from the media directory the
|
|
# corresponding entries will be removed from the database. This is
|
|
# disabled by default because if the media directory is accidentally moved
|
|
# or inaccessible, the metadata entries in the database will be lost with
|
|
# sadness.
|
|
#
|
|
#prune_missing_media = false
|
|
|
|
# Vector list of servers that conduwuit will refuse to download remote
|
|
# media from.
|
|
#
|
|
#prevent_media_downloads_from = []
|
|
|
|
# List of forbidden server names that we will block incoming AND outgoing
|
|
# federation with, and block client room joins / remote user invites.
|
|
#
|
|
# This check is applied on the room ID, room alias, sender server name,
|
|
# sender user's server name, inbound federation X-Matrix origin, and
|
|
# outbound federation handler.
|
|
#
|
|
# Basically "global" ACLs.
|
|
#
|
|
#forbidden_remote_server_names = []
|
|
|
|
# List of forbidden server names that we will block all outgoing federated
|
|
# room directory requests for. Useful for preventing our users from
|
|
# wandering into bad servers or spaces.
|
|
#
|
|
#forbidden_remote_room_directory_server_names = []
|
|
|
|
# Vector list of IPv4 and IPv6 CIDR ranges / subnets *in quotes* that you
|
|
# do not want conduwuit to send outbound requests to. Defaults to
|
|
# RFC1918, unroutable, loopback, multicast, and testnet addresses for
|
|
# security.
|
|
#
|
|
# Please be aware that this is *not* a guarantee. You should be using a
|
|
# firewall with zones as doing this on the application layer may have
|
|
# bypasses.
|
|
#
|
|
# Currently this does not account for proxies in use like Synapse does.
|
|
#
|
|
# To disable, set this to be an empty vector (`[]`).
|
|
#
|
|
# "192.168.0.0/16", "100.64.0.0/10", "192.0.0.0/24", "169.254.0.0/16",
|
|
# "192.88.99.0/24", "198.18.0.0/15", "192.0.2.0/24", "198.51.100.0/24",
|
|
# "203.0.113.0/24", "224.0.0.0/4", "::1/128", "fe80::/10", "fc00::/7",
|
|
# "2001:db8::/32", "ff00::/8", "fec0::/10"]
|
|
#
|
|
#ip_range_denylist = ["127.0.0.0/8", "10.0.0.0/8", "172.16.0.0/12",
|
|
|
|
# Vector list of domains allowed to send requests to for URL previews.
|
|
# Defaults to none. Note: this is a *contains* match, not an explicit
|
|
# match. Putting "google.com" will match "https://google.com" and
|
|
# "http://mymaliciousdomainexamplegoogle.com" Setting this to "*" will
|
|
# allow all URL previews. Please note that this opens up significant
|
|
# attack surface to your server, you are expected to be aware of the
|
|
# risks by doing so.
|
|
#
|
|
#url_preview_domain_contains_allowlist = []
|
|
|
|
# Vector list of explicit domains allowed to send requests to for URL
|
|
# previews. Defaults to none. Note: This is an *explicit* match, not a
|
|
# contains match. Putting "google.com" will match "https://google.com",
|
|
# "http://google.com", but not
|
|
# "https://mymaliciousdomainexamplegoogle.com". Setting this to "*" will
|
|
# allow all URL previews. Please note that this opens up significant
|
|
# attack surface to your server, you are expected to be aware of the
|
|
# risks by doing so.
|
|
#
|
|
#url_preview_domain_explicit_allowlist = []
|
|
|
|
# Vector list of explicit domains not allowed to send requests to for URL
|
|
# previews. Defaults to none. Note: This is an *explicit* match, not a
|
|
# contains match. Putting "google.com" will match "https://google.com",
|
|
# "http://google.com", but not
|
|
# "https://mymaliciousdomainexamplegoogle.com". The denylist is checked
|
|
# first before allowlist. Setting this to "*" will not do anything.
|
|
#
|
|
#url_preview_domain_explicit_denylist = []
|
|
|
|
# Vector list of URLs allowed to send requests to for URL previews.
|
|
# Defaults to none. Note that this is a *contains* match, not an
|
|
# explicit match. Putting "google.com" will match
|
|
# "https://google.com/",
|
|
# "https://google.com/url?q=https://mymaliciousdomainexample.com", and
|
|
# "https://mymaliciousdomainexample.com/hi/google.com" Setting this to
|
|
# "*" will allow all URL previews. Please note that this opens up
|
|
# significant attack surface to your server, you are expected to be
|
|
# aware of the risks by doing so.
|
|
#
|
|
#url_preview_url_contains_allowlist = []
|
|
|
|
# Maximum amount of bytes allowed in a URL preview body size when
|
|
# spidering. Defaults to 384KB in bytes.
|
|
#
|
|
#url_preview_max_spider_size = 384000
|
|
|
|
# Option to decide whether you would like to run the domain allowlist
|
|
# checks (contains and explicit) on the root domain or not. Does not apply
|
|
# to URL contains allowlist. Defaults to false.
|
|
#
|
|
# Example usecase: If this is
|
|
# enabled and you have "wikipedia.org" allowed in the explicit and/or
|
|
# contains domain allowlist, it will allow all subdomains under
|
|
# "wikipedia.org" such as "en.m.wikipedia.org" as the root domain is
|
|
# checked and matched. Useful if the domain contains allowlist is still
|
|
# too broad for you but you still want to allow all the subdomains under a
|
|
# root domain.
|
|
#
|
|
#url_preview_check_root_domain = false
|
|
|
|
# List of forbidden room aliases and room IDs as strings of regex
|
|
# patterns.
|
|
#
|
|
# Regex can be used or explicit contains matches can be done by
|
|
# just specifying the words (see example).
|
|
#
|
|
# This is checked upon room alias creation, custom room ID creation if
|
|
# used, and startup as warnings if any room aliases in your database have
|
|
# a forbidden room alias/ID.
|
|
#
|
|
# example: ["19dollarfortnitecards", "b[4a]droom"]
|
|
#
|
|
#forbidden_alias_names = []
|
|
|
|
# List of forbidden username patterns/strings.
|
|
#
|
|
# Regex can be used or explicit contains matches can be done by just
|
|
# specifying the words (see example).
|
|
#
|
|
# This is checked upon username availability check, registration, and
|
|
# startup as warnings if any local users in your database have a forbidden
|
|
# username.
|
|
#
|
|
# example: ["administrator", "b[a4]dusernam[3e]"]
|
|
#
|
|
#forbidden_usernames = []
|
|
|
|
# Retry failed and incomplete messages to remote servers immediately upon
|
|
# startup. This is called bursting. If this is disabled, said messages
|
|
# may not be delivered until more messages are queued for that server. Do
|
|
# not change this option unless server resources are extremely limited or
|
|
# the scale of the server's deployment is huge. Do not disable this
|
|
# unless you know what you are doing.
|
|
#
|
|
#startup_netburst = true
|
|
|
|
# messages are dropped and not reattempted. The `startup_netburst` option
|
|
# must be enabled for this value to have any effect. Do not change this
|
|
# value unless you know what you are doing. Set this value to -1 to
|
|
# reattempt every message without trimming the queues; this may consume
|
|
# significant disk. Set this value to 0 to drop all messages without any
|
|
# attempt at redelivery.
|
|
#
|
|
#startup_netburst_keep = 50
|
|
|
|
# controls whether non-admin local users are forbidden from sending room
|
|
# invites (local and remote), and if non-admin users can receive remote
|
|
# room invites. admins are always allowed to send and receive all room
|
|
# invites.
|
|
#
|
|
#block_non_admin_invites = false
|
|
|
|
# Allows admins to enter commands in rooms other than "#admins" (admin
|
|
# room) by prefixing your message with "\!admin" or "\\!admin" followed
|
|
# up a normal conduwuit admin command. The reply will be publicly visible
|
|
# to the room, originating from the sender.
|
|
#
|
|
# example: \\!admin debug ping puppygock.gay
|
|
#
|
|
#admin_escape_commands = true
|
|
|
|
# Controls whether the conduwuit admin room console / CLI will immediately
|
|
# activate on startup. This option can also be enabled with `--console`
|
|
# conduwuit argument.
|
|
#
|
|
#admin_console_automatic = false
|
|
|
|
# Controls what admin commands will be executed on startup. This is a
|
|
# vector list of strings of admin commands to run.
|
|
#
|
|
#
|
|
# This option can also be configured with the `--execute` conduwuit
|
|
# argument and can take standard shell commands and environment variables
|
|
#
|
|
# Such example could be: `./conduwuit --execute "server admin-notice
|
|
# conduwuit has started up at $(date)"`
|
|
#
|
|
# example: admin_execute = ["debug ping puppygock.gay", "debug echo hi"]`
|
|
#
|
|
#admin_execute = []
|
|
|
|
# Controls whether conduwuit should error and fail to start if an admin
|
|
# execute command (`--execute` / `admin_execute`) fails.
|
|
#
|
|
#admin_execute_errors_ignore = false
|
|
|
|
# Controls the max log level for admin command log captures (logs
|
|
# generated from running admin commands). Defaults to "info" on release
|
|
# builds, else "debug" on debug builds.
|
|
#
|
|
#admin_log_capture = "info"
|
|
|
|
# The default room tag to apply on the admin room.
|
|
#
|
|
# On some clients like Element, the room tag "m.server_notice" is a
|
|
# special pinned room at the very bottom of your room list. The conduwuit
|
|
# admin room can be pinned here so you always have an easy-to-access
|
|
# shortcut dedicated to your admin room.
|
|
#
|
|
#admin_room_tag = "m.server_notice"
|
|
|
|
# Sentry.io crash/panic reporting, performance monitoring/metrics, etc.
|
|
# This is NOT enabled by default. conduwuit's default Sentry reporting
|
|
# endpoint is o4506996327251968.ingest.us.sentry.io
|
|
#
|
|
#sentry = false
|
|
|
|
# Sentry reporting URL if a custom one is desired
|
|
#
|
|
#sentry_endpoint = "https://fe2eb4536aa04949e28eff3128d64757@o4506996327251968.ingest.us.sentry.io/4506996334657536"
|
|
|
|
# Report your conduwuit server_name in Sentry.io crash reports and metrics
|
|
#
|
|
#sentry_send_server_name = false
|
|
|
|
# Performance monitoring/tracing sample rate for Sentry.io
|
|
#
|
|
# Note that too high values may impact performance, and can be disabled by
|
|
# setting it to 0.0 (0%) This value is read as a percentage to Sentry,
|
|
# represented as a decimal. Defaults to 15% of traces (0.15)
|
|
#
|
|
#sentry_traces_sample_rate = 0.15
|
|
|
|
# Whether to attach a stacktrace to Sentry reports.
|
|
#
|
|
#sentry_attach_stacktrace = false
|
|
|
|
# Send panics to sentry. This is true by default, but sentry has to be
|
|
# enabled. The global "sentry" config option must be enabled to send any
|
|
# data.
|
|
#
|
|
#sentry_send_panic = true
|
|
|
|
# Send errors to sentry. This is true by default, but sentry has to be
|
|
# enabled. This option is only effective in release-mode; forced to false
|
|
# in debug-mode.
|
|
#
|
|
#sentry_send_error = true
|
|
|
|
# Controls the tracing log level for Sentry to send things like
|
|
# breadcrumbs and transactions
|
|
#
|
|
#sentry_filter = "info"
|
|
|
|
# Enable the tokio-console. This option is only relevant to developers.
|
|
# See https://conduwuit.puppyirl.gay/development.html#debugging-with-tokio-console for more information.
|
|
#
|
|
#tokio_console = false
|
|
|
|
# This item is undocumented. Please contribute documentation for it.
|
|
#
|
|
#test = false
|
|
|
|
# Controls whether admin room notices like account registrations, password
|
|
# changes, account deactivations, room directory publications, etc will
|
|
# be sent to the admin room. Update notices and normal admin command
|
|
# responses will still be sent.
|
|
#
|
|
#admin_room_notices = true
|
|
|
|
[global.tls]
|
|
|
|
# Path to a valid TLS certificate file.
|
|
#
|
|
# example: "/path/to/my/certificate.crt"
|
|
#
|
|
#certs =
|
|
|
|
# Path to a valid TLS certificate private key.
|
|
#
|
|
# example: "/path/to/my/certificate.key"
|
|
#
|
|
#key =
|
|
|
|
# Whether to listen and allow for HTTP and HTTPS connections (insecure!)
|
|
#
|
|
#dual_protocol = false
|
|
|
|
[global.well_known]
|
|
|
|
# The server base domain of the URL with a specific port that the server
|
|
# well-known file will serve. This should contain a port at the end, and
|
|
# should not be a URL.
|
|
#
|
|
# example: "matrix.example.com:443"
|
|
#
|
|
#server =
|
|
|
|
# The server URL that the client well-known file will serve. This should
|
|
# not contain a port, and should just be a valid HTTPS URL.
|
|
#
|
|
# example: "https://matrix.example.com"
|
|
#
|
|
#client =
|
|
|
|
# This item is undocumented. Please contribute documentation for it.
|
|
#
|
|
#support_page =
|
|
|
|
# This item is undocumented. Please contribute documentation for it.
|
|
#
|
|
#support_role =
|
|
|
|
# This item is undocumented. Please contribute documentation for it.
|
|
#
|
|
#support_email =
|
|
|
|
# This item is undocumented. Please contribute documentation for it.
|
|
#
|
|
#support_mxid =
|