[CLN] Webhook-Plugin für Push-Benachrichtigungen einrichten

Hallo zusammen,

mithilfe von fiatjaf’s webhook plugin für CLN (ehemals c-lightning) Nodes habe ich mir simple Push-Nachrichten für bestimmte Node-Events erstellt (bspw. wenn eine Rechnung erstellt wurde, eine Zahlung gesendet wurde, das Stattfinden einer Route etc.)
Da ich nun mehrfach gefragt wurde, wie das funktioniert, möchte ich an dieser Stelle ein kurzes Tutorial dafür erstellen.

Da ich einen RaspiBlitz verwende, werde ich lediglich auf das entsprechend benötigte Release eingehen und auch die entsprechenden Pfade benutzen. Je nach System wird dies variieren.

Zunächst einmal loggen wir uns mittels ssh auf den RaspiBlitz ein und navigieren in den Ordner, in dem die CLN-plugins abgelegt werden

cd /home/bitcoin/cl-plugins-enabled

Als nächstes laden wir den für den Blitz benötigten Release

sudo wget https://github.com/fiatjaf/lightningd-webhook/releases/download/v3.3/webhook_linux_arm

und geben diesem noch entsprechende Rechte

chmod +x webhook_linux_arm

Nun benötigen wir eine Push-App oder einen Dienstleister nach Wahl. Ich habe als iPhone-Besitzer die App PushCut benutzt. Ich glaube drei Webhooks sind kostenfrei. Hier lässt sich ganz einfach eine Notification nach Wahl erstellen, Name, Beschreibung, ggf. Bild mit in der Notification. Über bezahlte Abos ist hier noch mehr möglich, übersteigt jedoch meine Fähigkeiten :wink:

Wichtig an dieser Stelle ist nun eine Webhook-URL, die euch ausgegeben wird. Beim Abruf dieser URL erfolgt sofort das Senden der Pushnachricht. Nun müssen wir dafür sorgen, dass die Node bei entsprechendem Event diese URL abruft.

Dafür gehen wir im Blitz-Menü unter System auf CLCONF

Screenshot from 2022-04-14 15-07-30

In der sich öffnenden Konfigurationsdatei tragen wir nun ganz unten folgenden Eintrag hinzu

webhook=URL?filter-event=EVENTNAME

die URL ersetzen wir durch die in der Push-App erzeugten Webhook-URL, den EVENTNAME ersetzen wir durch den gewünschten Eventnamen, die hier zu finden sind (bisschen runterscrollen)

Beispiele:

channel_opened - wenn ein Channel geöffnet wurde
invoice_payment- wenn eine Rechnung beglichen wurde
invoice_creation- wenn eine Rechnung erstellt wurde
forward_event- wenn eine Route stattfand (Achtung, es summt auch bei failed routes, sehr nervig!)

Wenn man mehrere Events möchte und mehrere Webhook-URLs hat, kann man diese wie folgt aneinanderreihen:

webhook=URL1?filter-event=EVENTNAME1,URL2?filter-event=EVENTNAME2

usw.

Ist alles eingetragen, kommen wir mittels TAB auf den ok-Button und bestätigen die Änderungen. lightningd startet dann neu und läd das Plugin, sowie die Infos nach.

Ich hoffe, das Tutorial hilft allen Interessierten. Viel Spaß damit!

ADVANCED:
Bei Abruf der URL ruft das Plugin diese nicht nur auf sondern sendet sogar eine JSON PAYLOAD wie diese:

{
  "invoice_payment": {
    "label": "unique-label-for-invoice",
    "preimage": "0000000000000000000000000000000000000000000000000000000000000000",
    "msat": "10000msat"
  }
}

Findige Bastler wären also nicht nur in der Lage eine einfache Benachrichtigung zu erzeugen, sondern diese auch noch mit Informationen zu füttern.

Nachtrag: so sieht das dann bei mir im Übrigen aus


5 „Gefällt mir“

Mega Anleitung. Vielen Dank dafür :pray:

1 „Gefällt mir“