Self-Hosting Bridges
Overview
Section titled “Overview”The easiest way to self-host bridges is using Beeper Bridge Manager (bbctl
). It’s a tool for running self-hosted bridges with your Beeper account.
Key Benefits
Section titled “Key Benefits”- Security - Run official Beeper bridges on your own hardware securely
- Flexibility - Connect custom or third-party bridges without self-hosting a full Matrix server
- Control - Maintain complete control over message processing and encryption
Prerequisites
Section titled “Prerequisites”Before you begin, ensure you have:
- Operating System: Linux or macOS (amd64 or arm64)
- Python: Python 3 with
venv
module for Python-based bridges - ffmpeg: Required for media conversion in some bridges
- Beeper account: You’ll need an active Beeper account
Installation
Section titled “Installation”Step 1: Download bbctl
Section titled “Step 1: Download bbctl”Download the appropriate binary for your system:
You can check the GitHub releases for the latest version, checksum(s) and source code.
git clone https://github.com/beeper/bridge-manager.gitcd bridge-manager./build.sh
Step 2: Install Dependencies
Section titled “Step 2: Install Dependencies”sudo apt install python3 python3-venv ffmpeg
brew install python ffmpeg
Step 3: Login to Beeper
Section titled “Step 3: Login to Beeper”bbctl login
Running Official Bridges
Section titled “Running Official Bridges”-
Start a bridge
Terminal window bbctl run sh-<bridgename>Example:
bbctl run sh-whatsapp
-
Configure the bridge
- Send a DM to the bridge bot:
@sh-<bridgename>bot:beeper.local
- Follow the bot’s instructions to log in to the remote network
- Send a DM to the bridge bot:
-
Keep it running
- Currently runs in foreground (use
tmux
orscreen
for persistence) - Service mode for automatic startup coming soon
- Currently runs in foreground (use
Supported Official Bridges
Section titled “Supported Official Bridges”Bridge | Identifier(s) | Repository |
---|---|---|
Telegram | telegram | mautrix/telegram |
whatsapp | mautrix/whatsapp | |
Signal | signal | mautrix/signal |
Discord | discord | mautrix/discord |
Slack | slack | mautrix/slack |
Google Messages | gmessages , googlemessages , rcs , sms | mautrix/gmessages |
Google Voice | gvoice , googlevoice | mautrix/gvoice |
Meta (FB/Instagram) | meta , instagram , facebook | mautrix/meta |
Google Chat | googlechat , gchat | mautrix/googlechat |
twitter | mautrix/twitter | |
Bluesky | bluesky , bsky | mautrix/bluesky |
iMessage | imessage | mautrix/imessage |
iMessage (Go) | imessagego | beeper/imessage |
linkedin | mautrix/linkedin | |
IRC (Heisenbridge) | heisenbridge , irc | hifi/heisenbridge |
Running Third-Party Bridges
Section titled “Running Third-Party Bridges”BridgeV2-based Bridges
Section titled “BridgeV2-based Bridges”For bridges built with mautrix-go’s bridgev2 framework:
-
Generate config
Terminal window bbctl config --type bridgev2 sh-<bridgename> -
Add network configuration
Add the
network
section to the generated config with bridge-specific settings -
Run the bridge
Run the bridge with your config file
Custom Bridges
Section titled “Custom Bridges”For other third-party bridges:
-
Generate registration
Terminal window bbctl register sh-<bridgename> -
Configure the bridge
Configure the bridge according to its documentation
-
Run the proxy
Terminal window bbctl proxy -r registration.yamlThis connects your bridge to Beeper
Managing Bridges
Section titled “Managing Bridges”Delete a Bridge
Section titled “Delete a Bridge”bbctl delete sh-<bridgename>
This permanently removes the bridge and all associated data from Beeper servers.