#jinja2: lstrip_blocks: True # Network-specific config options (iMessage via RustPush) network: # Displayname template for iMessage contacts. # Available variables: # .FirstName, .LastName, .Nickname # .Phone, .Email, .ID displayname_template: {{ matrix_rustpush_bridge_network_displayname_template | to_json }} # How many days back to look for chats during initial sync. # Default is 365 (1 year). Set to 0 to use the default. initial_sync_days: {{ matrix_rustpush_bridge_initial_sync_days | to_json }} # Set to false to disable CloudKit backfill globally cloudkit_backfill: {{ matrix_rustpush_bridge_cloudkit_backfill | to_json }} backfill_source: cloudkit # Enable or disable video transcoding video_transcoding: {{ matrix_rustpush_bridge_video_transcoding | to_json }} # Enable or disable HEIC conversion heic_conversion: {{ matrix_rustpush_bridge_heic_conversion | to_json }} heic_jpeg_quality: 95 # Set to true to disable Facetime support globally disable_facetime: {{ matrix_rustpush_bridge_disable_facetime | to_json }} # Set to false to disable Statuskit support globally statuskit_notifications: {{ matrix_rustpush_bridge_statuskit_notifications | to_json }} statuskit_share_on_startup: {{ matrix_rustpush_bridge_statuskit_share_on_startup | to_json }} # Config options that affect the central bridge module. bridge: # The prefix for commands. Only required in non-management rooms. command_prefix: {{ matrix_rustpush_bridge_bridge_command_prefix | to_json }} # Should the bridge create a space for each login containing the rooms that account is in? personal_filtering_spaces: true # Whether the bridge should set names and avatars explicitly for DM portals. private_chat_portal_meta: true # Should events be handled asynchronously within portal rooms? async_events: false # Should every user have their own portals rather than sharing them? split_portals: false # Should the bridge resend `m.bridge` events to all portals on startup? resend_bridge_info: false # Should leaving Matrix rooms be bridged as leaving groups on the remote network? bridge_matrix_leave: false # Should room tags only be synced when creating the portal? tag_only_on_create: true # List of tags to allow bridging. only_bridge_tags: [m.favourite, m.lowpriority] # Should room mute status only be synced when creating the portal? mute_only_on_create: true # What should be done to portal rooms when a user logs out or is logged out? cleanup_on_logout: enabled: false manual: private: nothing relayed: nothing shared_no_users: nothing shared_has_users: nothing bad_credentials: private: nothing relayed: nothing shared_no_users: nothing shared_has_users: nothing # Settings for relay mode relay: enabled: false admin_only: true default_relays: [] message_formats: m.text: "{% raw %}{{ .Sender.DisambiguatedName }}: {{ .Message }}{% endraw %}" m.notice: "{% raw %}{{ .Sender.DisambiguatedName }}: {{ .Message }}{% endraw %}" m.emote: "{% raw %}* {{ .Sender.DisambiguatedName }} {{ .Message }}{% endraw %}" m.file: "{% raw %}{{ .Sender.DisambiguatedName }} sent a file{{ if .Caption }}: {{ .Caption }}{{ end }}{% endraw %}" m.image: "{% raw %}{{ .Sender.DisambiguatedName }} sent an image{{ if .Caption }}: {{ .Caption }}{{ end }}{% endraw %}" m.audio: "{% raw %}{{ .Sender.DisambiguatedName }} sent an audio file{{ if .Caption }}: {{ .Caption }}{{ end }}{% endraw %}" m.video: "{% raw %}{{ .Sender.DisambiguatedName }} sent a video{{ if .Caption }}: {{ .Caption }}{{ end }}{% endraw %}" m.location: "{% raw %}{{ .Sender.DisambiguatedName }} sent a location{{ if .Caption }}: {{ .Caption }}{{ end }}{% endraw %}" displayname_format: "{% raw %}{{ .DisambiguatedName }}{% endraw %}" # Permissions for using the bridge. permissions: {{ matrix_rustpush_bridge_bridge_permissions | to_json }} # Config for the bridge's database. database: type: postgres uri: {{ matrix_rustpush_bridge_database_uri | to_json }} max_open_conns: 5 max_idle_conns: 1 max_conn_idle_time: null max_conn_lifetime: null # Homeserver details. homeserver: address: {{ matrix_rustpush_bridge_homeserver_address | to_json }} domain: {{ matrix_rustpush_bridge_homeserver_domain | to_json }} software: standard status_endpoint: message_send_checkpoint_endpoint: async_media: {{ matrix_rustpush_bridge_homeserver_async_media | to_json }} websocket: false ping_interval_seconds: 0 # Application service host/registration related details. appservice: address: {{ matrix_rustpush_bridge_appservice_address | to_json }} public_address: {{ matrix_rustpush_bridge_appservice_public_address | to_json }} hostname: 0.0.0.0 port: 8081 id: rustpush-bridge bot: username: {{ matrix_rustpush_bridge_appservice_bot_username | to_json }} displayname: {{ matrix_rustpush_bridge_appservice_bot_displayname | to_json(ensure_ascii=False) }} avatar: {{ matrix_rustpush_bridge_appservice_bot_avatar | to_json }} ephemeral_events: true async_transactions: false as_token: {{ matrix_rustpush_bridge_appservice_token | to_json }} hs_token: {{ matrix_rustpush_bridge_homeserver_token | to_json }} # Localpart template of MXIDs for remote users. username_template: {{ matrix_rustpush_bridge_appservice_username_template | to_json }} # Config options that affect the Matrix connector of the bridge. matrix: message_status_events: false delivery_receipts: false message_error_notices: true sync_direct_chat_list: true federate_rooms: {{ matrix_rustpush_bridge_matrix_federate_rooms | to_json }} upload_file_threshold: 5242880 # Segment-compatible analytics endpoint for tracking some events. analytics: token: null url: https://api.segment.io/v1/track user_id: null # Settings for provisioning API provisioning: prefix: /_matrix/provision shared_secret: {{ matrix_rustpush_bridge_provisioning_shared_secret | to_json }} allow_matrix_auth: true debug_endpoints: false # Settings for backfilling messages. backfill: enabled: {{ matrix_rustpush_bridge_backfill_enabled | to_json }} max_initial_messages: {{ matrix_rustpush_bridge_backfill_max_initial_messages | to_json }} max_catchup_messages: {{ matrix_rustpush_bridge_backfill_max_catchup_messages | to_json }} unread_hours_threshold: 720 threads: max_initial_messages: 50 queue: enabled: false batch_size: 100 batch_delay: 20 max_batches: -1 max_batches_override: {} # Settings for enabling double puppeting double_puppet: servers: {} allow_discovery: false secrets: {{ matrix_rustpush_bridge_double_puppet_secrets | to_json }} # End-to-bridge encryption support options. encryption: allow: {{ matrix_rustpush_bridge_bridge_encryption_allow | to_json }} default: {{ matrix_rustpush_bridge_bridge_encryption_default | to_json }} require: {{ matrix_rustpush_bridge_bridge_encryption_require | to_json }} appservice: {{ matrix_rustpush_bridge_bridge_encryption_appservice | to_json }} msc4190: {{ matrix_rustpush_bridge_msc4190_enabled | to_json }} self_sign: {{ matrix_rustpush_bridge_self_sign_enabled | to_json }} allow_key_sharing: {{ matrix_rustpush_bridge_bridge_encryption_key_sharing_allow | to_json }} pickle_key: {{ matrix_rustpush_bridge_bridge_encryption_pickle_key | to_json }} delete_keys: delete_outbound_on_ack: false dont_store_outbound: false ratchet_on_decrypt: false delete_fully_used_on_decrypt: false delete_prev_on_new_session: false delete_on_device_delete: false periodically_delete_expired: false delete_outdated_inbound: false verification_levels: receive: unverified send: unverified share: cross-signed-tofu rotation: enable_custom: false milliseconds: 604800000 messages: 100 disable_device_change_key_rotation: false # Logging config. logging: min_level: {{ matrix_rustpush_bridge_logging_level | to_json }} writers: - type: stdout format: pretty-colored