open module matrix.net.Homeserver version = 2 global = new { server_name = read("env:MATRIX_SERVER_NAME") ?? "" private_key = "matrix_key.pem" old_private_keys = new Listing {} key_validity_period = "168h0m0s" } database = new { connection_string = read("env:MATRIX_PSQL_CONN") ?? "" max_open_conns = 90 max_idle_conns = 5 conn_max_lifetime = -1 } cache = new { max_size_estimated = "1gb" max_age = "1h" } well_known_server_name = "" well_known_client_name = read("env:MATRIX_CLIENT_NAME") ?? "" well_known_sliding_sync_proxy = "" trusted_third_party_id_servers = new Listing { "matrix.org" "vector.im" } disable_federation = false presence = new { enable_inbound = false enable_outbound = false } report_stats = new { enabled = false endpoint = "https://panopticon.matrix.org/push" } server_notices = new { enabled = false local_part = "_server" display_name = "Server Alerts" avatar_url = "" room_name = "Server Alerts" } jetstream = new { addresses = new Listing {} disable_tls_validation = false storage_path = "./" topic_prefix = "Dendrite" } metrics = new { enabled = false basic_auth = new { username = "metrics" password = "metrics" } } dns_cache = new { enabled = false cache_size = 256 cache_lifetime = "5m" } app_service_api = new { disable_tls_validation = false legacy_auth = false legacy_paths = false config_files = new Listing { "/etc/dendrite/chat-service.yaml" } } client_api = new { registration_disabled = true guests_disabled = true registration_shared_secret = read("env:MATRIX_REGISTRATION_SHARED_SECRET") ?? "" enable_registration_captcha = (read("env:MATRIX_ENABLE_RECATCHA") ?? "false").toBoolean() recaptcha_public_key = read("env:MATRIX_RECATCHA_PUBLIC_KEY") ?? "" recaptcha_private_key = read("env:MATRIX_RECATCHA_PRIVATE_KEY") ?? "" recaptcha_bypass_secret = read("env:MATRIX_RECATCHA_BYPASS_SECRET") ?? "" } turn = new { turn_user_lifetime = "5m" turn_uris = new Listing {} turn_shared_secret = "" } rate_limiting = new { enabled = true threshold = 20 cooloff_ms = 500 exempt_user_ids = new Listing {} } federation_api = new { send_max_retries = 16 disable_tls_validation = false disable_http_keepalives = false key_perspectives = new Listing { new { server_name = "matrix.org" keys = new Listing { new { key_id = "ed25519:auto" public_key = "Noi6WqcDj0QmPxCNQqgezwTlBKrfqehY1u2FyWP9uYw" } new { key_id = "ed25519:a_RXGa" public_key = "l8Hft5qXKn1vfHrg3p4+W8gELQVo8N13JkluMfmn2sQ" } } } } prefer_direct_fetch = false } media_api = new { base_path = "./media_store" max_file_size_bytes = 10485760 dynamic_thumbnails = false max_thumbnail_generators = 10 thumbnail_sizes = new Listing { new { width = 32 height = 32 method = "crop" } new { width = 96 height = 96 method = "crop" } new { width = 640 height = 480 method = "scale" } } } mscs = new { mscs = new Listing {} } sync_api = new Listing {} search = new { enabled = false index_path = "./searchindex" language = "en" } user_api = new { bcrypt_cost = 10 auto_join_rooms = new Listing { // - "#main:matrix.org" } } tracing = new { enabled = false jaeger = new { serviceName = "" disabled = false rpc_metrics = false tags = new Listing {} sampler = null reporter = null headers = null baggage_restrictions = null throttler = null } } logging = new Listing { new { type = "std" level = "info" } new { type = "file" level = "info" params = new { path = "./logs" } } }