ChatMatrix: Difference between revisions
Line 273: | Line 273: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==== Create database ==== | |||
<p>Open Postgres console</p> | |||
<syntaxhighlight lang="console"> | |||
su - postgres | |||
</syntaxhighlight> | |||
<p>Create user for mautrix-whatsapp</p> | |||
<syntaxhighlight lang="console"> | |||
createuser --pwprompt signal_user | |||
</syntaxhighlight> | |||
<p>Create database for mautrix-whatsapp</p> | |||
<syntaxhighlight lang="console"> | |||
createdb --encoding=UTF8 --locale=C --template=template0 --owner=signal_user signal | |||
</syntaxhighlight> | |||
<p>Exit Postgres console</p> | |||
<syntaxhighlight lang="console"> | |||
exit | |||
</syntaxhighlight> | |||
==== Configuration ==== | |||
<p></p> | <p></p> | ||
<syntaxhighlight lang="console"> | <syntaxhighlight lang="console"> |
Revision as of 12:44, 16 July 2022
IP: | 192.168.88.19 |
---|---|
MAC: | BE:B1:89:38:28:44 |
Domain: | chat.flowerhouse.at |
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
Installation
Create user for mautrix-whatsapp
adduser --system mautrix-whatsapp --home /opt/mautrix-whatsapp
Enter user folder
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 and copy from service
nano /etc/systemd/system/mautrix-whatsapp.service
Apply changes
systemctl daemon-reload
Start and check status
systemctl start mautrix-whatsapp
systemctl status mautrix-whatsapp
Enable autostart
systemctl enable mautrix-whatsapp
Signal
Install Signald
Add repository
wget -O /usr/share/keyrings/signald-org-archive-keyring.asc https://updates.signald.org/apt-signing-key.asc
echo "deb [signed-by=/usr/share/keyrings/signald-org-archive-keyring.asc] https://updates.signald.org unstable main" | tee /etc/apt/sources.list.d/signald.list
apt update
Install signald
apt install signald
Check if it works correctly
systemctl start signald
systemctl status signald
Enable autostart
systemctl enable signald
Install Bridge
Install prerequisites
apt install python pip libolm-dev
pip install virtualenv
Create user for bridge and join signald group
adduser --system mautrix-signal --home /opt/mautrix-signal
usermod -aG signald mautrix-signal
Create database
Open Postgres console
su - postgres
Create user for mautrix-whatsapp
createuser --pwprompt signal_user
Create database for mautrix-whatsapp
createdb --encoding=UTF8 --locale=C --template=template0 --owner=signal_user signal
Exit Postgres console
exit