POC - This is a proof-of-concept still. Breaking changes possible till the V1 release.
P2P push notification gateway for blind-peer clients. The service exposes a forward-push RPC method over Hyperswarm, converts the request into Android/APNS payloads, and forwards it through an external push provider such as Firebase Cloud Messaging.
npm install blind-push-gatewayCreate a config file at ~/.blind-push-gateway/config.json:
{
"certPath": "./service-account.json",
"notification": {
"title": "Keet",
"body": "✉️"
},
"apnsTopic": "io.keet.app"
}Then run:
blind-push-gateway runThe service will log its public key on startup. Clients can connect to that swarm key and send forward-push RPC requests.
- The operator starts the gateway with Firebase service account credentials.
- The gateway listens on Hyperswarm and accepts RPC connections through
protomux-rpc-router. - A client sends a
forward-pushrequest encoded withblind-push/encodings. - The gateway encodes the request, derives Android/APNS fields, and forwards the message through the configured push service.
blind-push-gateway run [options]--config|-c [path]: config path, defaults to~/.blind-push-gateway/config.json--storage|-s [path]: storage path, defaults to~/.blind-push-gateway/storage
Create a new gateway service.
swarm:Hyperswarminstancerouter:ProtomuxRPCRouterinstanceexternalPushService: object with an asyncsend(message)methodopts.notification: default notification payload, defaults to{ title: 'Keet', body: '✉️' }opts.apnsTopic: APNS topic, defaults toio.keet.app
Start the gateway and begin listening for RPC connections.
Gracefully shut down the gateway.
The swarm public key clients use to connect.