Files changed: .gitignore CLAUDE.md credentials engine/.embcache.json engine/changelog.md engine/config.yaml engine/lib/__pycache__/agent.cpython-312.pyc engine/lib/agent.py engine/lib/lint.py engine/lint-report.md engine/sweep-full.log engine/sweep.sh vault/.obsidian/graph.json vault/.obsidian/workspace.json vault/INDEX.md vault/archive/projects/mmud/last-ember-chronicle.html vault/archive/projects/mmud/last-ember-howto.html vault/archive/projects/mmud/last-ember.html vault/archive/projects/mmud/mmud-phase5-prompt.md vault/archive/projects/mmud/mmud-phase6-prompt.md vault/archive/projects/mmud/mmud-prompts/mmud-prompts/01-update-planned.md vault/archive/projects/mmud/mmud-prompts/mmud-prompts/02-npc-nodes.md vault/archive/projects/mmud/mmud-prompts/mmud-prompts/03-darkcragg.md vault/archive/projects/mmud/mmud-prompts/mmud-prompts/04-dcrg-node.md vault/archive/projects/mmud/mmud-prompts/mmud-prompts/05-phase5.md vault/archive/projects/mmud/mmud-prompts/mmud-prompts/06-phase6.md vault/archive/projects/mmud/mmud-prompts/mmud-prompts/README.md vault/archive/projects/mmud/mmud-prompts/mmud-prompts/mmud-project.md vault/docs/hardware/environment.md vault/docs/hardware/ip-allocation.md vault/docs/matrix/archivist.md vault/docs/matrix/matrix_host.md vault/docs/matrix/mautrix_signal.md vault/docs/matrix/synapse.md vault/docs/matrix/synapse_retention_discovery.md vault/docs/navi/cc-rules.md vault/docs/navi/deployment.md vault/docs/navi/themes.md vault/docs/services/ots-setup.md vault/docs/services/services.md vault/docs/services/usenet.md vault/docs/software/authentik.md vault/docs/software/caddy.md vault/docs/software/dns.md vault/docs/software/geo-tools.md vault/docs/software/recon.md vault/docs/software/searxng.md vault/glossary.md vault/notes/echo6-landing-page-data-export.md vault/notes/ia-download-queue.md vault/plans/vaultwarden-plan.md vault/projects/advbbs-project.md vault/projects/argus.md vault/projects/deploy-livesync.md vault/projects/matrix-synapse-deployment.md vault/projects/meshtastic-headscale-runbook.md vault/projects/mmud-project.md vault/runbooks/add-peertube-channel.md vault/runbooks/authentik-access-groups.md vault/runbooks/authentik-create-invitation.md vault/runbooks/authentik-oidc-application.md vault/runbooks/authentik-upgrade.md vault/runbooks/ct-runbook.md vault/runbooks/edge2-access-reference.md vault/runbooks/expose-service-contabo.md vault/runbooks/expose-service-edge2.md vault/runbooks/expose-service-home.md vault/runbooks/headscale-onboard-node.md vault/runbooks/ia-cli-reference.md vault/runbooks/ia-download-mirror.md vault/runbooks/idahomesh-bridge-setup.md vault/runbooks/idahomesh-vpn-device-setup.md vault/runbooks/lxc-service-migration.md vault/runbooks/mailcow-create-mailbox.md vault/runbooks/meshmonitor-password-reset.md vault/runbooks/meshtastic-sidecar-node.md vault/runbooks/meshtasticd-sim-nodes-runbook.md vault/runbooks/nordvpn-lxc.md vault/runbooks/peertube-remote-runner.md vault/runbooks/pg-backup.md vault/runbooks/pi-nas-omv-runbook.md vault/runbooks/pipeline-patterns.md vault/runbooks/proxmox-create-ubuntu-vm.md vault/runbooks/proxmox-onboard-node.md vault/runbooks/recon-operations.md vault/runbooks/recon-service-integration.md vault/runbooks/syncthing-add-node.md vault/session-resume/SESSION-HANDOFF-meshai-test.md
117 lines
3.6 KiB
Markdown
117 lines
3.6 KiB
Markdown
---
|
|
title: mautrix-signal Bridge Reference
|
|
type: reference
|
|
tags:
|
|
- matrix
|
|
aliases: []
|
|
related:
|
|
- [[synapse]]
|
|
- [[matrix-synapse-deployment]]
|
|
- [[synapse_retention_discovery]]
|
|
- [[archivist]]
|
|
- [[advbbs-project]]
|
|
updated: 2026-06-18
|
|
---
|
|
# mautrix-signal Bridge Reference
|
|
# Deployed: 2026-04-09 (Phase 3)
|
|
# Updated: 2026-04-09 (Phase 5)
|
|
|
|
## Deployment
|
|
|
|
- **Image:** dock.mau.dev/mautrix/signal:v0.2603.0
|
|
- **Container:** mautrix-signal
|
|
- **Compose:** /opt/matrix/docker-compose.yml (same stack as [[synapse]])
|
|
- **Config dir:** /opt/matrix/mautrix-signal/
|
|
- **Network:** matrix-net (internal only, no host port mapping)
|
|
- **Appservice port:** 29328 (container-internal)
|
|
|
|
## Database
|
|
|
|
- **DB name:** mautrix_signal
|
|
- **DB role:** mautrix_signal (NOSUPERUSER, NOCREATEDB, NOCREATEROLE)
|
|
- **Host:** matrix-postgres:5432 (same container as Synapse/MAS)
|
|
- **Collation:** C/C (matches Synapse)
|
|
|
|
## Signal Account
|
|
|
|
- **Phone:** +12083080811
|
|
- **Login ID:** 58f99d83-f3a8-487f-a2b7-3d118e236d23
|
|
- **Matrix user:** @matt:echo6.co
|
|
|
|
## Bot
|
|
|
|
- **MXID:** @signalbot:echo6.co
|
|
- **Device ID:** UPX4KKLZVY
|
|
- **Management room:** !fDjIRTMjxILVQoAcEN:echo6.co
|
|
|
|
## Encryption
|
|
|
|
- **E2BE:** enabled (allow: true, default: true, require: true)
|
|
- **MSC4190:** enabled (required for MAS compatibility)
|
|
- **Pickle key:** auto-generated, stored in config
|
|
- **Self-sign:** true
|
|
|
|
## Synapse Integration
|
|
|
|
- **Registration files:** /opt/matrix/synapse/registration.yaml, /opt/matrix/synapse/doublepuppet.yaml
|
|
- **homeserver.yaml additions:**
|
|
- `app_service_config_files: [/data/registration.yaml, /data/doublepuppet.yaml]`
|
|
- `experimental_features.msc3202_transaction_extensions: true`
|
|
- `experimental_features.msc2409_to_device_messages_enabled: true`
|
|
- **Registration file permissions:** 644 (world-readable, Synapse UID 991)
|
|
|
|
## Double Puppeting
|
|
|
|
- **Method:** appservice-based (doublepuppet.yaml)
|
|
- **as_token:** configured in bridge config `double_puppet.secrets`
|
|
- **Effect:** Messages matt sends from Signal appear as @matt:echo6.co in Matrix
|
|
|
|
## MAS Compatibility
|
|
|
|
- **Confirmed working:** as_token auth bypasses MAS entirely
|
|
- **MSC4190:** Parsed from registration.yaml `io.element.msc4190: true`, NOT a homeserver experimental_features flag
|
|
- **Synapse handles appservice auth independently of MAS token introspection**
|
|
|
|
## Autocreate Behavior
|
|
|
|
- **No autocreate toggle exists** in bridgev2 signal connector
|
|
- `portal_create_filter` config key is silently stripped on restart
|
|
- Old keys (`autocreate_group_portal`, `autocreate_contact_portal`) don't exist
|
|
- Portals auto-create when incoming Signal messages arrive for untracked groups/DMs
|
|
- This is the default and only behavior — cannot be disabled
|
|
|
|
## Permissions
|
|
|
|
```yaml
|
|
bridge:
|
|
permissions:
|
|
"*": relay
|
|
"echo6.co": user
|
|
"@matt:echo6.co": admin
|
|
```
|
|
|
|
## Backup
|
|
|
|
- DB dumped by /opt/matrix/scripts/pg_backup.sh (added alongside synapse + mas dumps)
|
|
- 14-day retention, daily at 3 AM
|
|
|
|
## Management Commands
|
|
|
|
Available in management room (!fDjIRTMjxILVQoAcEN:echo6.co):
|
|
- `!signal help` — list commands
|
|
- `!signal ping-matrix` — verify Matrix connectivity
|
|
- `!signal list-logins` — show linked Signal accounts
|
|
- `!signal sync-portal` — force-sync current portal
|
|
- `!signal id` — show bridge IDs for current room
|
|
- `!signal create-group` — create a new Signal group
|
|
- `!signal start-chat` — start a DM with a Signal user
|
|
- `!signal resolve-identifier` — look up a Signal user
|
|
|
|
NOT available (bridgev2 signal connector doesn't expose):
|
|
- `list-chats`, `bridge`, `create-portal`, `filter`
|
|
|
|
## Provisioning API
|
|
|
|
- **Shared secret:** in config.yaml (do NOT log or put in ref files)
|
|
- **Allow Matrix auth:** true
|
|
- **Debug endpoints:** false
|