2023-05-02 20:40:19 +03:00
![ntfy ](web/public/static/images/ntfy.png )
2021-11-03 18:38:46 +03:00
2021-12-06 00:28:12 +03:00
# ntfy.sh | Send push notifications to your phone or desktop via PUT/POST
2021-11-27 01:09:41 +03: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 23:39:42 +03: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 19:49:39 +03: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 16:50:26 +03:00
[![Matrix space ](https://img.shields.io/matrix/ntfy-space:matrix.org?label=Matrix+space )](https://matrix.to/#/#ntfy-space:matrix.org)
2023-07-05 03:10:17 +03:00
[![Lemmy ](https://img.shields.io/badge/Lemmy-discuss-green )](https://discuss.ntfy.sh/c/ntfy)
2021-12-09 21:53:47 +03:00
[![Healthcheck ](https://healthchecks.io/badge/68b65976-b3b0-4102-aec9-980921/kcoEgrLY.svg )](https://ntfy.statuspage.io/)
2022-12-11 00:56:13 +03:00
[![Gitpod ](https://img.shields.io/badge/Contribute%20with-Gitpod-908a85?logo=gitpod )](https://gitpod.io/#https://github.com/binwiederhier/ntfy)
2023-03-03 22:04:50 +03:00
**ntfy** (pronounced "*notify*") is a simple HTTP-based [pub-sub ](https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern )
notification service. With ntfy, you can **send notifications to your phone or desktop via scripts** from any computer,
**without having to sign up or pay any fees**. If you'd like to run your own instance of the service, you can easily do
so since ntfy is open source.
2021-11-03 18:33:34 +03:00
2023-03-03 22:04:50 +03:00
You can access the free version of ntfy at ** [ntfy.sh ](https://ntfy.sh )**. There is also an [open source Android app ](https://github.com/binwiederhier/ntfy-android )
available on [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/ ),
as well as an [open source iOS app ](https://github.com/binwiederhier/ntfy-ios ) available on the [App Store ](https://apps.apple.com/us/app/ntfy/id1625396347 ).
2021-10-23 04:26:01 +03:00
2021-11-09 18:51:21 +03:00
< p >
2023-05-02 20:40:19 +03:00
< img src = ".github/images/screenshot-curl.png" height = "180" >
< img src = ".github/images/screenshot-web-detail.png" height = "180" >
< img src = ".github/images/screenshot-phone-main.jpg" height = "180" >
< img src = ".github/images/screenshot-phone-detail.jpg" height = "180" >
< img src = ".github/images/screenshot-phone-notification.jpg" height = "180" >
2021-11-09 18:51:21 +03:00
< / p >
2023-05-02 22:13:48 +03:00
## [ntfy Pro](https://ntfy.sh/app) 💸 🎉
I now offer paid plans for [ntfy.sh ](https://ntfy.sh/ ) if you don't want to self-host, or you want to support the development of ntfy (→ [Purchase via web app ](https://ntfy.sh/app )). You can **buy a plan for as low as $3.33/month** (if you use promo code `MYTOPIC` , limited time only). You can also donate via [GitHub Sponsors ](https://github.com/sponsors/binwiederhier ), and [Liberapay ](https://liberapay.com/ntfy ). I would be very humbled by your sponsorship. ❤️
2023-05-02 22:10:16 +03:00
2021-12-06 00:28:12 +03:00
## **[Documentation](https://ntfy.sh/docs/)**
2021-10-23 04:26:01 +03:00
2021-12-06 00:28:12 +03: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 06:37:30 +03:00
2022-10-29 04:03:52 +03: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
2023-07-05 03:11:45 +03:00
* [Lemmy discussion board ](https://discuss.ntfy.sh/c/ntfy ) - asynchronous forum (_new as of June 2023_)
2022-10-29 04:03:52 +03:00
* [GitHub issues ](https://github.com/binwiederhier/ntfy/issues ) - questions, features, bugs
2022-06-01 20:05:38 +03: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 22:22:17 +03:00
## Contributing
2022-12-12 23:06:04 +03:00
I welcome any and all contributions. Just create a PR or an issue. For larger features/ideas, please reach out
on Discord/Matrix first to see if I'd accept them. To contribute code, check out the [build instructions ](https://ntfy.sh/docs/develop/ )
for the server and the Android app. Or, if you'd like to help translate 🇩🇪 🇺🇸 🇧🇬, you can start immediately in
2022-03-26 01:54:40 +03:00
[Hosted Weblate ](https://hosted.weblate.org/projects/ntfy/ ).
2021-10-23 22:22:17 +03:00
2022-03-28 18:07:05 +03: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-11-25 17:10:40 +03:00
## Sponsors
2023-01-24 18:32:11 +03:00
I have just very recently started accepting donations via [GitHub Sponsors ](https://github.com/sponsors/binwiederhier ),
and [Liberapay ](https://liberapay.com/ntfy ). I would be humbled if you helped me carry the server and developer
account costs. Even small donations are very much appreciated. A big fat **Thank You** to the folks already sponsoring ntfy:
2022-09-30 19:06:31 +03:00
2022-11-10 17:49:47 +03:00
< a href = "https://github.com/neutralinsomniac" > < img src = "https://github.com/neutralinsomniac.png" width = "40px" / > < / a >
2022-09-30 19:06:31 +03:00
< a href = "https://github.com/aspyct" > < img src = "https://github.com/aspyct.png" width = "40px" / > < / a >
2022-11-10 17:49:47 +03: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 19:06:31 +03:00
< a href = "https://github.com/codinghipster" > < img src = "https://github.com/codinghipster.png" width = "40px" / > < / a >
2022-11-10 17:49:47 +03: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 22:10:59 +03: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 17:49:47 +03: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 17:18:42 +03: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 17:49:47 +03: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 17:44:42 +03: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-11-12 14:56:40 +03:00
< a href = "https://github.com/portothree" > < img src = "https://github.com/portothree.png" width = "40px" / > < / a >
2022-11-15 17:09:31 +03:00
< a href = "https://github.com/finngreig" > < img src = "https://github.com/finngreig.png" width = "40px" / > < / a >
2022-11-16 22:26:54 +03:00
< a href = "https://github.com/skrollme" > < img src = "https://github.com/skrollme.png" width = "40px" / > < / a >
2022-11-17 14:40:59 +03:00
< a href = "https://github.com/gergepalfi" > < img src = "https://github.com/gergepalfi.png" width = "40px" / > < / a >
2022-11-18 18:35:08 +03:00
< a href = "https://github.com/tonyakwei" > < img src = "https://github.com/tonyakwei.png" width = "40px" / > < / a >
2022-11-18 23:38:39 +03:00
< a href = "https://github.com/crosbyh" > < img src = "https://github.com/crosbyh.png" width = "40px" / > < / a >
2022-12-03 03:58:11 +03:00
< a href = "https://github.com/mdlnr" > < img src = "https://github.com/mdlnr.png" width = "40px" / > < / a >
2022-12-10 17:01:40 +03:00
< a href = "https://github.com/p-samuel" > < img src = "https://github.com/p-samuel.png" width = "40px" / > < / a >
2022-12-12 18:54:53 +03:00
< a href = "https://github.com/zugaldia" > < img src = "https://github.com/zugaldia.png" width = "40px" / > < / a >
< a href = "https://github.com/NathanSweet" > < img src = "https://github.com/NathanSweet.png" width = "40px" / > < / a >
2022-12-13 23:21:06 +03:00
< a href = "https://github.com/msdeibel" > < img src = "https://github.com/msdeibel.png" width = "40px" / > < / a >
2022-12-14 13:38:33 +03:00
< a href = "https://github.com/ksurl" > < img src = "https://github.com/ksurl.png" width = "40px" / > < / a >
2022-12-19 18:02:19 +03:00
< a href = "https://github.com/CodingTimeDEV" > < img src = "https://github.com/CodingTimeDEV.png" width = "40px" / > < / a >
2022-12-21 17:39:13 +03:00
< a href = "https://github.com/Terrormixer3000" > < img src = "https://github.com/Terrormixer3000.png" width = "40px" / > < / a >
2022-12-23 16:39:44 +03:00
< a href = "https://github.com/voroskoi" > < img src = "https://github.com/voroskoi.png" width = "40px" / > < / a >
2022-12-24 20:11:40 +03:00
< a href = "https://github.com/Nickwasused" > < img src = "https://github.com/Nickwasused.png" width = "40px" / > < / a >
2022-12-31 17:32:59 +03:00
< a href = "https://github.com/bahur142" > < img src = "https://github.com/bahur142.png" width = "40px" / > < / a >
2023-01-03 06:24:00 +03:00
< a href = "https://github.com/vinhdizzo" > < img src = "https://github.com/vinhdizzo.png" width = "40px" / > < / a >
< a href = "https://github.com/Ge0rg3" > < img src = "https://github.com/Ge0rg3.png" width = "40px" / > < / a >
2023-01-03 19:28:51 +03:00
< a href = "https://github.com/biopsin" > < img src = "https://github.com/biopsin.png" width = "40px" / > < / a >
2023-01-04 17:38:52 +03:00
< a href = "https://github.com/thebino" > < img src = "https://github.com/thebino.png" width = "40px" / > < / a >
2023-01-12 18:25:13 +03:00
< a href = "https://github.com/sky4055" > < img src = "https://github.com/sky4055.png" width = "40px" / > < / a >
2023-01-22 00:20:24 +03:00
< a href = "https://github.com/julianlam" > < img src = "https://github.com/julianlam.png" width = "40px" / > < / a >
2023-01-24 18:32:11 +03:00
< a href = "https://github.com/andreapx" > < img src = "https://github.com/andreapx.png" width = "40px" / > < / a >
2023-01-26 06:27:47 +03:00
< a href = "https://github.com/billycao" > < img src = "https://github.com/billycao.png" width = "40px" / > < / a >
2023-02-02 23:21:35 +03:00
< a href = "https://github.com/zoic21" > < img src = "https://github.com/zoic21.png" width = "40px" / > < / a >
2023-02-08 07:23:00 +03:00
< a href = "https://github.com/IanKulin" > < img src = "https://github.com/IanKulin.png" width = "40px" / > < / a >
2023-02-13 05:13:26 +03:00
< a href = "https://github.com/Joachim256" > < img src = "https://github.com/Joachim256.png" width = "40px" / > < / a >
< a href = "https://github.com/overtone1000" > < img src = "https://github.com/overtone1000.png" width = "40px" / > < / a >
2023-02-19 03:49:29 +03:00
< a href = "https://github.com/oakd" > < img src = "https://github.com/oakd.png" width = "40px" / > < / a >
2023-02-19 17:07:53 +03:00
< a href = "https://github.com/KucharczykL" > < img src = "https://github.com/KucharczykL.png" width = "40px" / > < / a >
2023-02-21 17:03:21 +03:00
< a href = "https://github.com/hansbickhofe" > < img src = "https://github.com/hansbickhofe.png" width = "40px" / > < / a >
2023-02-22 19:47:12 +03:00
< a href = "https://github.com/caseodilla" > < img src = "https://github.com/caseodilla.png" width = "40px" / > < / a >
2023-02-27 05:13:26 +03:00
< a href = "https://github.com/0xAF" > < img src = "https://github.com/0xAF.png" width = "40px" / > < / a >
2023-02-27 17:38:44 +03:00
< a href = "https://github.com/soonoo" > < img src = "https://github.com/soonoo.png" width = "40px" / > < / a >
2023-03-19 16:45:18 +03:00
< a href = "https://github.com/nichu42" > < img src = "https://github.com/nichu42.png" width = "40px" / > < / a >
2023-03-25 21:11:58 +03:00
< a href = "https://github.com/samliebow" > < img src = "https://github.com/samliebow.png" width = "40px" / > < / a >
2023-03-28 21:42:15 +03:00
< a href = "https://github.com/johman10" > < img src = "https://github.com/johman10.png" width = "40px" / > < / a >
2023-03-30 19:56:47 +03:00
< a href = "https://github.com/R-Gld" > < img src = "https://github.com/R-Gld.png" width = "40px" / > < / a >
2023-04-20 05:32:33 +03:00
< a href = "https://github.com/FingerlessGlov3s" > < img src = "https://github.com/FingerlessGlov3s.png" width = "40px" / > < / a >
2023-04-24 20:08:32 +03:00
< a href = "https://github.com/Twisterado" > < img src = "https://github.com/Twisterado.png" width = "40px" / > < / a >
2023-04-28 16:04:24 +03:00
< a href = "https://github.com/ScrumpyJack" > < img src = "https://github.com/ScrumpyJack.png" width = "40px" / > < / a >
2023-05-07 19:00:19 +03:00
< a href = "https://github.com/andrejarrell" > < img src = "https://github.com/andrejarrell.png" width = "40px" / > < / a >
2023-05-09 16:39:20 +03:00
< a href = "https://github.com/oaustegard" > < img src = "https://github.com/oaustegard.png" width = "40px" / > < / a >
2023-05-13 03:02:00 +03:00
< a href = "https://github.com/CreativeWarlock" > < img src = "https://github.com/CreativeWarlock.png" width = "40px" / > < / a >
2023-05-18 22:08:40 +03:00
< a href = "https://github.com/darkdragon-001" > < img src = "https://github.com/darkdragon-001.png" width = "40px" / > < / a >
2023-05-22 00:27:24 +03:00
< a href = "https://github.com/jonathan-kosgei" > < img src = "https://github.com/jonathan-kosgei.png" width = "40px" / > < / a >
2023-06-11 04:11:48 +03:00
< a href = "https://github.com/KevinWang15" > < img src = "https://github.com/KevinWang15.png" width = "40px" / > < / a >
2023-08-03 17:49:04 +03:00
< a href = "https://github.com/darkmattercoder" > < img src = "https://github.com/darkmattercoder.png" width = "40px" / > < / a >
2023-08-06 04:13:48 +03:00
< a href = "https://github.com/bmcgonag" > < img src = "https://github.com/bmcgonag.png" width = "40px" / > < / a >
2022-09-05 22:05:44 +03:00
2023-08-03 17:49:04 +03:00
I'd also like to thank JetBrains for their awesome [IntelliJ IDEA ](https://www.jetbrains.com/idea/ ),
2023-01-19 20:05:26 +03:00
and [DigitalOcean ](https://m.do.co/c/442b929528db ) (*referral link*) for supporting the project:
2022-11-25 17:10:40 +03:00
2023-01-19 20:05:26 +03:00
< a href = "https://m.do.co/c/442b929528db" > < img src = "https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/SVG/DO_Logo_horizontal_blue.svg" width = "201px" > < / a >
2022-11-25 17:10:40 +03:00
2022-12-12 23:06:04 +03:00
## Code of Conduct
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation.
**We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.**
_Please be sure to read the complete [Code of Conduct ](CODE_OF_CONDUCT.md )._
2021-10-23 22:22:17 +03:00
## License
2021-11-20 04:21:16 +03: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 21:51:49 +03:00
Third party libraries and resources:
2022-08-14 15:29:24 +03:00
* [github.com/urfave/cli ](https://github.com/urfave/cli ) (MIT) is used to drive the CLI
2022-03-06 18:42:05 +03: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 18:33:34 +03:00
* [GoReleaser ](https://goreleaser.com/ ) (MIT) is used to create releases
2021-12-28 19:36:12 +03: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 18:33:34 +03: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 17:34:43 +03: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 18:42:05 +03:00
* [Lightbox with vanilla JS ](https://yossiabramov.com/blog/vanilla-js-lightbox ) as a lightbox on the landing page
2022-03-11 05:55:56 +03:00
* [HTTP middleware for gzip compression ](https://gist.github.com/CJEnright/bc2d8b8dc0c1389a9feeddb110f822d7 ) (MIT) is used for serving static files
2022-03-11 19:46:19 +03: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 04:18:40 +03:00
* [Statically linking go-sqlite3 ](https://www.arp242.net/static-go.html )
2022-03-11 18:43:18 +03:00
* [Linked tabs in mkdocs ](https://facelessuser.github.io/pymdown-extensions/extensions/tabbed/#linked-tabs )
2023-05-29 23:09:40 +03:00
* [webpush-go ](https://github.com/SherClockHolmes/webpush-go ) (MIT) is used to send web push notifications