Actually, even if you don’t care about #UnifiedPush, having this minimal #Prosody server that just accepts messages via a simple REST API and sends them out via #XMPP is great alternative to the various sendxmpp scripts out there.

https://gultsch.de/posts/xmpp-via-http/

Sending Jabber/XMPP Messages via HTTP

The goal of this tutorial is to set up a simple REST API that allows you to send XMPP messages to an existing XMPP account. This can be easily integrated into monitoring solutions or other scripts that send out status information. While there are command-line tools like go-sendxmpp that send messages by connecting to an XMPP server directly, this guide is specifically about providing an HTTP interface. curl "https://ntfy.stdmsg.tech:5281/msg/[email protected]" \ -u [email protected]:secret \ -H "Content-Type: text/plain" \ -d "Your flat white is done" Hint: If you don’t have an XMPP account to receive these messages, you can create one on a public server from within Conversations (F-Droid, Google Play) or another XMPP client of your choosing.

Daniel Gultsch
@daniel Thank you! I followed your post to host a prosody server at home. mod_post_msg required luarocks on my Debian 13 server so I installed that via apt. The server is running. Unfortunately, messages posted with curl to an conversations.im address are not delivered. I issued the certificate with acme.sh (zerossl.com) and DNS method so I have not set up A/SRV records for this domain. Is this required for the server-to-server communication even if I only send messages one way?

@copperhead12 The S2S needs to be resolvable (A records are fine, no need for SRV records) and reachable (open port)

You can put your domain into https://connect.xmpp.net/ to check. Ignore the errors/warning for the client connections. StartTLS only is fine as well.

XMPP Connectivity Checker