DEV Community

VaiTon
VaiTon

Posted on

Notifiche via [matrix] e webhook

You can read this article in english here

Hai mai avuto la necessità di ricevere delle notifiche per un processo di lunga durata o per monitorare qualcosa e non avevi voglia di tirare su un MTA?

Le email sono utili, non lo metto in dubbio, ma a volte è giusto chiedersi se tirare su postfix (o exim4 che sia), setuppare smarthost e bla bla bla non sia un po' overkill per inviare delle semplici notifiche quando un job è concluso o quando qualcosa è andato storto.

In questa breve guida, utilizzeremo la potenza dei webhook e del network [matrix] per fare esattamente ciò.

1. Creare un webhook

Innanzitutto è necessario creare una stanza [matrix]. Assicurati di averla creata come non-crittografata, altrimenti i bridge di t2bot.io potrebbero non funzionare.

Una volta creata la stanza, segui la documentazione di t2bot.io su come create un webhook:

  1. Invita @_webhook:t2bot.io nella tua stanza Matrix.
  2. Invia nella stanza il messaggio !webhook
  3. Il bridge genererà ed invierà un URL da utilizzare, insieme a semplici istruzioni su come usarlo.

2. Creare lo script

Crea un file chiamato notifyMatrix.py (o come vuoi tu) e incolla questo blocco di codice:

(Utilizzo python per semplicità, ma puoi utilizzare qualsiasi cosa, anche fare una semplice curl)

#!/bin/env python3
import requests
import sys

args = " ".join(sys.argv[1:])

WEBHOOK = "..."
BOTNAME = "..."

requests.post(WEBHOOK, 
    json={"text": args, "format": "plain", "displayName": BOTNAME})
Enter fullscreen mode Exit fullscreen mode
  • WEBHOOK deve essere impostato all'URL che il bot ha inviato nella stanza appena creata.
  • BOTNAME deve essere impostato ad una stringa qualsiasi. Verrà utilizzato come nome dell'"utente" (tra virgolette perchè in realtà non è un vero utente) che invierà il msg nella stanza specificata.

Lo script prende gli argomenti da riga di comando successivi al primo (che è sempre il nome dello script), li concatena in una stringa separati da spazi e li invia via webhook all'url fornito.

Adesso, se provi ad eseguire

./notifyMatrix.py ciao!
Enter fullscreen mode Exit fullscreen mode

dovresti ricevere un nuovo messaggio nella stanza che hai appena creato con il testo ciao!.

Se tutto ha funzionato, sei riuscito nell'impresa di tirare su in meno di 5 minuti un servizio di notifiche su matrix!

3. Utilizzo

Puoi utilizzare questo script dove vuoi. Per esempio, per monitorare un sistema RAID software gestito da MDADM, basta inserire nel file /etc/mdadm/mdadm.conf

...
PROGRAM /root/notifyMatrix.py
...
Enter fullscreen mode Exit fullscreen mode

e hai fatto!

Crediti

Se ti è piaciuta questa guida e/o l'hai trovata utile considera di donare a t2bot.io e alla fondazione matrix!

Top comments (0)