How to Configure Bridges in Matrix: WhatsApp, Telegram, and Discord
To bridge Matrix with WhatsApp, Telegram, or Discord, run a compatible bridge service beside your homeserver, register that service as a Matrix application service, and then link or authorize the external account. Each network needs its own bridge configuration and credentials. A running process alone does not prove that a room is bridged: test a message in both directions after setup.
One Matrix homeserver can connect to three separately configured bridge services.
Should you self-host the bridges or use a public instance?
Self-hosting gives you control over where the bridge runs, how logs and credentials are stored, and which users may connect. It also means you maintain three services, update them, protect their databases, and troubleshoot connectivity. A public bridge can be faster to try, but its operator controls availability, access policy, and data handling. Check the bridge's current documentation and support room before choosing an instance; availability and features can change.
These connections are not equivalent to native support from the messaging services. Bridged features may differ from network to network, and voice/video calls, reactions, edits, threads, read receipts, history, or group administration may be incomplete. Test the features your community actually depends on before moving important conversations.
What do you need before installing anything?
A Matrix homeserver that supports application services and administrator access to register them. The examples below use Synapse; other homeservers have their own registration process.
A reachable network path between the homeserver and each bridge. In Docker, localhost inside one container means that container itself; use a shared Docker network and the bridge service's network name when the homeserver must reach another container.
A separate configuration, registration file, persistent data location, and secret store for each bridge. Follow the current project instructions for supported databases, runtime versions, and container images; requirements differ and change.
W przypadku WhatsApp, telefon z kontem, które chcesz połączyć. W przypadku Telegrama, konto, na którym jesteś już zalogowany za pośrednictwem oficjalnego klienta Telegrama. W przypadku Discorda, aplikacja/bot Discorda i zgoda właściciela lub administratora serwera.
Synapse odczytuje każdy plik rejestracji mostu ze ścieżki skonfigurowanej w app_service_config_files; pokazane ścieżki są przykładowe.
Jak zarejestrować most w Synapse?
Wdrażaj most po moście. Zacznij od aktualnej wersji i jej przykładowej konfiguracji. Ustaw adres serwera domowego, nazwę serwera publicznego, adres nasłuchiwacza mostu, bazę danych i ścieżki pamięci masowej zgodnie z instrukcją dla danego projektu. Unikaj współdzielenia jednej bazy danych między niepowiązanymi usługami mostu.
Wygeneruj plik rejestracyjny. Proces konfiguracji mostu tworzy plik YAML rejestracyjny zawierający tokeny tożsamości i uwierzytelniania usługi aplikacji. Traktuj te tokeny jak hasła: ogranicz uprawnienia do plików, nie zatwierdzaj ich w Gicie i nie wklejaj w pokojach publicznych, zrzutach ekranu ani postach pomocy technicznej.
Ustaw plik jako widoczny dla Synapse. Skopiuj lub zamontuj plik rejestracyjny, aby proces Synapse mógł go odczytać. Dodaj ścieżkę poniżej app_service_config_filesw pliku Synapse homeserver.yaml. Dodaj osobny wpis na liście dla każdego mostu; nie nadpisuj wpisu innej usługi. Przewodnik po rejestracji usługi aplikacji Mautrix opisuje ten proces i zaznacza, że po zmianie listy rejestracyjnej należy ponownie uruchomić Synapse.
Uruchom ponownie i sprawdź logi. Po zmianie rejestracji uruchom ponownie Synapse, a następnie uruchom most. Jeśli Synapse nie uruchomi się, najpierw sprawdź wcięcie YAML, ścieżkę do pliku w kontenerze i uprawnienia do odczytu. Jeśli most uruchomi się, ale nie będzie mógł się połączyć, sprawdź adres URL serwera domowego, trasę sieciową, certyfikat TLS i adres nasłuchiwacza.
W przypadku wdrożeń Dockera, skonfigurowany adres usługi aplikacji mostu musi być dostępny z kontenera serwera domowego. Wstępne uwagi dotyczące konfiguracji Mautrix wyjaśniają, dlaczego nazwa kontenera w sieci współdzielonej może działać, a localhostnie działa. Projekt Discorda dokumentuje również własny przepływ pracy rejestracji i przykładową konfigurację w pliku README .
Jak połączyć konto WhatsApp?
Po zarejestrowaniu i uruchomieniu aplikacji Mautrix-WhatsApp, otwórz prywatny czat Matrix z botem mostu i wyślij wiadomość login qr. Otwórz WhatsApp na telefonie, do którego przypisane jest konto, przejdź do sekcji „Połączone urządzenia” i zeskanuj kod wyświetlony przez most. Dokumentacja mostu opisuje również opcję parowania numeru telefonu; użyj metody aktualnie obsługiwanej przez zainstalowaną wersję. Nie kopiuj kodu logowania ani obrazu QR do pokoju publicznego.
Proces uwierzytelniania mostu WhatsApp wymaga połączenia mostu jako urządzenia z kontem WhatsApp na telefonie.
Podczas parowania zachowaj telefon i konto, a przed otwarciem pokoi w portalu upewnij się, że most zgłasza pomyślne logowanie. To połączenie konta odbywa się poprzez sesję w stylu urządzenia towarzyszącego; nie powoduje to przekształcenia mostu w oficjalną integrację z API WhatsApp Business. WhatsApp może zmienić sposób łączenia urządzeń, dlatego należy postępować zgodnie z aktualnymi instrukcjami uwierzytelniania Mautrix-WhatsApp . Most może synchronizować tylko historię udostępnianą przez usługę zewnętrzną połączonemu urządzeniu i implementowaną przez most.
Jak podłączyć Telegram?
Rozpocznij prywatną rozmowę z botem mautrix-telegram. Most obsługuje logowanie za pomocą kodu QR i sześciocyfrowy kod logowania wysyłany do już zalogowanego klienta Telegram; nie rejestruje nowego konta w Telegramie. Aby zalogować się za pomocą kodu QR, otwórz Telegram na telefonie, przejdź do Ustawienia > Urządzenia > Połącz urządzenie stacjonarne , a następnie wyślij login qrkod do bota mostu i zeskanuj go. Postępuj zgodnie z instrukcjami bota, jeśli Twoje konto Telegram ma włączoną weryfikację dwuetapową.
Ekran urządzenia Link Desktop Device w aplikacji Telegram służy do autoryzacji sesji mostu; etykiety menu mogą się różnić w zależności od wersji aplikacji.
Użyj konta, które jest już utworzone i przestrzegaj zasad logowania Telegrama. Opiekunowie mostu ostrzegają, że Telegram może traktować nowe konta korzystające z zewnętrznych aplikacji jako podejrzane; jest to ryzyko po stronie platformy, którego administrator Matrixa nie jest w stanie zagwarantować. Przed zalogowaniem zapoznaj się z instrukcją uwierzytelniania Mautrix-Telegram i zachowaj jednorazowy kod lub hasło w prywatnym czacie bota.
Jak skonfigurować Discorda?
Projekt matrix-appservice-discord korzysta z aplikacji i bota Discord. Utwórz aplikację w portalu programistów Discord , utwórz/skonfiguruj użytkownika bota i ustaw dane uwierzytelniające bota w konfiguracji mostu, korzystając z aktualnego przykładu projektu. Nie udostępniaj tokena bota. Uruchom udokumentowane polecenie lub przepływ authorization-link mostu, a następnie poproś właściciela serwera Discord o autoryzację bota dla wybranego serwera, udzielając mu tylko uprawnień wymaganych przez most.
Konfiguracja Discorda zaczyna się od aplikacji i bota; dokładne pola i opcje autoryzacji są zgodne z bieżącym portalem Discorda i przykładową konfiguracją mostu.
W przypadku konkretnego kanału, należy uzyskać identyfikatory serwera i kanału za pomocą obsługiwanych narzędzi programistycznych Discorda, zaprosić bota mostu Matrix do pokoju Matrix i użyć udokumentowanego polecenia „room” mostu. Plik README zawiera przykład w formacie !discord bridge ServerID ChannelID; do utworzenia linku może być wymagana zgoda administratora. Nie należy używać identyfikatorów z ilustracji: należy je zastąpić rzeczywistymi identyfikatorami i potwierdzić polecenie oraz uprawnienia, porównując je z plikiem README dla zainstalowanej wersji.
Polecenie Discord room łączy pokój Matrix z serwerem Discord i kanałem; podmień prawdziwe identyfikatory i postępuj zgodnie z monitem o zatwierdzenie.
Discord jest szczególnie zależny od uprawnień botów i polityki serwera. Jeśli bot może dołączyć, ale wiadomości nie napływają, sprawdź, czy kanał jest dla niego widoczny, czy przyznano wymagane uprawnienia do wiadomości, a most zakończył wszelkie potwierdzenia administratora. Projekt jest oznaczony jako beta w pliku README, więc sprawdź aktualny status projektu i obsługiwane zachowania, zamiast zakładać, że każda funkcja Discorda jest dublowana.
Jak można sprawdzić czy most działa?
Najpierw skorzystaj z małego, prywatnego pokoju testowego i kanału o niskim ryzyku. Wyślij unikalną wiadomość tekstową z Matrix i potwierdź jej pojawienie się w usłudze zdalnej; następnie odpowiedz ze strony zdalnej i potwierdź, że odpowiedź pojawi się w Matrix. Sprawdź osobno atrybucję, wątki odpowiedzi, załączniki, edycje i reakcje, jeśli mają one znaczenie dla Twojego przypadku użycia. Zielony status procesu oznacza jedynie, że program jest uruchomiony: nie potwierdza, że logowanie zakończyło się powodzeniem, bot ma dostęp do kanału ani że mapowanie pokoju na kanał jest poprawne.
Przydatnym sposobem przeprowadzenia kompleksowej kontroli jest wysłanie wiadomości testowej w obu kierunkach i sprawdzenie, czy jej odpowiednik pojawia się w połączonym pokoju.
W przypadku niepowodzenia testu należy porównać dokładny czas wysłania komunikatu z logami mostu i serwera domowego. Przed udostępnieniem logów należy usunąć tokeny dostępu, numery telefonów, identyfikatory Discord (jeśli są poufne) oraz nazwiska kontaktów. W przypadku wdrożeń kontenerowych należy również sprawdzić, czy plik rejestracyjny jest zamontowany w Synapse, punkt końcowy mostu jest rozpoznawany w sieci współdzielonej i czy żadna zapora sieciowa nie blokuje skonfigurowanego odbiornika.
Do sprawdzania stanu procesów i łączności używaj dzienników mostu i serwera domowego; te przykładowe wiersze stanu nie stanowią przechwyconych wyników diagnostycznych.
Co powinieneś wiedzieć o szyfrowaniu i prywatności?
Usługi aplikacji odbierają zdarzenia w przestrzeniach nazw i pokojach, do obsługi których są skonfigurowane. Nie należy zakładać, że zaszyfrowany pokój Matrix jest automatycznie odczytywalny przez każdy most. Niektóre mosty Mautrix obsługują szyfrowanie typu „end-to-bridge”, które musi być celowo skonfigurowane i ma własne wymagania dotyczące zarządzania kluczami; należy zapoznać się z przewodnikiem szyfrowania Mautrix typu „end-to-bridge” i zweryfikować obsługę konkretnego mostu. Możliwości szyfrowania mostu Discord mogą się różnić. Jeśli most nie obsługuje trybu szyfrowania pokoju, należy użyć odpowiedniego, niezaszyfrowanego pokoju testowego lub wybrać most z udokumentowaną obsługą, zamiast osłabiać pokój produkcyjny metodą domysłów.
Na koniec pamiętaj, że treść wiadomości i dane uwierzytelniające konta przechodzą przez oprogramowanie, którym zarządzasz lub które obsługuje publiczny operator mostu. Ogranicz liczbę osób, które mogą zapraszać boty mostu, chroń bazy danych i kopie zapasowe, wymień token w przypadku wycieku i zapoznaj się z aktualnymi wytycznymi dotyczącymi prywatności i bezpieczeństwa mostu. Przed aktualizacjami sprawdź ponownie dokumentację źródłową: klucze konfiguracyjne, przepływy logowania, zależności i zasady platformy mogą się zmieniać niezależnie.
Szybka lista kontrolna decyzji
Wybierz instancję mostu, której operatorowi i zasadom dostępu ufasz.
Zarejestruj każdy most osobno i chroń każdy wygenerowany token.
Sprawdź, czy serwer domowy może dotrzeć do adresu mostu po wdrożeniu.
Połącz prywatnie konta WhatsApp/Telegram i autoryzuj bota Discord u administratora serwera.
Przetestuj wiadomości w obu kierunkach, a następnie przetestuj tylko te dodatkowe funkcje, których potrzebujesz.
Przed wykorzystaniem mostu do komunikacji poufnej lub istotnej należy sprawdzić obsługę szyfrowania, historię zachowania i status konserwacji.