web-push-service

Host your own Web Push Service.

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
web-push-service
011.0.186 years ago6 years agoMinified + gzip package size for web-push-service in KB

Readme

Web Push Service
Host your own Web Push Service. Travis CI Coverage Status NPM Dependencies Maintainability License Last Commit Language

Table of contents

Deployment

Production Environment

Prerequisites Setup
  • Connect to your Linux Machine via SSH using your preferred client.
  • Install Web Push Service via npm by running sudo npm install -g web-push-service.
  • Configure Web Push Service by runnning web-push-service --host your-domain.com --mongo mongodb://127.0.0.1:27017 --port 8080
Browse https://your-domain.com to view the Swagger UI swagger

Subscribing to Channels

See Sample

Sending Web Push Notifications

cURL curl -d '{ "image": "https://via.placeholder.com/50x50", "message": "My first message", "title": "Hello World", "url": "https://example.com" }' -H "Authorization: <your-key-here>" -H "Content-Type: application/json" -X POST https://your-domain.com/api/v1/push

Obtaining Credentials

cURL curl -d '{ "endpoint": "https://your-domain.com" }' -H "Content-Type: application/json" -X POST https://your-domain.com/api/v1/client This request will return your key and publicKey. ```json { "id": "2ab7acb4-f8ef-40e3-b2e9-f7855047d835", "key": "467b5026-c14a-48fc-97b1-f3ca5fb21a95", "publicKey": "BBqOI20HlYxLMth7sbTk002PMinG7QVRUC12BEZpvq9r1maySNv30MeHxHSYPzKULqhHiSIsFKsdVlc9IJ1NuwE=" } ```

Installation as CLI

npm install -g web-push-service

Usage

``` Usage: start options Options:
-h --host <host>    defaults to 'localhost:8080'
-m --mongo <host>   if not provided, file-based storage will be used
-p --port <port>    port
-h, --help          output usage information
Usage: install options Options:
-h --host <host>   defaults to 'your-domain.com'
-m --mongo <host>  if not provided, file-based storage will be used
-p --port <port>   port
--nginx            install NGINX
--letsencrypt      install and configure Let's Encrypt
-h, --help         output usage information
```

Dependencies

  • ajv - Another JSON Schema Validator
  • chalk - Terminal string styling done right
  • commander - The complete solution for node.js command-line programs
  • cors - Node.js CORS middleware
  • express - Fast, unopinionated, minimalist web framework
  • js-yaml - YAML 1.2 parser / writer for JavaScript
  • mongodb - The official MongoDB driver for Node.js
  • nedb - File-based embedded data store for node.js
  • uuid - RFC4122 (v1, v4, and v5) UUIDs

Contribute

Coming Soon

Authors

License

This project is licensed under the MIT License - see the LICENSE.md file for details