homeserver: address: ${node.metadata['mautrix-whatsapp']['homeserver']['url']} domain: ${node.metadata['mautrix-whatsapp']['homeserver']['domain']} appservice: address: http://${node.metadata['mautrix-whatsapp'].get('listen-addr', '127.0.0.1')}:${node.metadata['mautrix-whatsapp'].get('port', 20020)} hostname: ${node.metadata['mautrix-whatsapp'].get('listen-addr', '127.0.0.1')} port: ${node.metadata['mautrix-whatsapp'].get('port', 20020)} database: type: postgres uri: postgres://${node.metadata['mautrix-whatsapp']['database']['user']}:${node.metadata['mautrix-whatsapp']['database']['password']}@${node.metadata['mautrix-whatsapp']['database'].get('host', 'localhost')}/${node.metadata['mautrix-whatsapp']['database']['database']}?sslmode=disable max_open_conns: 20 max_idle_conns: 2 provisioning: prefix: /_matrix/provision/v1 % if node.metadata['mautrix-whatsapp']['provisioning']['enabled']: shared_secret: ${node.metadata['mautrix-whatsapp']['provisioning']['shared_secret']} % else: shared_secret: disable % endif id: whatsapp bot: username: whatsappbot displayname: WhatsApp bridge bot avatar: mxc://maunium.net/NeXNQarUbrlYBiPCpprYsRqr as_token: ${node.metadata['mautrix-whatsapp']['as_token']} hs_token: ${node.metadata['mautrix-whatsapp']['hs_token']} metrics: enabled: false listen: 127.0.0.1:8001 whatsapp: os_name: Mautrix-WhatsApp bridge browser_name: mx-wa bridge: username_template: whatsapp_{{.}} displayname_template: "{{if .Notify}}{{.Notify}}{{else}}{{.Jid}}{{end}} (WhatsApp)" community_template: whatsapp_{{.Localpart}}={{.Server}} connection_timeout: 20 fetch_message_on_timeout: false delivery_receipts: true login_qr_regen_count: 2 max_connection_attempts: 3 connection_retry_delay: -1 report_connection_retry: true chat_list_wait: 30 portal_sync_wait: 600 user_message_buffer: 1024 portal_message_buffer: 128 call_notices: start: true end: true initial_chat_sync_count: 20 initial_history_fill_count: 50 initial_history_disable_notifications: false recovery_chat_sync_limit: -1 recovery_history_backfill: true sync_max_chat_age: ${node.metadata['mautrix-whatsapp'].get('sync_max_days', 7)*24*60*60} sync_with_custom_puppets: true sync_direct_chat_list: false default_bridge_receipts: true default_bridge_presence: true login_shared_secret: null invite_own_puppet_for_backfilling: true private_chat_portal_meta: false resend_bridge_info: false whatsapp_thumbnail: false allow_user_invite: false command_prefix: "!wa" encryption: allow: false # requires login_shared_secret to be set default: false key_sharing: allow: false require_cross_signing: false require_verification: true permissions: % for user, permission in node.metadata['mautrix-whatsapp']['permissions'].items(): ${user}: ${permission} % endfor relaybot: enabled: false management: "!whatsapp-relaybot:${node.metadata['mautrix-whatsapp']['homeserver']['domain']}" invites: % for user, permission in node.metadata['mautrix-whatsapp']['permissions'].items(): % if permission > 50: - ${user} % endif % endfor message_formats: m.text: "{{ .Sender.Displayname }}: {{ .Message }}" m.notice: "{{ .Sender.Displayname }}: {{ .Message }}" m.emote: "* {{ .Sender.Displayname }} {{ .Message }}" m.file: "{{ .Sender.Displayname }} sent a file" m.image: "{{ .Sender.Displayname }} sent an image" m.audio: "{{ .Sender.Displayname }} sent an audio file" m.video: "{{ .Sender.Displayname }} sent a video" m.location: "{{ .Sender.Displayname }} sent a location" logging: directory: /opt/mautrix-whatsapp/logs file_name_format: null file_date_format: 2006-01-02 file_mode: 0600 timestamp_format: null print_level: info