2022-03-13 21:08:38 +01:00
![ntfy ](web/public/static/img/ntfy.png )
2021-11-03 16:38:46 +01:00
2022-08-22 03:41:03 +02:00
---
2022-09-05 21:05:44 +02:00
## 👶 Baby break - My baby girl was born!
Hey folks, my daughter was born on 8/30/22, so I'll be taking some time off from working on ntfy. I'll likely return
to working on features and bugs in a few weeks. I hope you understand. I posted some pictures in [#387 ](https://github.com/binwiederhier/ntfy/issues/387 ) 🥰
2022-08-22 03:41:03 +02:00
---
2021-12-05 22:28:12 +01:00
# ntfy.sh | Send push notifications to your phone or desktop via PUT/POST
2021-11-26 23:09:41 +01:00
[![Release ](https://img.shields.io/github/release/binwiederhier/ntfy.svg?color=success&style=flat-square )](https://github.com/binwiederhier/ntfy/releases/latest)
2021-12-07 21:39:42 +01:00
[![Go Reference ](https://pkg.go.dev/badge/heckel.io/ntfy.svg )](https://pkg.go.dev/heckel.io/ntfy)
[![Tests ](https://github.com/binwiederhier/ntfy/workflows/test/badge.svg )](https://github.com/binwiederhier/ntfy/actions)
[![Go Report Card ](https://goreportcard.com/badge/github.com/binwiederhier/ntfy )](https://goreportcard.com/report/github.com/binwiederhier/ntfy)
[![codecov ](https://codecov.io/gh/binwiederhier/ntfy/branch/main/graph/badge.svg?token=A597KQ463G )](https://codecov.io/gh/binwiederhier/ntfy)
2022-01-03 17:49:39 +01:00
[![Discord ](https://img.shields.io/discord/874398661709295626?label=Discord )](https://discord.gg/cT7ECsZj9w)
[![Matrix ](https://img.shields.io/matrix/ntfy:matrix.org?label=Matrix )](https://matrix.to/#/#ntfy:matrix.org)
2022-06-06 15:50:26 +02:00
[![Matrix space ](https://img.shields.io/matrix/ntfy-space:matrix.org?label=Matrix+space )](https://matrix.to/#/#ntfy-space:matrix.org)
2022-10-29 03:03:52 +02:00
[![Reddit ](https://img.shields.io/reddit/subreddit-subscribers/ntfy?color=%23317f6f&label=-%20r%2Fntfy&style=social )](https://www.reddit.com/r/ntfy/)
2021-12-09 19:53:47 +01:00
[![Healthcheck ](https://healthchecks.io/badge/68b65976-b3b0-4102-aec9-980921/kcoEgrLY.svg )](https://ntfy.statuspage.io/)
2021-10-23 03:26:01 +02:00
2021-11-20 22:02:05 +01:00
**ntfy** (pronounce: *notify* ) is a simple HTTP-based [pub-sub ](https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern ) notification service.
2021-11-03 16:36:09 +01:00
It allows you to **send notifications to your phone or desktop via scripts** from any computer, entirely **without signup or cost** .
2021-11-03 16:33:34 +01:00
It's also open source (as you can plainly see) if you want to run your own.
2022-06-06 17:41:51 +02:00
I run a free version of it at ** [ntfy.sh ](https://ntfy.sh )**. There's also an [open source Android app ](https://github.com/binwiederhier/ntfy-android ) (see [Google Play ](https://play.google.com/store/apps/details?id=io.heckel.ntfy ) or [F-Droid ](https://f-droid.org/en/packages/io.heckel.ntfy/ )), and an [open source iOS app ](https://github.com/binwiederhier/ntfy-ios ) (see [App Store ](https://apps.apple.com/us/app/ntfy/id1625396347 )).
2021-10-23 03:26:01 +02:00
2021-11-09 16:51:21 +01:00
< p >
2022-03-12 04:02:44 +01:00
< img src = "web/public/static/img/screenshot-curl.png" height = "180" >
< img src = "web/public/static/img/screenshot-web-detail.png" height = "180" >
< img src = "web/public/static/img/screenshot-phone-main.jpg" height = "180" >
< img src = "web/public/static/img/screenshot-phone-detail.jpg" height = "180" >
< img src = "web/public/static/img/screenshot-phone-notification.jpg" height = "180" >
2021-11-09 16:51:21 +01:00
< / p >
2021-12-05 22:28:12 +01:00
## **[Documentation](https://ntfy.sh/docs/)**
2021-10-23 03:26:01 +02:00
2021-12-05 22:28:12 +01:00
[Getting started ](https://ntfy.sh/docs/ ) |
[Android/iOS ](https://ntfy.sh/docs/subscribe/phone/ ) |
[API ](https://ntfy.sh/docs/publish/ ) |
[Install / Self-hosting ](https://ntfy.sh/docs/install/ ) |
[Building ](https://ntfy.sh/docs/develop/ )
2021-10-24 05:37:30 +02:00
2022-10-29 03:03:52 +02:00
## Chat / forum
There are a few ways to get in touch with me and/or the rest of the community. Feel free to use any of these methods. Whatever
works best for you:
* [Discord server ](https://discord.gg/cT7ECsZj9w ) - direct chat with the community
* [Matrix room #ntfy ](https://matrix.to/#/#ntfy:matrix.org ) (+ [Matrix space ](https://matrix.to/#/#ntfy-space:matrix.org )) - same chat, bridged from Discord
* [Reddit r/ntfy ](https://www.reddit.com/r/ntfy/ ) - asynchronous forum (_new as of October 2022_)
* [GitHub issues ](https://github.com/binwiederhier/ntfy/issues ) - questions, features, bugs
* [Email ](https://heckel.io/about ) - reach me directly (_I usually prefer the other methods_)
2022-06-01 19:05:38 +02:00
## Announcements / beta testers
For announcements of new releases and cutting-edge beta versions, please subscribe to the [ntfy.sh/announcements ](https://ntfy.sh/announcements )
topic. If you'd like to test the iOS app, join [TestFlight ](https://testflight.apple.com/join/P1fFnAm9 ). For Android betas,
join Discord/Matrix (I'll eventually make a testing channel in Google Play).
2021-10-23 21:22:17 +02:00
## Contributing
2022-03-25 23:54:40 +01:00
I welcome any and all contributions. Just create a PR or an issue. To contribute code, check out
the [build instructions ](https://ntfy.sh/docs/develop/ ) for the server and the Android app.
2022-03-25 23:56:22 +01:00
Or, if you'd like to help translate 🇩🇪 🇺🇸 🇧🇬, you can start immediately in
2022-03-25 23:54:40 +01:00
[Hosted Weblate ](https://hosted.weblate.org/projects/ntfy/ ).
2021-10-23 21:22:17 +02:00
2022-03-28 17:07:05 +02:00
< a href = "https://hosted.weblate.org/engage/ntfy/" >
< img src = "https://hosted.weblate.org/widgets/ntfy/-/multi-blue.svg" alt = "Translation status" / >
< / a >
2022-09-05 21:05:44 +02:00
## Donations
I have just very recently started accepting donations via [GitHub Sponsors ](https://github.com/sponsors/binwiederhier ).
I would be humbled if you helped me carry the server and developer account costs. Even small donations are very much
2022-11-10 15:49:47 +01:00
appreciated. A big fat **Thank You** to the folks already sponsoring ntfy:
2022-09-30 18:06:31 +02:00
2022-11-10 15:49:47 +01:00
< a href = "https://github.com/neutralinsomniac" > < img src = "https://github.com/neutralinsomniac.png" width = "40px" / > < / a >
2022-09-30 18:06:31 +02:00
< a href = "https://github.com/aspyct" > < img src = "https://github.com/aspyct.png" width = "40px" / > < / a >
2022-11-10 15:49:47 +01:00
< a href = "https://github.com/nickexyz" > < img src = "https://github.com/nickexyz.png" width = "40px" / > < / a >
< a href = "https://github.com/qcasey" > < img src = "https://github.com/qcasey.png" width = "40px" / > < / a >
< a href = "https://github.com/mckay115" > < img src = "https://github.com/mckay115.png" width = "40px" / > < / a >
< a href = "https://github.com/Salamafet" > < img src = "https://github.com/Salamafet.png" width = "40px" / > < / a >
2022-09-30 18:06:31 +02:00
< a href = "https://github.com/codinghipster" > < img src = "https://github.com/codinghipster.png" width = "40px" / > < / a >
2022-11-10 15:49:47 +01:00
< a href = "https://github.com/HinFort" > < img src = "https://github.com/HinFort.png" width = "40px" / > < / a >
< a href = "https://github.com/Lexevolution" > < img src = "https://github.com/Lexevolution.png" width = "40px" / > < / a >
< a href = "https://github.com/johnnyip" > < img src = "https://github.com/johnnyip.png" width = "40px" / > < / a >
< a href = "https://github.com/JonDerThan" > < img src = "https://github.com/JonDerThan.png" width = "40px" / > < / a >
< a href = "https://github.com/12nick12" > < img src = "https://github.com/12nick12.png" width = "40px" / > < / a >
2022-11-08 20:10:59 +01:00
< a href = "https://github.com/eanplatter" > < img src = "https://github.com/eanplatter.png" width = "40px" / > < / a >
< a href = "https://github.com/fnoelscher" > < img src = "https://github.com/fnoelscher.png" width = "40px" / > < / a >
2022-11-10 15:49:47 +01:00
< a href = "https://github.com/bnorick" > < img src = "https://github.com/bnorick.png" width = "40px" / > < / a >
< a href = "https://github.com/snh" > < img src = "https://github.com/snh.png" width = "40px" / > < / a >
2022-11-09 15:18:42 +01:00
< a href = "https://github.com/hen-x" > < img src = "https://github.com/hen-x.png" width = "40px" / > < / a >
< a href = "https://github.com/JamieGoodson" > < img src = "https://github.com/JamieGoodson.png" width = "40px" / > < / a >
2022-11-10 15:49:47 +01:00
< a href = "https://github.com/cremesk" > < img src = "https://github.com/cremesk.png" width = "40px" / > < / a >
< a href = "https://github.com/dangowans" > < img src = "https://github.com/dangowans.png" width = "40px" / > < / a >
2022-11-10 15:44:42 +01:00
< a href = "https://github.com/mnault" > < img src = "https://github.com/mnault.png" width = "40px" / > < / a >
< a href = "https://github.com/nwithan8" > < img src = "https://github.com/nwithan8.png" width = "40px" / > < / a >
< a href = "https://github.com/peterleiser" > < img src = "https://github.com/peterleiser.png" width = "40px" / > < / a >
2022-09-05 21:05:44 +02:00
2021-10-23 21:22:17 +02:00
## License
2021-11-20 02:21:16 +01:00
Made with ❤️ by [Philipp C. Heckel ](https://heckel.io ).
The project is dual licensed under the [Apache License 2.0 ](LICENSE ) and the [GPLv2 License ](LICENSE.GPLv2 ).
2021-10-24 20:51:49 +02:00
Third party libraries and resources:
2022-08-14 14:29:24 +02:00
* [github.com/urfave/cli ](https://github.com/urfave/cli ) (MIT) is used to drive the CLI
2022-03-06 16:42:05 +01:00
* [Mixkit sounds ](https://mixkit.co/free-sound-effects/notification/ ) (Mixkit Free License) are used as notification sounds
* [Sounds from notificationsounds.com ](https://notificationsounds.com ) (Creative Commons Attribution) are used as notification sounds
* [Roboto Font ](https://fonts.google.com/specimen/Roboto ) (Apache 2.0) is used as a font in everything web
* [React ](https://reactjs.org/ ) (MIT) is used for the web app
* [Material UI components ](https://mui.com/ ) (MIT) are used in the web app
* [MUI dashboard template ](https://github.com/mui/material-ui/tree/master/docs/data/material/getting-started/templates/dashboard ) (MIT) was used as a basis for the web app
* [Dexie.js ](https://github.com/dexie/Dexie.js ) (Apache 2.0) is used for web app persistence in IndexedDB
2021-11-03 16:33:34 +01:00
* [GoReleaser ](https://goreleaser.com/ ) (MIT) is used to create releases
2021-12-28 17:36:12 +01:00
* [go-smtp ](https://github.com/emersion/go-smtp ) (MIT) is used to receive e-mails
* [stretchr/testify ](https://github.com/stretchr/testify ) (MIT) is used for unit and integration tests
2021-11-03 16:33:34 +01:00
* [github.com/mattn/go-sqlite3 ](https://github.com/mattn/go-sqlite3 ) (MIT) is used to provide the persistent message cache
* [Firebase Admin SDK ](https://github.com/firebase/firebase-admin-go ) (Apache 2.0) is used to send FCM messages
2021-11-29 15:34:43 +01:00
* [github/gemoji ](https://github.com/github/gemoji ) (MIT) is used for emoji support (specifically the [emoji.json ](https://raw.githubusercontent.com/github/gemoji/master/db/emoji.json ) file)
2022-03-06 16:42:05 +01:00
* [Lightbox with vanilla JS ](https://yossiabramov.com/blog/vanilla-js-lightbox ) as a lightbox on the landing page
2022-03-11 03:55:56 +01:00
* [HTTP middleware for gzip compression ](https://gist.github.com/CJEnright/bc2d8b8dc0c1389a9feeddb110f822d7 ) (MIT) is used for serving static files
2022-03-11 17:46:19 +01:00
* [Regex for auto-linking ](https://github.com/bryanwoods/autolink-js ) (MIT) is used to highlight links (the library is not used)
2021-11-21 02:18:40 +01:00
* [Statically linking go-sqlite3 ](https://www.arp242.net/static-go.html )
2022-03-11 16:43:18 +01:00
* [Linked tabs in mkdocs ](https://facelessuser.github.io/pymdown-extensions/extensions/tabbed/#linked-tabs )