Post a message to a matrix room with a simple HTTP POST
Find a file
Guilhem Saurel 2d8c68665e details
2021-07-13 11:41:16 +02:00
.github/workflows setup coverage 2021-07-13 11:41:16 +02:00
tests details 2021-07-13 11:41:16 +02:00
.gitignore details 2021-07-13 11:41:16 +02:00
.pre-commit-config.yaml pre-commit 2020-03-08 22:15:48 +01:00
docker-compose.yml remove the need for www 2020-06-07 10:31:21 +02:00
Dockerfile details 2021-07-13 11:41:16 +02:00
LICENSE update license 2020-03-14 17:28:20 +01:00
matrix_webhook.py setup tests 2021-07-13 11:41:05 +02:00
README.md Add HOST to PORT configuration, and document both 2021-05-30 16:42:25 +02:00
setup.cfg setup tests 2021-07-13 11:41:05 +02:00
test.yml setup coverage 2021-07-13 11:41:16 +02:00

Matrix Webhook

Post a message to a matrix room with a simple HTTP POST

Configuration

Create a matrix user for the bot, make it join the rooms you want it to talk into, and then set the following environment variables:

  • MATRIX_URL: the url of the matrix homeserver
  • MATRIX_ID: the user id of the bot on this server
  • MATRIX_PW: the password for this user
  • API_KEY: a secret to share with the users of the service
  • HOST: HOST to listen on, all interfaces if '' (default).
  • PORT: PORT to listed on, default to 4785.

Dev

pip3 install --user markdown matrix-nio
./matrix_webhook.py

Prod

  • Use Traefik on the web docker network, eg. with proxyta.net
  • Put the configuration into a .env file
  • Configure your DNS for ${CHATONS_SERVICE:-matrixwebhook}.${CHATONS_DOMAIN:-localhost}
docker-compose up -d

Test / Usage

curl -d '{"text":"new contrib from toto: [44](http://radio.localhost/map/#44)", "key": "secret"}' \
  'http://matrixwebhook.localhost/!DPrUlnwOhBEfYwsDLh:matrix.org'

(or localhost:4785 without docker)

Test room

#matrix-webhook:tetaneutral.net