ChatMatrix

From FlowerHouseWiki
Juypter.png

Network


IP: 192.168.88.19
MAC: BE:B1:89:38:28:44
Domain: chat.flowerhouse.at

System


OS: Debian Bullseye
RAM: 4096MB
Cores: 2
Privileged: No

The ChatMatrix-LXC is reachable under 192.168.88.19 which is located in the ServerVLAN.

The subdomain is chat.flowerhouse.at which is handled by the ReverseProxy.

Basic Setup

Installation

Install required packages

apt install -y lsb-release wget apt-transport-https

Add repository

wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/matrix-org.list
apt update

Install matrix-synapse

apt install matrix-synapse-py3

Check status

systemctl status matrix-synapse

Postgres database

Install required packages

apt install libpq5 postgresql

Open Postgres console

su - postgres

Create user for matrix-synapse

createuser --pwprompt synapse_user

Create database for matrix-synapse

createdb --encoding=UTF8 --locale=C --template=template0 --owner=synapse_user synapse

Exit Postgres console

exit

Edit matrix-synapse configuration file

nano /etc/matrix-synapse/homeserver.yaml

Edit the database entry

database:
  name: psycopg2
  args:
    user: synapse_user
    password: <pass>
    database: synapse
    host: localhost
    cp_min: 5
    cp_max: 10

Check if it works

systemctl restart matrix-synapse
systemctl status matrix-synapse

Configuration

Create random key and save it

cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1

Edit matrix-synapse configuration file

nano /etc/matrix-synapse/homeserver.yaml

Add following lines

suppress_key_server_warning: true
registration_shared_secret: <SECRET-KEY>

Comment following line to make it accessible from outside localhost

# bind_addresses: ...

Restart matrix-synapse

systemctl restart matrix-synapse

Setting up reverse proxy

Check federation configuration: https://federationtester.matrix.org/

Add User

register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml http://localhost:8008

Install Bridges

ffmpeg is needed to support media files

apt install ffmpeg

WhatsApp

Installation

Create folder for binary

mkdir /opt/mautrix-whatsapp
cd /opt/mautrix-whatsapp

Download binary from https://github.com/mautrix/whatsapp/releases

wget https://github.com/mautrix/whatsapp/releases/download/v0.5.0/mautrix-whatsapp-amd64

Rename binary

mv mautrix-whatsapp-amd64 mautrix-whatsapp

Create database

Open Postgres console

su - postgres

Create user for mautrix-whatsapp

createuser --pwprompt whatsapp_user

Create database for mautrix-whatsapp

createdb --encoding=UTF8 --locale=C --template=template0 --owner=whatsapp_user whatsapp

Exit Postgres console

exit

Configuration

Create and paste config file: mautrix-whatsapp-config.yaml

nano config.yaml

Modify permissions

chmod 755 mautrix-whatsapp

Generate the appservice registration file

./mautrix-whatsapp -g

Modify permissions

chmod 555 registration.yaml

Edit matrix-synapse configuration file

nano /etc/matrix-synapse/homeserver.yaml

To register WhatsApp add following lines

app_service_config_files:
- /opt/mautrix-whatsapp/registration.yaml

Restart matrix-synapse

systemctl restart matrix-synapse

Check if bridge works

./mautrix-whatsapp

systemd service

Create systemd service file

nano