server_name: "{{applications[application_id].server_name}}"
pid_file: /data/homeserver.pid
listeners:
  - port: 8008
    tls: false
    type: http
    x_forwarded: true
    resources:
      - names: [client, federation]
        compress: false
database:
  name: psycopg2
  args:
    user: "{{database_username}}"
    password: "{{database_password}}"
    database: "{{database_name}}"
    host: "{{database_host}}"
    cp_min: 5
    cp_max: 10
log_config:                     "/data/{{domains.matrix.synapse}}.log.config"
media_store_path:               "/data/media_store"
registration_shared_secret:     "{{applications[application_id].credentials.registration_shared_secret}}"
report_stats:                   true
macaroon_secret_key:            "{{applications[application_id].credentials.macaroon_secret_key}}"
form_secret:                    "{{applications[application_id].credentials.form_secret}}"
signing_key_path:               "/data/{{domains.matrix.synapse}}.signing.key"
web_client_location:            "{{ web_protocol }}://{{domains.matrix.element}}"
public_baseurl:                 "{{ web_protocol }}://{{domains.matrix.synapse}}"
trusted_key_servers:
  - server_name: "matrix.org"
admin_contact: 'mailto:{{users.administrator.email}}'

email:
  smtp_host:                    "{{system_email.host}}"
  smtp_port:                    "{{system_email.port}}"
  smtp_user:                    "{{ users['no-reply'].email }}"
  smtp_pass:                    "{{ users['no-reply'].mailu_token }}"
  #force_tls:                    true
  #require_transport_security:   true
  enable_tls:                   "{{ system_email.tls | upper }}"
  notif_from:                   "Your Friendly %(app)s homeserver <{{ users['no-reply'].email }}>"
  app_name:                     "Matrix on {{domains.matrix.synapse}}"
  enable_notifs:                true
  notif_for_new_users:          false
  client_base_url:              "{{domains.matrix.synapse}}"
  validation_token_lifetime:    15m

{% if applications | is_feature_enabled('oidc',application_id) %}
# @See https://matrix-org.github.io/synapse/latest/openid.html
oidc_providers:
  - idp_id: keycloak
    idp_name:       "{{oidc.button_text}}"
    issuer:         "{{oidc.client.issuer_url}}"
    client_id:      "{{oidc.client.id}}"
    client_secret:  "{{oidc.client.secret}}"
    scopes: ["openid", "profile"]
    user_mapping_provider:
      config:
        localpart_template: "{% raw %}{{ user.{% endraw %}{{oidc.attributes.username}}{% raw %}}}{% endraw %}"
        display_name_template: "{% raw %}{{ user.name }}{% endraw %}"
    backchannel_logout_enabled: true
{% endif %}

{% if bridges | bool %}
app_service_config_files:
{% for item in bridges %}
  - {{registration_file_folder}}{{item.bridge_name}}.registration.yaml
{% endfor %}
{% endif %}