Post a message to a matrix room with a simple HTTP POST
Find a file
2021-07-14 23:25:59 +02:00
.github/workflows details 2021-07-13 11:43:01 +02:00
tests improve error management and tests 2021-07-14 23:25:59 +02:00
.gitignore details 2021-07-13 11:41:16 +02:00
.pre-commit-config.yaml update pre-commit 2021-07-13 11:41:51 +02: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 improve error management and tests 2021-07-14 23:25:59 +02:00
poetry.lock poetry 2021-07-13 11:41:56 +02:00
pyproject.toml poetry 2021-07-13 11:41:56 +02:00
README.md fix badges 2021-07-13 12:28:01 +02:00
test.yml clean tests 2021-07-13 11:41:16 +02:00

Matrix Webhook

Tests Lints Code style: black codecov

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