Matrix-XMPP Bridge

Published 01-01-0001 00:00:00

Installing Matrix-XMPP Bridge on Gentoo

Creating an account in a jabber for a bot

Example for Prosody Server

~ # prosodyctl adduser matrixbridge@ussr.win 

Example for Ejabberd Server

TODO 

Example for Openfire Server

TODO

Creating a user with a home directory

~ # useradd -m -g users -G wheel,audio -s /bin/bash kronoz

Creating an isolated environment

Cloning a pyenv repository in a directory and going into it

~ $ git clone https://github.com/yyuu/pyenv.git ~/.pyenv && cd $_

Adding settings to bashrc

~ $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
~ $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
~ $ echo 'eval "$(pyenv init -)"' >> ~/.bashrc

Reloading the Shell

~ $ exec $SHELL

Python installation in isolated environment

View a list of available versions

~ $ pyenv install -l

Installing the correct version

~ $ pyenv install 3.5.2

Install matrix-xmpp-bridge

Cloning a matrix-xmpp-bridge repository into a directory and going into it

~ $ git clone https://github.com/pztrn/matrix-xmpp-bridge.git ~/bots/matrix-xmpp-bridge && cd $_

Enabling python environment with the required version

~ $ pyenv local 3.5.2

Updating the Python Packet Manager

~ $ pip install --upgrade pip

Installing dependencies

~ $ pip install -r requirements.txt

The matrix-xmpp-bridge configuration

Copying the configuration file mxbridge.conf.example

~ $ cp mxbridge.conf.example mxbridge.conf

Editing the mxbridge.conf configuration file

~ $ nano mxbridge.conf
[database]
adaptor=json

[Matrix]
# Суперсекретный AS токен из registration.yaml
token=supersekrettoken
# УРЛ для АПИ Матрицы
api_url=http://localhost:8008/_matrix/client/api/v1
# Идентификатор комнаты
room_id=!CvcvRuDYDzTOzfKKgh:ussr.win

[XMPP]
# Конференция, чтобы присоединиться
muc_room=public@conference.ussr.win
# Никнейм для мастер-пользователя моста в конференции
nick=mxbridge
# XMPP аккаунт
username=matrixbridge@ussr.win
# XMPP пароль
password=supersekret
# XMPP адрес сервера
server_address=127.0.0.1

[appservice_listener]
# Адрес на котором сервис приложений Матрицы будет слушать. Должен быть
# равен части хоста из "url" параметра registartion.yaml
listen_address=localhost
# Порт для прослушевания сервиса приложений Матрицы. Должен быть равен
# части порта из "url" параметра registartion.yaml
listen_port=5100

[appservice]
# Префикс, который будет использоваться отображением псевдопользователей
users_prefix=xmpp_
# Домен, на котором домашний сервер Матрицы запускается
domain=ussr.win
# локальная часть отправителя из registration.yaml
sender_localpart=mxbridge

Copying the configuration file registration.yaml.example

~ $ cp registration.yaml.example registration.yaml

Editing the configuration file registration.yaml

~ $ nano registration.yaml
# registration.yaml

# Это базовый URL сервиса приложений
url: "http://localhost:5100"

# Это токен, что AS следует использовать в качестве access_token при использовании клиент-серверного АПИ
# Это может быть что угодно
as_token: supersekret

# Это токен, что HS будет использовать при отправке запросов на AS
# Это может быть что угодно
hs_token: supersekret

id: xmpp-matrix-bridge

# Это локальная часть требуемого идентификатора пользователя для этой AS (в данном случае 
@logging:localhost)
sender_localpart: mxbridge
namespaces:
  users:
    - exclusive: true
    regex: "@xmpp_.*"
  rooms: []
  aliases:
    - exclusive: false
      regex: "#xmpp.*"

Synapse configuration

Editing the configuration file homeserver.yaml

~ $ nano ~/.virtualenvs/synapse/homeserver.yaml
TODO

Reset Synapse

~ $ ~/.virtualenvs/synapse/bin/synctl restart

Add matrix-xmpp-bridge to startup

Variant via local.d

Installing Console Screen Multiplexer

~ # emerge -av app-misc/screen
~ # nano /etc/local.d/matrix-xmpp-bridge.start
#!/bin/bash
 
su -c "screen -d -m -S matrix-xmpp-bridge ~/bots/matrix-xmpp-bridge/bridge.py" ussr
~ # chmod +x /etc/local.d/matrix-xmpp-bridge.start

Running the matrix-xmpp-bridge

Variant via local.d

~ # /etc/local.d/matrix-xmpp-bridge.start