Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/adambien/gatelink

WebPush Gateway
https://github.com/adambien/gatelink

microprofile notifications push quarkus server webcomponents webpush

Last synced: about 1 month ago
JSON representation

WebPush Gateway

Awesome Lists containing this project

README

        

# gatelink

WebPush Gateway (powered by [quarkus](https://quarkus.io))

The gatelink service implements:

- [Voluntary Application Server Identification for Web Push (VAPID / RFC8030)](https://www.rfc-editor.org/rfc/rfc8292.html)
- [Message Encryption for Web Push](https://tools.ietf.org/html/rfc8291)

[Push Notification Overview](https://developers.google.com/web/fundamentals/push-notifications/web-push-protocol#more_headers)

# quickstart

## gatelink server build & start:

```
cd gatelink
mvn package
java -jar target/gatelink-[VERSION]-runner.jar
```

alternative / development mode:

```
cd gatelink
mvn compile quarkus:dev
```

## gatelink docker build

```
mvn package
docker build -f src/main/docker/Dockerfile.jvm -t quarkus/gatelink-jvm .
docker run -i --rm -p 8080:8080 quarkus/gatelink-jvm
```

## test ui start

Install [browsersync](https://www.browsersync.io)

```
cd webpush-ui
./startBrowserSync.sh
```

## [webpush-ui](https://github.com/AdamBien/webpush/tree/master/webpush-ui) sample application

The user interface uses
1. [Notification API](https://developer.mozilla.org/en-US/docs/Web/API/notification) to display the badges
2. [Push API](https://developer.mozilla.org/en-US/docs/Web/API/Push_API) to receive the messages and send a subscription to the server.
3. [Service Workers API](https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API) to listen for changes in the background
4. [Custom Elements](https://developer.mozilla.org/en-US/docs/Web/API/Window/customElements) for structuring the application
5. [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) to send the subscription to the server or to unsubscribe.