Add matrix-rustpush-bridge (iMessage)

Add the matrix-rustpush-bridge role, a Matrix <-> iMessage bridge built
on the mautrix-go bridgev2 framework using RustPush (OpenBubbles backend).

Unlike the existing mautrix-imessage/wsproxy bridge, it talks directly to
Apple's push notification service, so it needs neither a running Mac nor a
wsproxy on the homeserver. Each user supplies a hardware key extracted from a
Mac through the bridge bot's login flow.

The bridge uses its own bot username and puppet namespace (rustpushbot,
rustpush_*) so it does not collide with the wsproxy iMessage bridge.

This bridge is in early development and may have stability issues.
This commit is contained in:
Jason LaGuidice
2026-06-24 01:17:09 -07:00
committed by GitHub
parent 6f57ab8ba1
commit 11cd178cb2
19 changed files with 1068 additions and 0 deletions
@@ -0,0 +1,24 @@
# SPDX-FileCopyrightText: 2026 MDAD project contributors
# SPDX-FileCopyrightText: 2026 Jason LaGuidice
#
# SPDX-License-Identifier: AGPL-3.0-or-later
---
- name: Check existence of matrix-rustpush-bridge service
ansible.builtin.stat:
path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-rustpush-bridge.service"
register: matrix_rustpush_bridge_service_stat
- when: matrix_rustpush_bridge_service_stat.stat.exists | bool
block:
- name: Ensure matrix-rustpush-bridge is stopped
ansible.builtin.service:
name: matrix-rustpush-bridge
state: stopped
daemon_reload: true
- name: Ensure matrix-rustpush-bridge.service doesn't exist
ansible.builtin.file:
path: "{{ devture_systemd_docker_base_systemd_path }}/matrix-rustpush-bridge.service"
state: absent