Matrix Telegram pupetting bridge for YunoHost
Find a file
Benedikt Tissot 8a7d54dbc3 change signal to telegram
add commas to make json happy

some minor enhancements

hopefully fix mising bdist_wheel

add zlib1g-dev as dependency

needed to compile / install pillow in virtualenv

libjpeg is also a dep of pillow

disable packages requiring pillow for now

another try with corrected config.toml

add missing arguments to alembic

try other options for alembic

try again with the binary...

final try for the alembic configuration

enable failure cleaning again

alembic still fails...

try to fix alembic step

we do not need to activate the venv in this case

finally working installation

use the default database options

make upgrade possible

bump version, to upgrade...

better upgrade script

remove unnecessary upgrade bits

hopefully we converge

remove more unused stuff

upgrading should save the auto generated values...

fix a type and upgrade script

disable abort if errors

reenable abort if errors

puppeting is actually the usefull permission

troubleshooting page

further improve readme
2021-03-24 22:49:16 +01:00
conf change signal to telegram 2021-03-24 22:49:16 +01:00
scripts change signal to telegram 2021-03-24 22:49:16 +01:00
sources copy from mautrix_signal_ynh 2021-03-24 22:49:07 +01:00
check_process.default copy from mautrix_signal_ynh 2021-03-24 22:49:07 +01:00
issue_template.md copy from mautrix_signal_ynh 2021-03-24 22:49:07 +01:00
LICENSE copy from mautrix_signal_ynh 2021-03-24 22:49:07 +01:00
manifest.json change signal to telegram 2021-03-24 22:49:16 +01:00
pull_request_template.md copy from mautrix_signal_ynh 2021-03-24 22:49:07 +01:00
README.md change signal to telegram 2021-03-24 22:49:16 +01:00
README_fr.md copy from mautrix_signal_ynh 2021-03-24 22:49:07 +01:00

A Matrix-Telegram puppeting bridge for YunoHost

Integration level
Install Mautrix-Telegram with YunoHost

Lire ce readme en français.

This package allows you to install Mautrix-Telegram quickly and simply on a YunoHost server.
If you don't have YunoHost, please consult the guide to learn how to install it.

Overview

A puppeting bridge between Matrix and Telegram packaged as a YunoHost service. Messages, notifications (and sometimes media) are bridged between a Telegram user and a Matrix user. Currently the Matrix user can NOT invite other Matrix user in a bridged Telegram room, so only someone with a Telegram account can participate to Telegram group conversations. The "Mautrix-Telegram" bridge consists in a Synapse App Service and relies on postgresql (mysql also possible). Therefore, Synapse for YunoHost should be installed beforehand.

Shipped version: 0.1.0

Screenshots

![](Link to a screenshot of this app.)

List of known public services

  • Ask on one of the following rooms: #mautrix_yunohost:matrix.fdn.fr or #telegram:maunium.net

Bridging usage

** Note that several Telegram and Matrix users can be bridged, each Telegram account has its own bot administration room. If they are in a same Telegram group, only one matrix room will be created. **

Bridge a Telegram user and a Matrix user

  • First your Matrix user or Synapse Server has to be authorized in the Configuration of the bridge (see below)
  • Then, invite the bot (default @telegrambot:yoursynapse.domain) in this new Mautrix-Telegram bot administration room.
  • Send !tg help to the bot in the created room to know how to control the bot. See also upstream wiki Authentication page

Logging into Telegram account

  • Type login or login-qr (untested) in main management room (!tg in any bridge room)
  • follow setup instructions from bot
  • By defaults, only conversations with very recent messages and groups will be suggested to be bridged
  • Accept invitations to the bridged chat rooms

Registering the Bridge as a primary device (untested)

  • Type !tg register <phone>, where <phone> is your phone number in the internation format with no space, e.g. !tg register +33612345678
  • Answer in the bot room with the verification code that you reveived in SMS.
  • Set a profile name with !tg set-profile-name <name>

Double puppeting

  • Log in with login-matrix <access token>
  • After logging in, the default Matrix puppet of your Telegram account should leave rooms and your account should join all rooms the puppet was in automatically.

Relaybot: Bridge a group for several Matrix and several Telegram users to chat together

Not yet available

Configuration of the bridge

The bridge is roughly configured at installation, e.g. allowed admin and user of the bot. Finer configuration can be done by modifying the following configuration file with SSH: /opt/yunohost/mautrix_telegram/config.yaml and then restarting the mautrix_telegram service.

Documentation

  • Official "Mautrix-Telegram" documentation: https://docs.mau.fi/bridges/python/telegram/index.html
  • Matrix room (Matrix Bridges in Yunohost): #mautrix_yunohost:matrix.fdn.fr
  • Matrix room (upstream app): #telegram:maunium.net In case you need to upload your logs somewhere, be aware that they contain your contacts' and your phone numbers. Strip them out with | sed -r 's/[0-9]{10,}/📞/g'
  • "Mautrix-Telegram" bridge is based on the telegram daemon project.
  • YunoHost documentation: If more specific documentation is needed, feel free to contribute.

YunoHost specific features

Multi-user support

  • Bot users are not related to Yunohost users. Any Matrix account or Synapse server autorized in the configuration of the bridge can invite/use the bot.
  • The Telegram bot is a local Matrix-Synapse user, but accessible through federation (synapse public or private).
  • Several Telegram and Matrix users can be bridged with one bridge, each user has its own bot administration room.
  • If several bot users are in a same Telegram group, only one Matrix room will be created by the bridge.
  • See https://github.com/YunoHost-Apps/synapse_ynh#multi-users-support

Multi-instance support

  • Multi-instance installation should work. Several bridge instances could be installed for one Matrix-Synapse instance so that one Matrix user can bridge several Telegram accounts.
  • Several bridge instances could be installed for each Matrix-Synapse instance to benefit from it. But one bridge can be used by users from several Matrix-Synapse instances.

Supported architectures

  • x86-64 - Build Status
  • ARMv8-A - Build Status

Troubleshooting

  • Check the spelling of the bot name!
  • For slow servers it might be necessary to run systemctl edit mautrix_telegram.service (also for coturn.service and coturn-synapse.service) and insert
[Service]
ExecStartPre=/bin/sleep 90

such that it is ensured that synapse is running before the bridge tries to connect. (If it worked after installation but broke after a restart this probably is it.)

Additional information

  • Other info you would like to add about this app.

More info on the documentation page:
https://docs.mau.fi/bridges/python/telegram/index.html


Developer info

Only if you want to use a testing branch for coding, instead of merging directly into master. Please send your pull request to the testing branch.

To try the testing branch, please proceed like that.

sudo yunohost app install https://github.com/YunoHost-Apps/mautrix_telegram_ynh/tree/testing --debug
or
sudo yunohost app upgrade mautrix_telegram -u https://github.com/YunoHost-Apps/mautrix_telegram_ynh/tree/testing --debug

To test communication between the App Service and Matrix-Synapse on a VM (e.g. with domain name: synapse.vm), you must install a certificate:

echo | openssl s_client -showcerts -servername synapse.vm -connect synapse.vm:443 2>/dev/null | awk '/-----BEGIN CERTIFICATE-----/, /-----END CERTIFICATE-----/' >> /usr/local/share/ca-certificates/synapse.vm.crt
update-ca-certificates