Releases: binwiederhier/ntfy
v2.14.0
This release adds support for declarative users, declarative ACL entries and declarative tokens. This allows you to define users, ACL entries and tokens in the config file, which is useful for static deployments or deployments that use a configuration management system.
It also adds support for pre-defined templates and custom templates for enhanced JSON webhook support, as well as advanced template functions based on the Sprig functions.
❤️ If you like ntfy, please consider sponsoring me via GitHub Sponsors, Liberapay, Bitcoin (1626wjrw3uWk9adyjCfYwafw4sQWujyjn8
), or by buying a paid plan via the web app. ntfy
will always remain open source.
Features:
- Declarative users, declarative ACL entries and declarative tokens (#464, #1384, #1413, thanks to pinpox for reporting, to @wunter8 for reviewing and implementing parts of it)
- Pre-defined templates and custom templates for enhanced JSON webhook support (#1390)
- Support of advanced template functions based on the Sprig library (#1121, thanks to @davidatkinsondoyle for reporting, to @wunter8 for implementing, and to the Sprig team for their work)
v2.13.0
This is a relatively small release, mainly to support IPv6 and to add more sophisticated
proxy header support. Quick reminder that if you like ntfy, please consider sponsoring us
via GitHub Sponsors and Liberapay, or buying a paid plan via the web app.
ntfy will always remain open source.
Features:
- Full IPv6 support for ntfy and the official ntfy.sh server (#519 / #1380 / #4)
- Support
X-Client-IP
,X-Real-IP
,Forwarded
headers for rate limiting viaproxy-forwarded-header
andproxy-trusted-hosts
(#1360 / #1252, thanks to @pixitha) - Add STDIN support for
ntfy publish
(#1382, thanks to @srevn)
Languages
- Update new languages from Weblate. Thanks to all the contributors!
- Added Estonian (Esti), Galician (Galego), Romanian (Română), Slovak (Slovenčina) as new languages to the web app
v2.12.0
This is mainly a maintenance release that updates dependencies, though since it's been over a year, there are a few new features and bug fixes as well.
Thanks to everyone who contributed to this release, and special thanks to @wunter8 for his continued user support in Discord/Matrix/GitHub! You rock, man!
Features:
- Add username/password auth to email publishing (#1164, thanks to @bishtawi)
- Write VAPID keys to file in
ntfy webpush --output-file
(#1138, thanks to @nogweii) - Add Docker major/minor version to image tags (#1271, thanks to @RoboMagus)
- Add
latest
subscription param for grabbing just the most recent message (#1216, thanks to @wunter8) - Allow using
NTFY_PASSWORD_HASH
inntfy user
command instead of raw password (#1340, thanks to @Tom-Hubrecht for implementing) - You can now change passwords via
v1/users
API (#1267, thanks to @wunter8 for implementing) - Make WebPush subscription warning/expiry configurable, increase default to 55/60 days (#1212, thanks to @KuroSetsuna29)
- Support systemd user service
ntfy-client.service
(#1002, thanks to @dandersch)
Bug fixes + maintenance:
- Security updates for dependencies and Docker images (#1341)
- Upgrade to Vite 6 (#1342, thanks Dependabot)
- Fix iOS delivery issues for read-protected topics (#1207, thanks a lot to @barart!)
- Add
Date
header to outgoing emails to avoid rejection (#1141, thanks to @pcouy) - Fix IP address parsing when behind a proxy (#1266, thanks to @mmatuska)
- Make sure UnifiedPush messages are not treated as attachments (#1312, thanks to @vkrause)
- Add OCI image version to Docker image (#1307, thanks to @jlssmt)
- WebSocket returning incorrect HTTP error code (#1338 / #1337, thanks to @wunter8 for debugging and implementing)
- Make Markdown in the web app scrollable horizontally (#1262, thanks to @rake5k for fixing)
- Make sure WebPush subscription topics are actually deleted (no ticket)
- Increase the number of access tokens per user to 60 (#1308)
- Allow specifying
cache
andfirebase
via JSON publishing (#1119/#1123, thanks to @stendler)
Documentation:
- Lots of new integrations and projects. Amazing!
- Various docs updates (#1161, thanks to @OneWeekNotice)
- Typo in config docs (#1177, thanks to @hoho4190)
- Typo in CLI docs (#1172, thanks to @anirvan)
- Correction about MacroDroid (#1137, thanks to @ShlomoCode)
- Note about fail2ban in Docker (#1175), thanks to @Measurity)
- Lots of other tiny docs updates, thanks to everyone who contributed!
Languages
- Update new languages from Weblate. Thanks to all the contributors!
- Added Tamil (தமிழ்) as a new language to the web app
v2.11.0
This is a tiny release that fixes a database index issue that caused performance issues on ntfy.sh. It also fixes a bug in the rate visitor logic that caused rate visitors to be assigned to seemingly random topics. Nothing major this time.
❤️ Quick reminder that if you like ntfy, please consider sponsoring us via GitHub Sponsors and Liberapay, or buying a paid plan via the web app. ntfy will always remain open source.
Bug fixes + maintenance:
v2.10.0
This release adds support for message templating: in the ntfy server, which allows you to include a message and/or title template that will be filled with values from a JSON body (e.g. curl -gd '{"alert":"Disk space low"}' "ntfy.sh/mytopic?tpl=1&m={{.alert}}"
). This is great for services that let you specify a webhook URL but do not let you change the webhook body (such as GitHub, or Grafana).
Features:
- Message templating: You can now include a message and/or title template that will be filled with values from a JSON body (#724, thanks to @wunter8 for implementing)
That's all. Short and sweet.
If you like ntfy, please consider donating via GitHub Sponsors, Liberapay, or by buying a ntfy Pro plan.
v2.9.0
A small release after a long pause (lots of day job work). This release adds for larger messages and longer message delays in scheduled delivery messages. The web app also now supports pasting images from the clipboard. Other than that, only a few bug fixes and documentation updates, and a teeny tiny breaking change 😬.
- The
Rate-Topics
header was removed due to a DoS issue (see #1048). This only affects installations withvisitor-subscriber-rate-limiting: true
, which is not the default and likely very rarely used. Normally I'd never remove a feature, but this is a security issue, and likely affects almost nobody.
Features:
- Support for larger message delays with
message-delay-limit
(see message limits, #1019, thanks to @MrChadMWood for reporting) - Support for larger message body sizes with
message-size-limit
(use at your own risk, see message limits, #836/#1050, thanks to @zhzy0077 for implementing this, and to @nkjshlsqja7331 for reporting) - Web app: You can now paste images into the message bar or publish dialog (#963/#572, thanks to @cmj2002 for implementing, and @rounakdatta for reporting)
Bug fixes + maintenance:
⚠️ RemoveRate-Topics
header due to DoS security issue ifvisitor-subscriber-rate-limiting: true
(#1048)
Documentation:
- Remove
mkdocs-simple-hooks
(#1016, thanks to @Tom-Hubrecht) - Update Watchtower example (#1014, thanks to @lennart-m)
- Fix dead links (#1022, thanks to @DerRockWolf)
- PowerShell file upload example (#1004, thanks to @YMan84)
❤️ Special thanks to @wunter8 for always answering all the questions on Discord/Matrix!
v2.8.0
This release brings a handful of random bug fixes: two unrelated access control list fixes, a fix around web app crashes for languages with underscores in the language code (e.g. zh_Hant
, zh_Hans
, pt_BR
, ...), a workaround for the Priority
header (often used in Cloudflare setups), and support among others support for HTML-only emails (finally), web app crash fixes
Bug fixes + maintenance:
- Support for HTML-only emails (#690/#693, thanks to @teastrainer and @CrazyWolf13 for reporting)
- Fix ACL issue with topic patterns containing underscores (#840, thanks to @Joe-0237 for reporting)
- Fix ACL issue with order of read/write rules (#914/#917, thanks to @sandman7920)
- Re-add
tzdata
to Docker images for amd64 image (#894, #307) - Add special logic to ignore
Priority
header if it resembles an RFC 9218 value (#851/#895, thanks to @gusdleon, see also #351, #353, #461) - PWA: hide install prompt on macOS 14 Safari (#899, thanks to @nihalgonsalves)
- Fix web app crash in Edge for languages with underline in locale (#922/#912/#852, thanks to @imkero)
Additional languages:
- Finnish (thanks to @Seppo)
v2.7.0
This release ships Markdown support for the web app (not in the Android app yet), and adds support for right-to-left languages (RTL) in the web app. It also fixes a few issues around date/time formatting, internationalization support, a CLI auth bug.
Features:
- Add support for Markdown formatting in web app (#310, thanks to @nihalgonsalves)
- Add support for right-to-left languages (RTL) in the web app (#663, thanks to @nimbleghost)
- Fixes issue with access tokens getting deleted (#838)
Bug fixes + maintenance:
- Fix issues with date/time with different locales (#700, thanks to @nimbleghost)
- Re-init i18n on each service worker message to avoid missing translations (#817, thanks to @nihalgonsalves)
- You can now unset the default user:pass/token in
client.yml
for an individual subscription to remove the Authorization header (#829, thanks to @tomeon for reporting and to @wunter8 for fixing)
Documentation:
- Update docs for Apache config (#819, thanks to @nisbet-hubbard)
v2.6.2
With this release, the ntfy web app now contains a progressive web app (PWA) with Web Push support, which means you'll be able to install the ntfy web app on your desktop or phone similar to a native app (even on iOS! 🥳). Installing the PWA gives ntfy web its own launcher, a standalone window, push notifications, and an app badge with the unread notification count.
On top of that, this release also brings dark mode 🧛🌙 to the web app.
🙏 A huge thanks for this release goes to @nimbleghost, for basically implementing the Web Push / PWA and dark mode feature by himself. I'm really grateful for your contributions.
❤️ If you like ntfy, please consider sponsoring us via GitHub Sponsors and Liberapay, or buying a paid plan via the web app (20% off if you use promo code MYTOPIC
). ntfy will always remain open source.
Features:
- The web app now supports Web Push, and is installable as a progressive web app (PWA) on Chrome, Edge, Android, and iOS (#751, thanks to @nimbleghost)
- Support for dark mode in the web app (#206, thanks to @nimbleghost)
Bug fixes:
- Support encoding any header as RFC 2047 (#737, thanks to @cfouche3005 for reporting)
- Do not forward poll requests for UnifiedPush messages (no ticket, thanks to NoName for reporting)
- Fix
ntfy pub %
segfaulting (#760, thanks to @clesmian for reporting) - Newly created access tokens are now lowercase only to fully support
<topic>+<token>@<domain>
email syntax (#773, thanks to gingervitiz for reporting) - The .1 release fixes a few visual issues with dark mode, and other web app updates (#791, #793, #792, thanks to @nimbleghost)
- The .2 release fixes issues with the service worker in Firefox and adds automatic service worker updates (#795, thanks to @nimbleghost)
Maintenance:
- Improved GitHub Actions flow (#745, thanks to @nimbleghost)
- Web: Add JS formatter "prettier" (#746, thanks to @nimbleghost)
- Web: Add eslint with eslint-config-airbnb (#748, thanks to @nimbleghost)
- Web: Switch to Vite (#749, thanks to @nimbleghost)
Changes in tarball/zip naming:
Due to a change in GoReleaser, some of the binary release
archives now have slightly different names. My apologies if this causes issues in the downstream projects that use ntfy:
ntfy_v${VERSION}_windows_x86_64.zip
->ntfy_v${VERSION}_windows_amd64.zip
ntfy_v${VERSION}_linux_x86_64.tar.gz
->ntfy_v${VERSION}_linux_amd64.tar.gz
ntfy_v${VERSION}_macOS_all.tar.gz
->ntfy_v${VERSION}_darwin_all.tar.gz
v2.6.1
(:warning: This release is superseded by v2.6.2)
With this release, the ntfy web app now contains a progressive web app (PWA) with Web Push support, which means you'll be able to install the ntfy web app on your desktop or phone similar to a native app (even on iOS! 🥳). Installing the PWA gives ntfy web its own launcher, a standalone window, push notifications, and an app badge with the unread notification count.
On top of that, this release also brings dark mode 🧛🌙 to the web app.
🙏 A huge thanks for this release goes to @nimbleghost, for basically implementing the Web Push / PWA and dark mode feature by himself. I'm really grateful for your contributions.
❤️ If you like ntfy, please consider sponsoring us via GitHub Sponsors and Liberapay, or buying a paid plan via the web app (20% off if you use promo code MYTOPIC
). ntfy will always remain open source.
Features:
- The web app now supports Web Push, and is installable as a progressive web app (PWA) on Chrome, Edge, Android, and iOS (#751, thanks to @nimbleghost)
- Support for dark mode in the web app (#206, thanks to @nimbleghost)
Bug fixes:
- Support encoding any header as RFC 2047 (#737, thanks to @cfouche3005 for reporting)
- Do not forward poll requests for UnifiedPush messages (no ticket, thanks to NoName for reporting)
- Fix
ntfy pub %
segfaulting (#760, thanks to @clesmian for reporting) - Newly created access tokens are now lowercase only to fully support
<topic>+<token>@<domain>
email syntax (#773, thanks to gingervitiz for reporting) - The .1 release fixes a few visual issues with dark mode, and other web app updates (#791, #793, #792, thanks to @nimbleghost)