1
0
Fork 0
mirror of https://github.com/binwiederhier/ntfy.git synced 2024-11-07 04:14:16 +01:00
ntfy/cmd/webpush.go

49 lines
1.1 KiB
Go
Raw Normal View History

//go:build !noserver
package cmd
import (
"fmt"
"github.com/SherClockHolmes/webpush-go"
"github.com/urfave/cli/v2"
)
func init() {
commands = append(commands, cmdWebPush)
}
var cmdWebPush = &cli.Command{
Name: "webpush",
2023-05-29 17:57:21 +02:00
Usage: "Generate keys, in the future manage web push subscriptions",
2023-06-14 14:04:16 +02:00
UsageText: "ntfy webpush [keys]",
Category: categoryServer,
2023-05-29 17:57:21 +02:00
Subcommands: []*cli.Command{
{
Action: generateWebPushKeys,
Name: "keys",
2023-05-29 17:57:21 +02:00
Usage: "Generate VAPID keys to enable browser background push notifications",
2023-06-14 14:04:16 +02:00
UsageText: "ntfy webpush keys",
2023-05-29 17:57:21 +02:00
Category: categoryServer,
},
},
}
func generateWebPushKeys(c *cli.Context) error {
privateKey, publicKey, err := webpush.GenerateVAPIDKeys()
if err != nil {
return err
}
_, err = fmt.Fprintf(c.App.ErrWriter, `Web Push keys generated. Add the following lines to your config file:
2023-05-29 17:57:21 +02:00
web-push-public-key: %s
web-push-private-key: %s
web-push-subscriptions-file: /var/cache/ntfy/webpush.db # or similar
web-push-email-address: <email address>
2023-05-29 17:57:21 +02:00
See https://ntfy.sh/docs/config/#web-push for details.
`, publicKey, privateKey)
return err
}