Description
MongoosePush is an simple Elixir REST service allowing to send push notification via FCM and/or APNS.
MongoosePush alternatives and similar packages
Based on the "Third Party APIs" category.
Alternatively, view MongoosePush alternatives based on common mentions on social networks and blogs.
-
google-cloud
Elixir client libraries for accessing Google APIs. -
gringotts
A complete payment library for Elixir and Phoenix Framework -
sendgrid
Create and send composable emails with Elixir and SendGrid. -
mailchimp
A basic Elixir wrapper for version 3 of the MailChimp API -
diplomat
Elixir library for interacting with Google's Cloud Datastore -
sparkpost
SparkPost client library for Elixir https://developers.sparkpost.com -
elixtagram
:camera: Instagram API client for the Elixir language (elixir-lang) -
google_sheets
Elixir library for fetching Google Spreadsheet data in CSV format -
amazon_product_advertising_client
An Amazon Product Advertising API client for Elixir -
pay_pal
:money_with_wings: PayPal REST API client for the Elixir language (elixir-lang) -
cashier
Cashier is an Elixir library that aims to be an easy to use payment gateway, whilst offering the fault tolerance and scalability benefits of being built on top of Erlang/OTP -
elixir_ipfs_api
The Elixir library that is used to communicate with the IPFS REST endpoint. -
dogstatsd
An Elixir client for DogStatsd https://www.datadoghq.com/
Access the most powerful time series database as a service
Do you think we are missing an alternative of MongoosePush or a related project?
README
MongoosePush
MongoosePush is a simple, RESTful service written in Elixir, providing the ability to send push
notifications to FCM
(Firebase Cloud Messaging) and/or
APNS
(Apple Push Notification Service) via their HTTP/2
API.
Documentation
Documentation is available at: https://esl.github.io/MongoosePush
Quick start
Running from DockerHub
We provide prebuilt MongoosePush images. Configuration requires either an FCM token, APNS certificates or an APNS token. Depending on your usecase, you can have some or all of them in a standalone MongoosePush instance or using a docker container. For the full configuration you need to set the following directory structure up:
- priv/
- ssl/
- rest_cert.pem - The HTTP endpoint certificate
- rest_key.pem - private key for the HTTP endpoint certificate (has to be unencrypted)
- apns/
- prod_cert.pem - Production APNS app certificate
- prod_key.pem - Production APNS app certificate's private key (has to be unencrypted)
- dev_cert.pem - Development APNS app certificate
- dev_key.pem - Development APNS app certificate's private key (has to be unencrypted)
- token.p8 -
APNS
authentication token
- fcm/
- token.json -
FCM
service account JSON file
- token.json -
- ssl/
If you want to use APNS
token authentication you need to provide token and set key_id
and team_id
environment variables. To see how to obtain token and key_id
read this.
To see how to obtain team_id
read this.
FCM
JSON file can be generated by Firebase console (https://console.firebase.google.com). Go to your project -> Project Settings
-> Service accounts
-> Generate new private key
Assuming that you have the priv
directory with all certificates and fcm token in current directory, then you may start MongoosePush with the following command:
docker run -v `pwd`/priv:/opt/app/priv \
-e PUSH_HTTPS_CERTFILE="/opt/app/priv/ssl/rest_cert.pem" \
-e PUSH_HTTPS_KEYFILE="/opt/app/priv/ssl/rest_key.pem" \
-it --rm mongooseim/mongoose-push:latest
Local build prerequisites
- Elixir 1.5+ (http://elixir-lang.org/install.html)
- Erlang/OTP 19.3+ > NOTE: Some Erlang/OTP 20.x releases / builds contain TLS bug that prevents connecting to APNS servers. > When building with this Erlang version, please make sure that MongoosePushRuntimeTest test suite passes. > It is however highly recommended to build MongoosePush with Erlang/OTP 21.x.
- Rebar3 (just enter
mix local.rebar
)