Inhaltsverzeichnis dieser Serie:
Teil 1 – Synapse-Server installieren
Teil 2 – Element-Web installieren
Teil 3 – Mautrix-WhatsApp-Bridge installieren
Nachdem unser Synapse-Server nun läuft, föderiert und wir via Element-Web Zugriff haben, können wir uns nun dem nächsten Schritt zuwenden. Wir wollen eine Matrix-WhatsApp-Brücke installieren.
Teil 3 – Mautrix-WhatsApp-Bridge installieren
Die richtigen Cloudflare-Einstellungen haben wir im Teil 1 schon erstellt. So müssen wir nur noch den entsprechenden Ordner erstellen und dann unseren "matrix" Stack in Portainer anpassen.
Zuerst der Ordner:
mkdir /portainer/Files/AppData/Config/Matrix/bridges/mautrix-whatsapp-bridge
Und hier der Inhalt unseres Stacks:
services:
postgresql:
container_name: "matrix-postgres"
image: postgres:15-alpine
environment:
POSTGRES_PASSWORD: "[SupergeheimesPasswort]"
POSTGRES_USER: "synapse-user"
POSTGRES_DB: "synapse-db"
POSTGRES_INITDB_ARGS: "--encoding='UTF8' --lc-collate='C' --lc-ctype='C'"
volumes:
- type: bind
source: /portainer/Files/AppData/Config/Matrix/postgresdata/
target: /var/lib/postgresql/data/
restart: unless-stopped
networks: ["cloudflare-tunnel"]
synapse:
container_name: "matrix-synapse"
image: "matrixdotorg/synapse:latest"
volumes:
- type: bind
source: /portainer/Files/AppData/Config/Matrix/synapse/
target: /data
ports:
- 7090:8008
environment:
SYNAPSE_SERVER_NAME: "matrix.[deineAdresse.ch]"
SYNAPSE_REPORT_STATS: "no"
restart: unless-stopped
networks: ["cloudflare-tunnel"]
element:
container_name: "matrix-element"
image: "vectorim/element-web:latest"
volumes:
- type: bind
source: /portainer/Files/AppData/Config/Matrix/element/element-config.json
target: /app/config.json
ports:
- 7091:80
restart: unless-stopped
networks: ["cloudflare-tunnel"]
mautrix-whatsapp:
container_name: "matrix-whatsappbridge"
image: dock.mau.dev/mautrix/whatsapp:latest
volumes:
- type: bind
source: /portainer/Files/AppData/Config/Matrix/bridges/mautrix-whatsapp-bridge
target: /data
ports:
- 7092:29318
restart: unless-stopped
networks: ["cloudflare-tunnel"]
networks:
cloudflare-tunnel:
external: true
Nach dem ersten Start des neuen Containers finden wir im erstellten Ordner die Datei "config.yaml". Bevor wir diese Datei anpassen, erstellen wir für unsere Bridge eine Postgres-Datenbank.
Dazu geben wir im Terminal folgendes ein:
docker exec -it matrix-postgres psql -U synapse-user -d postgres
Jetzt erstellen wir den neuen Mautrix-User für die Datenbank mit:
CREATE USER "mautrix-user" WITH PASSWORD '[ZweitesSupergeheimesPasswort]';
Nun erstellen wir noch eine neue Datenbank für die Bridge und weisen sie dem soeben erstellten Benutzer zu:
CREATE DATABASE "database-whatsapp" WITH OWNER "mautrix-user";
Du kannst nun die psql-Shell wieder verlassen.
\q
Jetzt können wir uns der config.yaml der Mautrix Bridge zuwenden und dort folgende Zeilen anpassen:
relay:
permissions:
"*": relay
"matrix.thepipes.ch": user
"@simon:matrix.thepipes.ch": admin
database:
uri: "postgres://mautrix-user:[ZweitesSupergeheimesPasswort]@matrix-postgres/database-whatsapp?sslmode=disable"
homeserver:
address: http://matrix-synapse:8008
domain: matrix.thepipes.ch
appservice:
address: http://matrix-whatsappbridge:29318
public_address: https://whatsappbridge.thepipes.ch
hostname: 0.0.0.0
port: 29318
encryption:
allow: true
Starte jetzt den Container "matrix-whatsappbridge" neu. Nebst der "config.yaml" solltest du nun auch noch "registration.yaml" sehen können.
Kontrolliere, ob
- in der "registration.yaml" unter url "http://matrix-whatsappbridge" eingetragen ist
- in der "config.yaml" unter "appserve" der "as_token" und "hs_token" eingetragen sind. Sollte das nicht der Fall sein, kopiere die Tokens aus der "registration.yaml" in die "config.yaml".
Nun kopieren wir die Datei "registration.yaml" in den Synapse-Ordner und benennen sie gleich noch um:
cp /portainer/Files/AppData/Config/Matrix/bridges/mautrix-whatsapp-bridge/registration.yaml /portainer/Files/AppData/Config/Matrix/synapse/mautrix-whatsapp-registration.yaml
Jetzt müssen wir diese neue Datei nur noch dem Synapse-Server bekannt machen. Dazu ergänzen wir die "homeserver-yaml" um folgende Zeilen:
# bridges
app_service_config_files:
- /data/mautrix-whatsapp-registration.yaml
Als Letztes starten wir jetzt noch die Container "matrix-whatsappbridge" und "matrix-synapse" neu.
Wenn alles klappt, können wir uns in Element-Web anmelden und dort eine neue Direktnachricht mit unserem @whatsappbot:matrix.[deineAdresse.ch] eröffnen. Am besten schreibst du mal "help" in den Chat, um eine Übersicht zu bekommen.
Um dich mit WhatsApp zu verbinden, gibst du "login qr" ein. Und scannst nun den QR-Code in WhatsApp, den du unter "Verknüpfte Geräte" "Gerät hinzufügen" findest.
Fertig oder fix und fertig?
Ich hoffe, du bist gut am Ziel angekommen und hast nun dein eigener Synapse-Server mit Element-Web und WhatsApp-Bridge am Laufen. Solltest du irgendwo anstehen, dann frag doch mal eine KI. Mir hat Google Gemini sehr geholfen.
Sollte dir diese Anleitung eine Hilfe gewesen sein, würde ich mich sehr über einen Kommentar freuen. Vielen Dank bereits im Voraus.
Kommentare: 0