Does anyone here run a small family XMPP (Prosody) server with iPhone clients? How did you set up APNs and push notifications — did you self‑host a push proxy (fpush/momak/etc.) or use an external service? Any tips or config snippets appreciated.
I run a prosody server and have a couple of users who run Monal, and notifications work reliably for us!
I made sure to follow the considerations for server admins and it’s been ok.
Regarding the push service: unless you deploy your own version of the app, it’s not possible to self-host your own push service. The flow looks like this:
XMPP server -> Monal pushserver -> Apple pushserver -> Device
Apple only allows the developer of the app to send notifications to their push server. They enforce this by giving the app developer a key specific to their app.
The linkage between XMPP server and Monal pushserver gets set up by Monal: when it connects to the XMPP server, it instructs it to send messages while it is offline to the Monal pushserver.
I ran prosody server and used Siskin IM as a client, it worked pretty well. But as others mentioned, since this is Apple, the client developer has to run a push server, no background processes and long-polling allowed. Some other XMPP clients (Secret Messenger I think) did not have that set up and do not have notifications.
I use snikket and it works ok with iPhone, but not great.
In what way — is delivery delayed, or do notifications sometimes not arrive at all?