Home
Softono
mattermost-push-proxy

mattermost-push-proxy

Open source Apache-2.0 Go
278
Stars
121
Forks
6
Issues
38
Watchers
1 week
Last Commit

About mattermost-push-proxy

Mattermost Push Proxy is a server component that relays push notifications from the Mattermost server to mobile devices via Apple Push Notification service (APNs) and Firebase Cloud Messaging (FCM). It offloads notification delivery from the core Mattermost server, improving scalability and reliability for messaging alerts on iOS and Android. Key features include support for standard push notifications, VoIP push notifications for iOS calls using PushKit, configuration through applern and applernbeta ApplePushSettings entries, transport-based dispatch to select notification type, and minimal payload generation for VoIP pushes with the voip APNs topic suffix. VoIP push delivery is triggered when incoming notifications include transport=voip, producing a VoIP-shaped APNs request without requiring additional configuration beyond the existing APNs key. Deployment requires the iOS app bundle to declare the voip background mode and include a voip APNs entitlement. The project uses CircleCI for continuous integratio

Platforms

Web Self-hosted

Languages

Go

Links

Mattermost Push Proxy CircleCI branch

See https://developers.mattermost.com/contribute/mobile/push-notifications/service/

VoIP push notifications (iOS Calls)

The proxy delivers PushKit / VoIP pushes for iOS calls. Dispatch is driven by the transport field on the incoming notification: when transport=voip, the proxy emits a VoIP-shaped APNs request (apns-push-type: voip, topic <ApplePushTopic>.voip, minimal payload) using the existing apple_rn / apple_rnbeta ApplePushSettings entry indicated by the message's platform. No extra configuration block is required; the same APNs key is reused for both standard and VoIP pushes.

Operator prerequisites:

  • The iOS app bundle must declare the voip background mode and ship with an entitlement granting the <bundle>.voip APNs topic.

No changes to the standard apple_rn / apple_rnbeta entries are required.

How to Release

To trigger a release of Mattermost Push-Proxy, follow these steps:

  1. For Patch Release: Run the following command:

     make patch

    This will release a patch change.

  2. For Minor Release: Run the following command:

     make minor

    This will release a minor change.

  3. For Major Release: Run the following command:

     make major

    This will release a major change.