Files
matrix-docker-ansible-deploy/roles/custom/matrix-bridge-mautrix-meta-messenger/defaults/main.yml
T
Slavi PantaleevandClaude Opus 5 f0a78997cb Use the ig--prefixed container images for mautrix-meta in Instagram mode
Since v26.07, Instagram is a separate bridge upstream, with its own
binary and its own container image. Both bridges are published to the
same image repository, Instagram's under `ig-`-prefixed tags.

Both roles kept pointing at the unprefixed image, which now carries
only the legacy Instagram code path. That path no longer works against
Instagram's current DM protocol, so mautrix-meta-instagram authenticates
and does its initial sync, then loops on failed MQTT sync tasks and
bridges nothing.

The prefix is derived from `meta_mode`, so it also covers a
mautrix-meta-messenger role run with `meta_mode: instagram`. Renovate
keeps tracking the unprefixed tag for both roles, which is correct:
the two images are built from one git tag.

The self-build checkout took its git ref by parsing the tag out of the
container image reference. That would now ask for a non-existent `ig-`
git tag (upstream has none), and it was already wrong for a commit-hash
pin, where it asked for `HASH-amd64`. It uses `_version` directly now,
like every other role in the playbook does.

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/5510

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-13 07:19:47 +03:00

320 lines
20 KiB
YAML

# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev
# SPDX-FileCopyrightText: 2024 MDAD project contributors
# SPDX-FileCopyrightText: 2024 Nikita Chernyi
# SPDX-FileCopyrightText: 2024 Suguru Hirahara
#
# SPDX-License-Identifier: AGPL-3.0-or-later
---
# mautrix-meta is a Matrix <-> Facebook/Messenger/Instagram bridge
# Project source code URL: https://github.com/mautrix/meta
#
# WARNING: this bridge role is used for both Messenger and Instagram.
# This Messenger role acts as a source and auto-generates matrix-bridge-mautrix-meta-instagram
# thanks to `just rebuild-mautrix-meta-instagram` (`bin/rebuild-mautrix-meta-instagram.sh`).
# If you'd like to make changes to the Instagram role, consider making your changes to the Messenger role instead.
matrix_bridge_mautrix_meta_messenger_enabled: true
matrix_bridge_mautrix_meta_messenger_identifier: matrix-mautrix-meta-messenger
# renovate: datasource=docker depName=dock.mau.dev/mautrix/meta
matrix_bridge_mautrix_meta_messenger_version: v0.2607.0
matrix_bridge_mautrix_meta_messenger_base_path: "{{ matrix_base_data_path }}/mautrix-meta-messenger"
matrix_bridge_mautrix_meta_messenger_config_path: "{{ matrix_bridge_mautrix_meta_messenger_base_path }}/config"
matrix_bridge_mautrix_meta_messenger_data_path: "{{ matrix_bridge_mautrix_meta_messenger_base_path }}/data"
matrix_bridge_mautrix_meta_messenger_container_src_files_path: "{{ matrix_bridge_mautrix_meta_messenger_base_path }}/container-src"
matrix_bridge_mautrix_meta_messenger_container_image_self_build: false
matrix_bridge_mautrix_meta_messenger_container_image_self_build_repo: "https://github.com/mautrix/meta.git"
matrix_bridge_mautrix_meta_messenger_container_image: "{{ matrix_bridge_mautrix_meta_messenger_container_image_registry_prefix }}mautrix/meta:{{ matrix_bridge_mautrix_meta_messenger_container_image_tag }}"
matrix_bridge_mautrix_meta_messenger_container_image_registry_prefix: "{{ 'localhost/' if matrix_bridge_mautrix_meta_messenger_container_image_self_build else matrix_bridge_mautrix_meta_messenger_container_image_registry_prefix_upstream }}"
matrix_bridge_mautrix_meta_messenger_container_image_registry_prefix_upstream: "{{ matrix_bridge_mautrix_meta_messenger_container_image_registry_prefix_upstream_default }}"
matrix_bridge_mautrix_meta_messenger_container_image_registry_prefix_upstream_default: "dock.mau.dev/"
# Since v26.07, Instagram is a separate bridge upstream (its own binary and its own container image).
# Both bridges are published to the same container image repository, with Instagram's tags carrying an `ig-` prefix.
# See: https://mau.fi/blog/2026-07-mautrix-release/#new-instagram-bridge
#
# Prebuilt container images for specific commit hashes are tagged with an architecture suffix (e.g. `HASH-amd64`).
matrix_bridge_mautrix_meta_messenger_container_image_tag: "{{ 'ig-' if matrix_bridge_mautrix_meta_messenger_meta_mode == 'instagram' else '' }}{{ matrix_bridge_mautrix_meta_messenger_version }}{{ ('-' ~ matrix_architecture) if (matrix_bridge_mautrix_meta_messenger_version | length == 40) else '' }}"
matrix_bridge_mautrix_meta_messenger_container_network: ""
matrix_bridge_mautrix_meta_messenger_container_additional_networks: "{{ matrix_bridge_mautrix_meta_messenger_container_additional_networks_auto + matrix_bridge_mautrix_meta_messenger_container_additional_networks_custom }}"
matrix_bridge_mautrix_meta_messenger_container_additional_networks_auto: []
matrix_bridge_mautrix_meta_messenger_container_additional_networks_custom: []
# matrix_bridge_mautrix_meta_messenger_container_labels_traefik_enabled controls whether labels to assist a Traefik reverse-proxy will be attached to the container.
# See `../templates/labels.j2` for details.
#
# To inject your own other container labels, see `matrix_bridge_mautrix_meta_messenger_container_labels_additional_labels`.
matrix_bridge_mautrix_meta_messenger_container_labels_traefik_enabled: true
matrix_bridge_mautrix_meta_messenger_container_labels_traefik_docker_network: "{{ matrix_bridge_mautrix_meta_messenger_container_network }}"
matrix_bridge_mautrix_meta_messenger_container_labels_traefik_entrypoints: web-secure
matrix_bridge_mautrix_meta_messenger_container_labels_traefik_tls_certResolver: default # noqa var-naming
# Controls whether labels will be added that expose mautrix-meta-messenger's HTTP API
# (used by tools like mautrix-manager for bridge login) at `https://<hostname><path_prefix>`.
matrix_bridge_mautrix_meta_messenger_container_labels_exposure_enabled: "{{ matrix_bridge_mautrix_meta_messenger_exposure_enabled }}"
matrix_bridge_mautrix_meta_messenger_container_labels_exposure_traefik_rule: "Host(`{{ matrix_bridge_mautrix_meta_messenger_exposure_hostname }}`) && PathPrefix(`{{ matrix_bridge_mautrix_meta_messenger_exposure_path_prefix }}`)"
matrix_bridge_mautrix_meta_messenger_container_labels_exposure_traefik_priority: 0
matrix_bridge_mautrix_meta_messenger_container_labels_exposure_traefik_entrypoints: "{{ matrix_bridge_mautrix_meta_messenger_container_labels_traefik_entrypoints }}"
matrix_bridge_mautrix_meta_messenger_container_labels_exposure_traefik_tls: "{{ matrix_bridge_mautrix_meta_messenger_container_labels_exposure_traefik_entrypoints != 'web' }}"
matrix_bridge_mautrix_meta_messenger_container_labels_exposure_traefik_tls_certResolver: "{{ matrix_bridge_mautrix_meta_messenger_container_labels_traefik_tls_certResolver }}" # noqa var-naming
# matrix_bridge_mautrix_meta_messenger_container_labels_additional_labels contains a multiline string with additional labels to add to the container label file.
# See `../templates/labels.j2` for details.
#
# Example:
# matrix_bridge_mautrix_meta_messenger_container_labels_additional_labels: |
# my.label=1
# another.label="here"
matrix_bridge_mautrix_meta_messenger_container_labels_additional_labels: ''
# A list of extra arguments to pass to the container
matrix_bridge_mautrix_meta_messenger_container_extra_arguments: []
# List of systemd services that the systemd service depends on.
matrix_bridge_mautrix_meta_messenger_systemd_required_services_list: "{{ matrix_bridge_mautrix_meta_messenger_systemd_required_services_list_default + matrix_bridge_mautrix_meta_messenger_systemd_required_services_list_auto + matrix_bridge_mautrix_meta_messenger_systemd_required_services_list_custom }}"
matrix_bridge_mautrix_meta_messenger_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_bridge_mautrix_meta_messenger_systemd_required_services_list_auto: []
matrix_bridge_mautrix_meta_messenger_systemd_required_services_list_custom: []
# List of systemd services that the systemd service wants
matrix_bridge_mautrix_meta_messenger_systemd_wanted_services_list: []
# Controls whether the bridge container exposes its HTTP port.
#
# Takes an "<ip>:<port>" or "<port>" value (e.g. "127.0.0.1:29319"), or empty string to not expose.
matrix_bridge_mautrix_meta_messenger_container_http_host_bind_port: ''
# Database-related configuration fields
matrix_bridge_mautrix_meta_messenger_database_engine: sqlite3-fk-wal
matrix_bridge_mautrix_meta_messenger_sqlite_database_path_local: "{{ matrix_bridge_mautrix_meta_messenger_data_path }}/mautrix-meta.db"
matrix_bridge_mautrix_meta_messenger_sqlite_database_path_in_container: "/data/mautrix-meta.db"
matrix_bridge_mautrix_meta_messenger_database_suffix: |-
{{
({
'facebook': '_facebook',
'facebook-tor': '_facebook',
'messenger': '_messenger',
'instagram': '_instagram',
})[matrix_bridge_mautrix_meta_messenger_meta_mode]
}}
matrix_bridge_mautrix_meta_messenger_database_username: "matrix_mautrix_meta{{ matrix_bridge_mautrix_meta_messenger_database_suffix }}"
matrix_bridge_mautrix_meta_messenger_database_password: ''
matrix_bridge_mautrix_meta_messenger_database_hostname: ''
matrix_bridge_mautrix_meta_messenger_database_port: 5432
matrix_bridge_mautrix_meta_messenger_database_name: "matrix_mautrix_meta{{ matrix_bridge_mautrix_meta_messenger_database_suffix }}"
matrix_bridge_mautrix_meta_messenger_database_sslmode: disable
matrix_bridge_mautrix_meta_messenger_database_connection_string: 'postgres://{{ matrix_bridge_mautrix_meta_messenger_database_username }}:{{ matrix_bridge_mautrix_meta_messenger_database_password }}@{{ matrix_bridge_mautrix_meta_messenger_database_hostname }}:{{ matrix_bridge_mautrix_meta_messenger_database_port }}/{{ matrix_bridge_mautrix_meta_messenger_database_name }}?sslmode={{ matrix_bridge_mautrix_meta_messenger_database_sslmode }}'
matrix_bridge_mautrix_meta_messenger_homeserver_address: ""
matrix_bridge_mautrix_meta_messenger_homeserver_domain: '{{ matrix_domain }}'
# Whether asynchronous uploads via MSC2246 should be enabled for media.
# Requires a homeserver that supports MSC2246 (https://github.com/matrix-org/matrix-spec-proposals/pull/2246).
matrix_bridge_mautrix_meta_messenger_homeserver_async_media: false
matrix_bridge_mautrix_meta_messenger_homeserver_token: ''
matrix_bridge_mautrix_meta_messenger_appservice_address: "http://{{ matrix_bridge_mautrix_meta_messenger_identifier }}:29319"
# Scheme of the bridge's public address (see `matrix_bridge_mautrix_meta_messenger_bridge_public_address`).
matrix_bridge_mautrix_meta_messenger_scheme: https
# The public base URL at which this bridge's HTTP API is reachable from outside (when exposed).
# Used for the provisioning API's external-server (OpenID) flow and for public media links.
matrix_bridge_mautrix_meta_messenger_bridge_public_address: "{{ (matrix_bridge_mautrix_meta_messenger_scheme + '://' + matrix_bridge_mautrix_meta_messenger_exposure_hostname + matrix_bridge_mautrix_meta_messenger_exposure_path_prefix) if matrix_bridge_mautrix_meta_messenger_exposure_enabled else '' }}"
matrix_bridge_mautrix_meta_messenger_appservice_id: "{{ matrix_bridge_mautrix_meta_messenger_meta_mode }}"
matrix_bridge_mautrix_meta_messenger_msc4190_enabled: "{{ matrix_bridges_msc4190_enabled }}"
matrix_bridge_mautrix_meta_messenger_self_sign_enabled: "{{ matrix_bridges_self_sign_enabled }}"
# For Facebook/Messenger, we use the same `@messengerbot:example.com` username regardless of how bridging happens for multiple reasons:
# - it's consistent - regardless of how bridging happens, the bridged service is actually Messenger
# - it's easy for users - you may change the mode, but the bot is always at `@messengerbot:example.com`
# - it doesn't conflict with mautrix-facebook which uses `@facebookbot:example.com`
# - `matrix_bridge_mautrix_meta_messenger_appservice_avatar` only has icons for Messenger and Instagram, not Facebook
matrix_bridge_mautrix_meta_messenger_appservice_username_prefix: |-
{{
({
'facebook': 'messenger',
'facebook-tor': 'messenger',
'messenger': 'messenger',
'instagram': 'instagram',
})[matrix_bridge_mautrix_meta_messenger_meta_mode]
}}
matrix_bridge_mautrix_meta_messenger_appservice_username: "{{ matrix_bridge_mautrix_meta_messenger_appservice_username_prefix }}bot"
matrix_bridge_mautrix_meta_messenger_appservice_displayname: "{{ matrix_bridge_mautrix_meta_messenger_meta_mode | capitalize }} bridge bot"
matrix_bridge_mautrix_meta_messenger_appservice_avatar: "{{ 'mxc://maunium.net/JxjlbZUlCPULEeHZSwleUXQv' if matrix_bridge_mautrix_meta_messenger_meta_mode == 'instagram' else 'mxc://maunium.net/ygtkteZsXnGJLJHRchUwYWak' }}"
matrix_bridge_mautrix_meta_messenger_appservice_database_type: "{{ matrix_bridge_mautrix_meta_messenger_database_engine }}"
matrix_bridge_mautrix_meta_messenger_appservice_database_uri: |-
{{
{
'sqlite3-fk-wal': ('sqlite:///' + matrix_bridge_mautrix_meta_messenger_sqlite_database_path_in_container),
'postgres': matrix_bridge_mautrix_meta_messenger_database_connection_string,
}[matrix_bridge_mautrix_meta_messenger_database_engine]
}}
matrix_bridge_mautrix_meta_messenger_appservice_token: ''
# Controls which service this bridge is for.
# Valid options:
# * facebook - connect to FB Messenger via facebook.com
# * facebook-tor - connect to FB Messenger via facebookwkhpilnemxj7asaniu7vnjjbiltxjqhye3mhbshg7kx5tfyd.onion
# (note: does not currently proxy media downloads)
# * messenger - connect to FB Messenger via messenger.com (can be used with the facebook side deactivated)
# * instagram - connect to Instagram DMs via instagram.com
matrix_bridge_mautrix_meta_messenger_meta_mode: messenger
matrix_bridge_mautrix_meta_messenger_provisioning_shared_secret: disable
# Controls whether mautrix-meta-messenger's HTTP API is exposed publicly (used by tools like mautrix-manager for bridge login).
matrix_bridge_mautrix_meta_messenger_exposure_enabled: false
matrix_bridge_mautrix_meta_messenger_exposure_hostname: ''
matrix_bridge_mautrix_meta_messenger_exposure_path_prefix: ''
matrix_bridge_mautrix_meta_messenger_bridge_username_prefix: |-
{{
({
'facebook': 'facebook_',
'facebook-tor': 'facebook_',
'messenger': 'messenger_',
'instagram': 'instagram_',
})[matrix_bridge_mautrix_meta_messenger_meta_mode]
}}
# Localpart template of MXIDs for FB/IG users.
# {{.}} is replaced with the internal ID of the FB/IG user.
# Changing this may require that you change the regex in the appservice.
matrix_bridge_mautrix_meta_messenger_bridge_username_template: "{{ matrix_bridge_mautrix_meta_messenger_bridge_username_prefix + '{{.}}' }}"
matrix_bridge_mautrix_meta_messenger_bridge_displayname_suffix: |-
{{
({
'facebook': '(FB)',
'facebook-tor': '(FB)',
'messenger': '(FB)',
'instagram': '(IG)',
})[matrix_bridge_mautrix_meta_messenger_meta_mode]
}}
matrix_bridge_mautrix_meta_messenger_bridge_displayname_template: '{% raw %}{{or .DisplayName .Username "Unknown user"}}{% endraw %}{{ (" " ~ matrix_bridge_mautrix_meta_messenger_bridge_displayname_suffix) if matrix_bridge_mautrix_meta_messenger_bridge_displayname_suffix else "" }}'
# The prefix for commands. Only required in non-management rooms.
matrix_bridge_mautrix_meta_messenger_bridge_command_prefix: |-
{{
({
'facebook': '!fb',
'facebook-tor': '!fb',
'messenger': '!fb',
'instagram': '!ig',
})[matrix_bridge_mautrix_meta_messenger_meta_mode]
}}
# Whether or not created rooms should have federation enabled.
# If false, created portal rooms will never be federated.
matrix_bridge_mautrix_meta_messenger_bridge_federate_rooms: true
# Should the bridge create a space for each logged-in user and add bridged rooms to it?
# Users who logged in before turning this on should run `!meta sync-space` to create and fill the space for the first time.
matrix_bridge_mautrix_meta_messenger_bridge_personal_filtering_spaces: true
# Enable End-to-bridge encryption
matrix_bridge_mautrix_meta_messenger_bridge_encryption_allow: "{{ matrix_bridges_encryption_enabled }}"
matrix_bridge_mautrix_meta_messenger_bridge_encryption_default: "{{ matrix_bridges_encryption_default }}"
matrix_bridge_mautrix_meta_messenger_bridge_encryption_allow_key_sharing: "{{ matrix_bridge_mautrix_meta_messenger_bridge_encryption_allow }}"
matrix_bridge_mautrix_meta_messenger_bridge_encryption_appservice: false
matrix_bridge_mautrix_meta_messenger_bridge_encryption_require: false
matrix_bridge_mautrix_meta_messenger_double_puppet_secrets: "{{ matrix_bridge_mautrix_meta_messenger_double_puppet_secrets_auto | combine(matrix_bridge_mautrix_meta_messenger_double_puppet_secrets_custom) }}"
matrix_bridge_mautrix_meta_messenger_double_puppet_secrets_auto: {}
matrix_bridge_mautrix_meta_messenger_double_puppet_secrets_custom: {}
matrix_bridge_mautrix_meta_messenger_bridge_permissions: "{{ matrix_bridge_mautrix_meta_messenger_bridge_permissions_default | combine(matrix_bridge_mautrix_meta_messenger_bridge_permissions_custom) }}"
matrix_bridge_mautrix_meta_messenger_bridge_permissions_default: |-
{{
{'*': 'relay', matrix_bridge_mautrix_meta_messenger_homeserver_domain: 'user'}
| combine({matrix_admin: 'admin'} if matrix_admin else {})
}}
matrix_bridge_mautrix_meta_messenger_bridge_permissions_custom: {}
# Enable bridge relay bot functionality
matrix_bridge_mautrix_meta_messenger_bridge_relay_enabled: "{{ matrix_bridges_relay_enabled }}"
matrix_bridge_mautrix_meta_messenger_bridge_relay_admin_only: true
matrix_bridge_mautrix_meta_messenger_bridge_relay_default_relays: []
matrix_bridge_mautrix_meta_messenger_backfill_enabled: true
matrix_bridge_mautrix_meta_messenger_backfill_max_initial_messages: 50
matrix_bridge_mautrix_meta_messenger_backfill_max_catchup_messages: 500
matrix_bridge_mautrix_meta_messenger_backfill_unread_hours_threshold: 720
matrix_bridge_mautrix_meta_messenger_backfill_threads_max_initial_messages: 50
matrix_bridge_mautrix_meta_messenger_public_media_signing_key: ''
# Specifies the default log level.
# This bridge uses zerolog, so valid levels are: panic, fatal, error, warn, info, debug, trace
matrix_bridge_mautrix_meta_messenger_logging_min_level: warn
# Default configuration template which covers the generic use case.
# You can customize it by controlling the various variables inside it.
#
# For a more advanced customization, you can extend the default (see `matrix_bridge_mautrix_meta_messenger_configuration_extension_yaml`)
# or completely replace this variable with your own template.
matrix_bridge_mautrix_meta_messenger_configuration_yaml: "{{ lookup('template', 'templates/config.yaml.j2') }}"
matrix_bridge_mautrix_meta_messenger_configuration_extension_yaml: |
# Your custom YAML configuration goes here.
# This configuration extends the default starting configuration (`matrix_bridge_mautrix_meta_messenger_configuration_yaml`).
#
# You can override individual variables from the default configuration, or introduce new ones.
#
# If you need something more special, you can take full control by
# completely redefining `matrix_bridge_mautrix_meta_messenger_configuration_yaml`.
matrix_bridge_mautrix_meta_messenger_configuration_extension: "{{ matrix_bridge_mautrix_meta_messenger_configuration_extension_yaml | from_yaml if matrix_bridge_mautrix_meta_messenger_configuration_extension_yaml | from_yaml is mapping else {} }}"
# Holds the final configuration (a combination of the default and its extension).
# You most likely don't need to touch this variable. Instead, see `matrix_bridge_mautrix_meta_messenger_configuration_yaml`.
matrix_bridge_mautrix_meta_messenger_configuration: "{{ matrix_bridge_mautrix_meta_messenger_configuration_yaml | from_yaml | combine(matrix_bridge_mautrix_meta_messenger_configuration_extension, recursive=True) }}"
matrix_bridge_mautrix_meta_messenger_registration_yaml: |
id: {{ matrix_bridge_mautrix_meta_messenger_appservice_id | to_json }}
as_token: {{ matrix_bridge_mautrix_meta_messenger_appservice_token | to_json }}
hs_token: {{ matrix_bridge_mautrix_meta_messenger_homeserver_token | to_json }}
namespaces:
users:
- exclusive: true
regex: '^@{{ matrix_bridge_mautrix_meta_messenger_bridge_username_prefix | regex_escape }}.+:{{ matrix_bridge_mautrix_meta_messenger_homeserver_domain | regex_escape }}$'
- exclusive: true
regex: '^@{{ matrix_bridge_mautrix_meta_messenger_appservice_username | regex_escape }}:{{ matrix_bridge_mautrix_meta_messenger_homeserver_domain | regex_escape }}$'
url: {{ matrix_bridge_mautrix_meta_messenger_appservice_address }}
sender_localpart: _bot_{{ matrix_bridge_mautrix_meta_messenger_appservice_username }}
rate_limited: false
de.sorunome.msc2409.push_ephemeral: true
receive_ephemeral: true
io.element.msc4190: {{ matrix_bridge_mautrix_meta_messenger_msc4190_enabled | to_json }}
matrix_bridge_mautrix_meta_messenger_registration: "{{ matrix_bridge_mautrix_meta_messenger_registration_yaml | from_yaml }}"
# matrix_bridge_mautrix_meta_messenger_restart_necessary controls whether the service
# will be restarted (when true) or merely started (when false) by the
# systemd service manager role (when conditional restart is enabled).
#
# This value is automatically computed during installation based on whether
# any configuration files, the systemd service file, or the container image changed.
# The default of `false` means "no restart needed" — appropriate when the role's
# installation tasks haven't run (e.g., due to --tags skipping them).
matrix_bridge_mautrix_meta_messenger_restart_necessary: false