/Notify

A small deno deploy / self hosted solution to send web push notifications with webhooks

Primary LanguageTypeScriptMIT LicenseMIT

Introducing Notify: Your Awesome Offline Push Message Sender! 📲

Looking for a super-easy way to send push messages to your devices, even when you're offline? Meet Notify - the open-source project that's got your back! With Notify, you can send push messages via a webhook to any device that supports web push. Whether you're using Docker, bare metal, or Deno Deploy, Notify's got you covered!

Get Notified Anywhere, Anytime! 📲

And that's not all! Notify comes with a cool offline installable PWA, ensuring you never miss any important notifications - even when you're on the go!

Check Out the DEMO 🚀

Want to see Notify in action? No problem! We've set up a live demo instance on deno deploy. Try it out now! Just use this command to send a notification to all your devices:

curl -X POST -H "Content-Type: application/json" -d '{"title":"Hello", "message":"World"}' https://notify-demo.deno.dev/api/notify

Customize Your Notifications! ✨

You're in control! Personalize your notifications with optional features like adding an icon:

curl -X POST -H "Content-Type: application/json" -d '{"title":"Hello", "message":"World", "icon": "https://via.placeholder.com/150", "tags": ["test", "server"] }' https://notify-demo.deno.dev/api/notify

Easy Installation - No Fuss! 🛠️

Don't worry about complicated setups. The installation documentation is right here to help you get started with Notify in no time! 📚

👉 Installation Documentation 👉 Api Documentation

Features 🎉

  • Send push messages to any device that supports web push
  • Easy installation with Docker, bare metal, or Deno Deploy
  • Offline installable PWA
  • Customize your notifications with optional features like adding an icon
  • Open-source and free to use
  • No registration required
  • Easy to use API

Quickstart using Docker 🐳

I know this looks scary on first glance but i swear it makes sense.

  1. Generate your instance vapid key deno run --unstable --import-map https://raw.githubusercontent.com/K0IN/Notify/main/app/backend/deno.json https://raw.githubusercontent.com/K0IN/Notify/main/app/backend/main.ts generate
  2. Start the docker (fill in the vapid key from step 1.) docker run -p 8787:8787 -e VAPID_KEY=<vapidkey> -e SUB=mailto:admin@admin.com -e SENDKEY=mypassword ghcr.io/k0in/notify:latest
  3. Start sending notifications curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer mypassword" -d '{"title":"Hello", "message":"World"}' http://localhost:8787/api/notify

by the way, you can also use the deno cli to send notifications

deno run --allow-net --unstable --import-map https://raw.githubusercontent.com/K0IN/Notify/main/app/backend/deno.json https://raw.githubusercontent.com/K0IN/Notify/main/app/backend/main.ts notify -r http://localhost:8787/api/notify -t test -m world --key mypassword

(which can be build into a single binary)

deno compile --allow-net --unstable --import-map https://raw.githubusercontent.com/K0IN/Notify/main/app/backend/deno.json --output notify https://raw.githubusercontent.com/K0IN/Notify/main/app/backend/main.ts

./notify notify -r http://localhost:8787/api/notify -t test -m world --key mypassword

Need Help? 🤔

Credits to the Amazing Developers! 🙏

Huge shout-out to the talented folks who made this possible! We've built on the fantastic web push code from gauntface and, not to forget, we use the Google Icon Font.