Files changed: engine/.embcache.json engine/changelog.md engine/lint-report.md vault/.trash/2026-06-19.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/central.md vault/docs/software/dns.md vault/docs/software/geo-tools.md vault/docs/software/navi.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/projects/advbbs-project.md vault/projects/argus.md vault/projects/deploy-livesync.md vault/projects/fleet-patch-audit.md vault/projects/fleet-platform-baseline.md vault/projects/matrix-synapse-deployment.md vault/projects/meshai-config-hot-apply.md vault/projects/meshai-region-routing-plan.md vault/projects/meshai.md vault/projects/meshcore-transport.md vault/projects/meshtastic-headscale-runbook.md vault/projects/mmud-project.md vault/projects/nominatim-v5-reimport.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/central-deploy-cutover.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/fleet-magicdns-resolved-migration.md vault/runbooks/headless-browser-page-verification.md vault/runbooks/headscale-oidc-boot-order.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/meshai-prod-compose-override.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/pymc-repeater-kiss-tnc-reenumeration.md vault/runbooks/recon-operations.md vault/runbooks/recon-service-integration.md vault/runbooks/syncthing-add-node.md vault/runbooks/toc-cortex-pve9.2-update.md vault/session-resume/SESSION-HANDOFF-meshai-test.md
3.6 KiB
3.6 KiB
| title | type | tags | aliases | related | updated | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| mautrix-signal Bridge Reference | reference |
|
|
2026-07-13 |
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: trueexperimental_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_filterconfig 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
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