Preface
Warning
These are just my personal notes.
Docker and PostgreSQL are not my daily business. The notes below may contain some security issues.
Follow on your own risk.
Status Quo
There were already synapse and postgres docker containers running on the system.
some helpful commands for people that don't use docker often
sudo docker ps --no-trunc -a
sudo docker logs -f -n 100 synapse
sudo docker stop synapse; sudo docker rm synapse
sudo docker pull matrixdotorg/synapse
sudo docker exec -it synapse bash
sudo docker inspect synapse
sudo docker network ls
sudo docker restart synapse
Postgres
There is already a postgres_synapse container running. According to the mautrix documents, we can just re-use the server/container and add a new database
enter the docker and login with the default/superuser user.
For the password, we can simply have a look in our matrix homeserver.yaml (in our case this is in the volume of the synapse container at /var/lib/docker/volumes/synapse-data/_data).
Then, add new users and databases:
$ sudo docker exec -it postgres_synapse bash
root@9705514f9fdc:/# psql -U synapse -W
synapse=# CREATE USER mautrix_signal WITH PASSWORD 'str0ngP4ssword';
synapse=# CREATE DATABASE mautrix_signal_db OWNER mautrix_signal;
synapse=# CREATE USER mautrix_whatsapp WITH PASSWORD 'str0ngP4ssword';
synapse=# CREATE DATABASE mautrix_whatsapp_db OWNER mautrix_whatsapp;
some helpful commands:
https://quickref.me/postgres.html
Docker
Follow these instructions:
https://docs.mau.fi/bridges/general/docker-setup.html
https://docs.mau.fi/bridges/general/initial-config.html
https://docs.mau.fi/bridges/general/registering-appservices.html
optional: https://docs.mau.fi/bridges/general/double-puppeting.html
do this for both -signal and -whatsapp
docker pull dock.mau.dev/mautrix/signal:latest
mkdir /etc/matrix/mautrix-signal
# generate default config.yaml
docker run --rm -v /etc/matrix/mautrix-signal:/data:z dock.mau.dev/mautrix/signal:latest
# edit config.yaml
vim /etc/matrix/mautrix-signal/config.yaml
# generate registration.yaml
docker run --rm -v /etc/matrix/mautrix-signal:/data:z dock.mau.dev/mautrix/signal:latest
# move registation.yaml to synapse directory:
cp registration.yaml /var/lib/docker/volumes/synapse-data/_data/mautrix-signal-registration.yaml
# add registration file to synapse homeserver.yaml
vim /var/lib/docker/volumes/synapse-data/_data/homeserver.yaml
docker run --restart unless-stopped --name=mautrix-signal --network=matrix_net --detach=true --volume /etc/matrix/mautrix-signal/:/data:z dock.mau.dev/mautrix/signal:latest
docker run --restart unless-stopped --name=mautrix-whatsapp --network=matrix_net --detach=true --volume /etc/matrix/mautrix-whatsapp/:/data:z dock.mau.dev/mautrix/whatsapp:latest
docker restart synapse