MCPcopy Index your code
hub / github.com/K0IN/Notify

github.com/K0IN/Notify @v0.0.8

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.0.8 ↗ · + Follow
126 symbols 311 edges 71 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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.

Extension points exported contracts — how you extend this code

NotifyV1Store (Interface)
(no doc)
app/frontend/src/types/dbtypes.ts
WebPushMessage (Interface)
(no doc)
app/backend/webpush/webpushinfos.ts
BasePushMessage (Interface)
(no doc)
app/frontend/src/types/postmassage.ts
JWK (Interface)
(no doc)
app/backend/webpush/jwk.ts
NewMessagePushMessage (Interface)
(no doc)
app/frontend/src/types/postmassage.ts
ServerParams (Interface)
(no doc)
app/backend/types/appparameters.ts
SuccessResponse (Interface)
(no doc)
app/frontend/src/types/apiresponse.ts
ErrorResponse (Interface)
(no doc)
app/frontend/src/types/apiresponse.ts

Core symbols most depended-on inside this repo

failure
called by 13
app/backend/types/apiresponse.ts
getDatabase
called by 8
app/frontend/src/database/message.ts
b64ToUrlEncoded
called by 8
app/backend/webpush/util.ts
stringToU8Array
called by 8
app/backend/webpush/util.ts
success
called by 7
app/backend/types/apiresponse.ts
toReturn
called by 7
app/backend/util/oakreturn.ts
responseToContext
called by 5
app/backend/util/oakreturn.ts
parseResponse
called by 3
app/frontend/src/types/apiresponse.ts

Shape

Function 114
Interface 10
Enum 2

Languages

TypeScript100%

Modules by API surface

app/backend/webpush/util.ts12 symbols
app/backend/webpush/message.ts10 symbols
app/frontend/src/sw.js6 symbols
app/frontend/src/services/apiservice.ts6 symbols
app/backend/webpush/vapid.ts5 symbols
app/backend/databases/device.ts5 symbols
app/frontend/src/types/apiresponse.ts4 symbols
app/frontend/src/database/message.ts4 symbols
app/backend/middleware/auth.ts4 symbols
app/frontend/src/services/webpush.ts3 symbols
app/frontend/src/services/loginservice.ts3 symbols
app/frontend/src/hooks/use-supported.ts3 symbols

For agents

$ claude mcp add Notify \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page