Infos/Nachrichten per Signal an Stelle von Mail möglich?

fowr0yl

Member
Mar 15, 2022
47
8
13
63
Braunschweig
Hallo,
Proxmox enthält ja standardmäßig eine Mail Schnittstelle um z.B. Statusmeldungen zu versenden. Ich würde mir wünschen, das man diese Nachrichten statt dessen über Signal empfangen könnte.
Natürlich benötigt man dafür einen entsprechenden Dienst/Server, der die Nachrichten an den Empfänger weiterleitet. Der ist aber schnell aufgebaut und funktioniert dann sehr zuverlässig. Die Nachrichten kommen quasi auf Knopfdruck beim Empfänger an.
Ganz anders bei Mail. Zumindest wenn man keinen eigenen Mail-Server betreibt und das Handy die Nachrichten nicht im Sekundentakt vom Mail-Server abruft.

Gibt es eine elegante Möglichkeit das irgendwo einzubinden?
Oder muss man sich quasi ein eigenes sendmail/smtp basteln, das die Nachrichten dann an Signal (oder Whatsapp / Telegram / .... ) durchreicht?

VG
Henning
 
Hallo,
Proxmox enthält ja standardmäßig eine Mail Schnittstelle um z.B. Statusmeldungen zu versenden. Ich würde mir wünschen, das man diese Nachrichten statt dessen über Signal empfangen könnte.
Natürlich benötigt man dafür einen entsprechenden Dienst/Server, der die Nachrichten an den Empfänger weiterleitet. Der ist aber schnell aufgebaut und funktioniert dann sehr zuverlässig. Die Nachrichten kommen quasi auf Knopfdruck beim Empfänger an.
Ganz anders bei Mail. Zumindest wenn man keinen eigenen Mail-Server betreibt und das Handy die Nachrichten nicht im Sekundentakt vom Mail-Server abruft.

Gibt es eine elegante Möglichkeit das irgendwo einzubinden?
Oder muss man sich quasi ein eigenes sendmail/smtp basteln, das die Nachrichten dann an Signal (oder Whatsapp / Telegram / .... ) durchreicht?

VG
Henning
Hi,
eventuell bieten sich hook scripts an um bei bestimmten Aktionen zu triggern, siehe z.B. https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_hook_scripts
 
Du könntest es auch mit Signal-CLI versuchen: https://github.com/AsamK/signal-cli
Eine Idee wäre, eine VM die Nachrichten empfangen zu lassen und dann einfach via Signal-CLI weiterzuleiten. Debian z.B. hat per default Exim installiert, was du zum Empfangen verwenden könntest.
 
Alternativ gehen natürlich auch noch externe Monitoring Tools. Ich habe z.B. Signal-Notifications in Zabbix eingerichtet und Zabbix überwacht dann per Zabbix-Agent sowie PVE/PBS API über PVE/PBS Templates meine Server und Gastsysteme.

Aber ja, sowas wie Signal direkt im PVE wäre schon nett. Oder wenigstens irgendwie eine Schnittstelle (ala Hook Script?), dass man sich das selbst einrichten kann.
Signal-API einrichten war übrigens nicht ganz einfach. Da hat man am besten eine unbenutzte Handynummer für und man muss bei der API Registrierung über CLI auch ein Captcha ausfüllen.
 
Last edited:
Hallo, das sind ja eine Menge Anregungen. Vielen Dank dafür.

Ich habe es zwar nicht explizit erwähnt, aber den Signal-Bot habe ich bereits seit längerem im Einsatz. Ich verwende dafür das von @max erwähnte CLI, welches ich in einem CT installiert habe.
Zuerst habe ich es ausschließlich zur Weiterleitung von SMS, die von meinem OpenWrt Router empfangen werden, an mein Handy genutzt. Daher kam für mich auch nie ein öffentlich verfügbarer Signal-Bot in Frage.
Schließlich braucht nicht jeder eine per SMS versendete TAN für das Online Banking mitlesen ;).

Ich hab dann ziemlich schnell weitere Anwendungsmöglichkeiten gefunden. Früher hat mein OpenWrt Router Mails mit msmtp verschickt, wenn sich unbekannte Geräte per DHCP eine IP geholt haben. Das hat aber nur mit einem separaten Mail Account und einer Weiteleitung gut funktioniert.
Jetzt schickt der Router (per remote ssh) die Nachricht direkt an meinen Signal Account.

Den Umweg über einen Mail Server habe ich seinerzeit als viel zu kompliziert verworfen.

Die Einrichtung des Signal-Bot war jetzt nicht soo schwierig, wie man aus den Zeilen von @Dunin vermuten könnte.
Man benötigt auch nicht unbedingt ein Handy dafür. Am einfachsten ist es auf jeden Fall, wenn man für die Registrierung ein Gerät nutzen kann, das eine SMS empfangen kann. Ob Mobilfunk oder Festnetz ist dabei völlig egal.
Aber es geht notfalls ja auch über eine Sprachnachricht.
Einzig das Thema Capatcha war etwas tricky, weil die Anleitungen dafür vermultich nur von Insidern auf Anhieb zu verstehen sind...
Unter Proxmox hatte ich zunächst den postfix mta probiert. Bin damit aber irgendwie gar nicht klar gekommen. Da ich ansonsten durchgängig msmtp verwende, habe ich den postfix mta schließlich durch den msmtp mta ersetzt.
Und alles war gut :)

Einer direkten Integration eines Signal-Bots in PVE stehe ich eher skeptisch gegenüber. Schließlich handelt es sich dabei eher um einen Dienst, der von mehreren Instanzen im Netz genutzt werden kann.
Den Ansatz eine flexibleres Messaging Modul zu schaffen finde ich dagegen gut.
Mal sehen ob man dort dann auch einen solchen Bot anbinden kann ...

VG Henning
 
Hallo,
Proxmox enthält ja standardmäßig eine Mail Schnittstelle um z.B. Statusmeldungen zu versenden. Ich würde mir wünschen, das man diese Nachrichten statt dessen über Signal empfangen könnte.
Natürlich benötigt man dafür einen entsprechenden Dienst/Server, der die Nachrichten an den Empfänger weiterleitet. Der ist aber schnell aufgebaut und funktioniert dann sehr zuverlässig. Die Nachrichten kommen quasi auf Knopfdruck beim Empfänger an.
Ganz anders bei Mail. Zumindest wenn man keinen eigenen Mail-Server betreibt und das Handy die Nachrichten nicht im Sekundentakt vom Mail-Server abruft.

Gibt es eine elegante Möglichkeit das irgendwo einzubinden?
Oder muss man sich quasi ein eigenes sendmail/smtp basteln, das die Nachrichten dann an Signal (oder Whatsapp / Telegram / .... ) durchreicht?

VG
Henning
Hallo Henning,

Es scheint, dass du bereits eine Lösung für dein Problem gefunden hast, indem du Signal CLI verwendest, um SMS-Nachrichten von deinem OpenWrt-Router an dein Signal-Konto weiterzuleiten. Es ist großartig zu hören, dass du es auch für andere Anwendungen nützlich gefunden hast, wie zum Beispiel Benachrichtigungen zu erhalten, wenn ein neues Gerät mit deinem Netzwerk verbunden ist.

Max schlug vor, eine VM zu verwenden, um Nachrichten zu empfangen und sie dann mit Signal CLI weiterzuleiten. Chris erwähnte die Verwendung von Hook-Skripten, um bestimmte Aktionen auszulösen, die auch verwendet werden könnten, um Benachrichtigungen über Signal zu senden.

Du hast Bedenken geäußert, was die Integration von Signal in Proxmox betrifft, da es sich um einen Dienst handelt, der von mehreren Instanzen im Netzwerk genutzt werden kann. Es wäre jedoch eine großartige Idee, ein flexibleres Messaging-Modul zu erstellen, das mit verschiedenen Messaging-Diensten integriert werden kann, einschließlich Signal.

Vielen Dank für das Teilen deiner Erfahrungen mit uns!

Beste Grüße,
oro
 
Hallo,

ich habe seinerzeit bei der Erstellung eines Containers (in dem das Signal-CLI läuft) ein paar Notizen gemacht.
Die will ich euch nicht vorenthalten....
Was mir zu meinem Glück noch fehlt ist ein Script, das alles was Proxmox heute über sendmail/msmtp sendet, einfach in den Signal-Bot pumpt.
Kommt Zeit, kommt Script ;)


Code:
# Die Konfigurationsanleitung basiert im wesentlichen auf folgenden Anleitungen
# https://www.debacher.de/wiki/Bot_mit_Signal
# https://forum.ubuntuusers.de/post/9315571/
# https://github-wiki-see.page/m/AsamK/signal-cli/wiki/Registration-with-captcha


# Zunächst wird ein Container mit Standard-Einstellungen (8GB HDD, 512MB RAM, 1 CPU) erstellt
# Gleich nach dem Start des Containers, wird Debian aktualisiert

apt update
apt upgrade

# Dann wird eine (halbwegs) aktuelle JRE als headless Variante installiert

apt install openjdk-17-jre-headless

# Jetzt muss ermittelt werden, welches die aktuellste Version des Signal-CLI ist
# https://github.com/AsamK/signal-cli/releases/latest

# Die aktuelle Version des Signal-CLI wird in das Verzeichnis /opt heruntergeladen und dort entpackt

cd /opt
wget https://github.com/AsamK/signal-cli/releases/download/v0.10.11/signal-cli-0.11.9.1-Linux.tar.gz
tar xvfz signal-cli-0.11.9.1-Linux.tar.gz
ln -s signal-cli-0.11.9.1 signal-cli


# Da der SignalBot nicht mit root Rechten laufen soll, wird ein User "signalbot" angelegt.
# Dieser sollte eine ID erhalten, die im gesamten Netzwerk einmalig ist.
# Eine ausführlichere Beschreibung findet sich im Dokument zur Erstellung eines Manjaro CT

useradd -m -G users -s /bin/bash -U -u 1301 -p passwort signalbot

# Die weiteren Arbeiten finden unter dem neu angelegten User statt
su signalbot
cd /opt/signal-cli/bin

# Nun braucht man eine Telefonnummer an die man den Account binden kann. Das kann auch eine beliebige Festnetznummer sein.
# Die Registrierungsanforderung sendet im Normalfall eine SMS an die angegebene Nummer.
# In der SMS findet man den 6-stelligen Aktivierungscode, der in der Folge benötigt wird.
# Bei mir enthielt die SMS den Zahlencode gefolgt von weiteren Zeichen. Die dürfen bei der Aktivierung nicht eingegeben werden!

# Sollte man keine SMS fähige Rufnummer verwenden können oder wollen, so kann die Registrierungsanforderung auch über "voice" stattfinden.
# ./signal-cli -u +4940xxxxxx register --voice
# Der Anruf kommt in der Regel sehr schnell und die Ansage wird auch wiederholt.

# Registrierung per SMS:
./signal-cli -u +49Rufnummer_des_SignalBot register

# In der Regel möchte Signal eine Verification über ein Captcha ausführen. Dann kommt es beim Registreirungsversuch zu einer Fehlermeldung:

## Signalbot@SignalBot:/opt/signal-cli/bin$ ./signal-cli -u +49Rufnummer_des_SignalBot register
## Captcha required for verification, use --captcha CAPTCHA
## To get the token, go to https://signalcaptchas.org/registration/generate.html
## Check the developer tools (F12) console for a failed redirect to signalcaptcha://
## Everything after signalcaptcha:// is the captcha token.

# Auch diese Problem läßt sich leicht lösen, wenn man weiß wie ...
# Da zwischen Bereitstellung des Captcha im Browser und der Registrierungsaufforderung nur wenig Zeit ist, empfehle ich einige vorbereitenden Maßnahmen

# 1.
# Den Befehl auf der Kommandozeile erweitern und einmal ausführen. Damit ist er im Buffer der Konsole und kann leicht wieder hervorgeholt werden.
# Die auftretende Fehlermeldung interessiert nicht

./signal-cli -u +49Rufnummer_des_SignalBot register --captcha

# 2.
# Die Erzeugung des Captcha üben, damit man die Daten schnell per cut&paste in die Kommandozeile übertragen kann.
# Die Reihefolge ist zwingend einzuhalten !
# a) Einen evtl. laufenden Browser ( z.B. Firefox oder Chrome) beenden
# b) Browser neu starten
# c) Mit F12 die Entwickleransicht öffnen
# d) In den Einstellungen (Zahnrad) "preserve log bzw. log nicht leeren" aktivieren
# e) In den Reiter "Console" bzw. "Konsole" wechseln
# f) Folgende URL eingeben https://signalcaptchas.org/registration/generate.html
# g) "Ich bin kein Roboter" bestätigen
# h) Das Captcha lösen
# i) Die Anfrage ob weitergeleitet oder der Zugriff erlaubt werden soll ignorieren
# j) In der Entwicklerkonsole findet sich jetzt ein Eintrag der mit "Gewechselt zu signalcaptcha://" beginnt
# k) Alles was hinter "signalcaptcha://" wird in die Zwischenablage kopiert.

# Schließlich wird die Zwischenablage an den zuvor in der Konsole bereitgestellten Befehl gehängt. Das sieht dann etwa so aus:
# ./signal-cli -u +49Rufnummer_des_SignalBot register --captcha signal-recaptcha-v2.6LfBXs0bAAFBAjkDyyI1Lk5fhI_bIyox5W.registration.03AIIukzjKIcyiJJs2xOa9j-VKtmbWNY3Fv3Ab_JzVyJOYAj5sCUB07t8naG1kwCHHTAOVKHOy1bw7S2aDDivrIeEum9CgBxog_o71L6O_Rxlo9mPx-5-uyc3B5lvW9HtI0Ob2ZlQbth2KSZyP41-7obiqzI__ppjoiqmfE-_wrk6hyb4xBwDjiNeyULMJzBK66O-USXqWk0lglxFaeup3Fk1V07xU9-cCKTqHs6LCtnE6pPZ1_GbQ50LkUJngUoTiqfXtyNkfrI4CtUJTfbUzzgKhJJEvfZmpwb3E3cWyxvW-3W3_mSv_h9Cjw0qQGIEJdM5SVGyBMTmhzwV1Yln1_1868Z4Fy0B5Ck1jRHgTRbQKrg2IzxMWMlfb7TMYsj-2Xc-98E7PxTkIMJUEpaH5FzBFQGvupspwwrUhjmtqsgzs-bwyuP6e4ugDgdAE8ks9edZSnKbIv4pHpv_6a63eSh0uWWi1sf7-C0CoZonvGd4iLxdvxi0W8n5WuAvYzTYJEu6ukSR3yHbO8-jm_dCVly-6Uw-GzW97uWAetNfYm63N3JTLeu7xRapkwlsP3ywOE3S2c9cJGtRXR6wAzRg9JfV-m14LlKrLd1jXGxIEFEHdB4asGJgFMoocDHLmW79Acx4-HO4nsBnB-BU5jfGQMTnkhO4Pk5kVLhiQuiNz7SbA4kbijG5Ire0rHRSSaEHygYhTHgBMEE0yJFllIKG5McqssDBpiqAAaVaeR4M6Z7KR3l4


# Nach erfolgreicher Registrierung sollte man dem neu erstellten Profil einen Namen (hier SignalBot) geben. Unter diesem erscheint der Bot dann auch bei den Empfängern von Nachrichten.

./signal-cli -u +49Rufnummer_des_SignalBot updateProfile --name SignalBot

# Direkt im Anschluss kann die erste Nachricht versendet werden

./signal-cli -u +49Rufnummer_des_SignalBot send -m "Nachricht vom SignalBot" +49Rufnummer_des_ZielAccounts
 
Hallo,

gibt es an dieser Front etwas neues?

Ich verwende den SignalBot inzwischen auch für Dinge wie z.B. SmartHome und in diversen eigenen Scripten.

Ein Problem dabei war immer das die Nachricht ja in den allermeisten Fällen auf irgendeiner anderen Maschine erzeugt wird, und dann irgendwie auf den Signalbot Container kommen muss.
Ginge z.B. mit scp
Dann braucht man aber auch noch ein Deamon, der die Nachrichten dem Bot zuführt, damit sie zeitnah versendet werden.
Außerdem hat mich gestört, das man an allen möglichen Stellen seine Telefonnummern als Ziel der Nachricht angeben musste. Wehe wenn sich dann Telefonnummern ändern ...

Im SmartHome Bereich wird häufig MQTT genutzt. Daher hatte ich auf meinem zentralen OpenWrt Router ohnehin schon mosquitto am laufen.
Auf dem Signalbot habe ich jetzt einfach einen Service gebaut, der ein subscribe auf einen speziellen Topic macht und auf alle ankommenden Nachrichten reagiert.
In den Nachrichten gibt es jetzt 2 Blöcke:
Code:
"receiver": "Alias1",
"msg": "Testnachricht"
Das bash script, das hinter dem Service steht, extrahiert zuerst den "receiver" und ersetzt den übergebenen Wert, hier also "Alias1" in die richtige Rufnummer. Findet das Script keine Nummer zum übergebenen Alias, reicht es den Wert einfach durch. So kann man auch direkt beliebige Rufnummern übergeben.
Dann extrahiert es die Message und wirft alles dem SignalBot in den Rachen.

Zum Versand reicht jetzt ein einfaches mosquitto_pub ...

Man findet übrigens auch auf github Projekte, die ähnliche Ansätze umgesetzt haben.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!