web-push-service
TypeScript icon, indicating that this package has built-in type declarations

1.0.18 • Public • Published

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 node.js by using the guide on their website.
  • 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.

{
  "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
  • body-parser - Node.js body parsing middleware
  • 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
  • swagger-ui-express - Swagger UI Express
  • uuid - RFC4122 (v1, v4, and v5) UUIDs
  • web-push - Web Push library for Node.js

Contribute

Coming Soon

Authors

License

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

Package Sidebar

Install

npm i web-push-service

Weekly Downloads

0

Version

1.0.18

License

MIT

Unpacked Size

217 kB

Total Files

146

Last publish

Collaborators

  • developersworkspace