## Server ##

server_name: SERVER_NAME
log_config: /conf/log_config.yaml
report_stats: False
signing_key_path: /conf/server.signing.key
trusted_key_servers: []
enable_registration: true
enable_registration_without_verification: true

## Listeners ##

tls_certificate_path: /conf/server.tls.crt
tls_private_key_path: /conf/server.tls.key
bcrypt_rounds: 4
registration_shared_secret: complement

listeners:
  - port: 8448
    bind_addresses: ['::']
    type: http
    tls: true
    resources:
      - names: [federation]

  - port: 8008
    bind_addresses: ['::']
    type: http

    resources:
      - names: [client]

## Database ##

database:
  name: "sqlite3"
  args:
    # We avoid /data, as it is a volume and is not transferred when the container is committed,
    # which is a fundamental necessity in complement.
    database: "/conf/homeserver.db"

## Federation ##

# trust certs signed by the complement CA
federation_custom_ca_list:
- /complement/ca/ca.crt

# unblacklist RFC1918 addresses
ip_range_blacklist: []

# Disable server rate-limiting
rc_federation:
  window_size: 1000
  sleep_limit: 10
  sleep_delay: 500
  reject_limit: 99999
  concurrent: 3

rc_message:
  per_second: 9999
  burst_count: 9999

rc_registration:
  per_second: 9999
  burst_count: 9999

rc_login:
  address:
    per_second: 9999
    burst_count: 9999
  account:
    per_second: 9999
    burst_count: 9999
  failed_attempts:
    per_second: 9999
    burst_count: 9999

rc_admin_redaction:
  per_second: 9999
  burst_count: 9999

rc_joins:
  local:
    per_second: 9999
    burst_count: 9999
  remote:
    per_second: 9999
    burst_count: 9999

rc_3pid_validation:
  per_second: 1000
  burst_count: 1000

rc_invites:
  per_room:
    per_second: 1000
    burst_count: 1000
  per_user:
    per_second: 1000
    burst_count: 1000

federation_rr_transactions_per_room_per_second: 9999

## API Configuration ##

# A list of application service config files to use
#
app_service_config_files:
AS_REGISTRATION_FILES  

## Experimental Features ##

experimental_features:
  # Enable spaces support
  spaces_enabled: true
  # Enable history backfilling support
  msc2716_enabled: true
  # server-side support for partial state in /send_join responses
  msc3706_enabled: true
  # client-side support for partial state in /send_join responses
  faster_joins: true
  # Enable jump to date endpoint
  msc3030_enabled: true

server_notices:
  system_mxid_localpart: _server
  system_mxid_display_name: "Server Alert"
  system_mxid_avatar_url: ""
  room_name: "Server Alert"
