72 KiB
Release notes
Binaries for all releases can be found on the GitHub releases pages for the ntfy server and the ntfy Android app.
ntfy server v2.4.0
Released Apr 26, 2023
This release adds a tiny v1/stats
endpoint to expose how many messages have been published, and adds suport to encode the X-Title
,
X-Message
and X-Tags
header as RFC 2047. It's a pretty small release, and mainly enables the release of the new ntfy.sh website.
❤️ If you like ntfy, please consider sponsoring me via GitHub Sponsors and Liberapay, or by buying a paid plan via the web app. ntfy will always remain open source.
Features:
- ntfy CLI (
ntfy publish
andntfy subscribe
only) can now be installed via Homebrew (thanks to @Moulick) - Added
v1/stats
endpoint to expose messages stats (no ticket) - Support RFC 2047 encoded headers (no ticket, honorable mention to mqttwarn and @amotl)
Bug fixes + maintenance:
- Hide country flags on Windows (#606, thanks to @cmeis for reporting, and to @pokej6 for fixing it)
ntfy sub
now uses default auth credentials as defined inclient.yml
(#698, thanks to @CrimsonFez for reporting, and to @wunter8 for fixing it)
Documentation:
Additional languages:
- Swedish (thanks to @hellbown)
ntfy server v2.3.1
Released March 30, 2023
This release disables server-initiated polling of iOS devices entirely, thereby eliminating the thundering herd problem on ntfy.sh that we observe every 20 minutes. The polling was never strictly necessary, and has actually caused duplicate delivery issues as well, so disabling it should not have any negative effects. iOS users, please reach out via Discord or Matrix if there are issues.
Bug fixes + maintenance:
ntfy server v2.3.0
Released March 29, 2023
This release primarily fixes an issue with delayed messages, and it adds support for Go's profiler (if enabled), which will allow investigating usage spikes in more detail. There will likely be a follow-up release this week to fix the actual spikes caused by iOS devices.
Features:
- ntfy now supports Go's
pprof
profiler, if enabled (relates to #677)
Bug fixes + maintenance:
- Fix delayed message sending from authenticated users (#679)
- Fixed plural for Polish and other translations (#678, thanks to @bmoczulski)
ntfy server v2.2.0
Released March 17, 2023
With this release, ntfy is now able to expose metrics via a /metrics
endpoint for Prometheus, if enabled.
The endpoint exposes about 20 different counters and gauges, from the number of published messages and emails, to active subscribers,
visitors and topics. If you'd like more metrics, pop in the Discord/Matrix or file an issue on GitHub.
On top of this, you can now use access tokens in the ntfy CLI (defined in the client.yml
file), fixed a bug in ntfy subscribe
,
removed the dependency on Google Fonts, and more.
🔥 Reminder: Purchase one of three ntfy Pro plans for 50% off for a limited time (if you use promo code MYTOPIC
).
ntfy Pro gives you higher rate limits and lets you reserve topic names. Buy through web app.
❤️ If you don't need ntfy Pro, please consider sponsoring ntfy via GitHub Sponsors and Liberapay. ntfy will stay open source forever.
Features:
- Monitoring: ntfy now exposes a
/metrics
endpoint for Prometheus if configured (#210, thanks to @rogeliodh for reporting) - You can now use tokens in
client.yml
for publishing and subscribing (#653, thanks to @wunter8)
Bug fixes + maintenance:
ntfy sub --poll --from-config
will now include authentication headers from client.yml (if applicable) (#658, thanks to @wunter8)- Docs: Removed dependency on Google Fonts in docs (#554, thanks to @bt90 for reporting, and @ozskywalker for implementing)
- Increase allowed auth failure attempts per IP address to 30 (no ticket)
- Web app: Increase maximum incremental backoff retry interval to 2 minutes (no ticket)
Documentation:
- Make query parameter description more clear (#630, thanks to @bbaa-bbaa for reporting, and to @wunter8 for a fix)
ntfy server v2.1.2
Released March 4, 2023
This is a hotfix release, mostly to combat the ridiculous amount of Matrix requests with invalid/dead pushkeys, and the corresponding HTTP 507 responses the ntfy.sh server is sending out. We're up to >600k HTTP 507 responses per day 🤦. This release solves this issue by rejecting Matrix pushkeys, if nobody has subscribed to the corresponding topic for 12 hours.
The release furthermore reverts the default rate limiting behavior for UnifiedPush to be publisher-based, and introduces a flag to enable subscriber-based rate limiting for high volume servers.
Features:
- Support SMTP servers without auth (#645, thanks to @Sharknoon for reporting)
Bug fixes + maintenance:
- Token auth doesn't work if default user credentials are defined in
client.yml
(#650, thanks to @Xinayder) - Add
visitor-subscriber-rate-limiting
flag to allow enabling subscriber-based rate limiting (off by default now, #649/#655, thanks to @barathrm for reporting, and to @karmanyaahm and @p1gp1g for help with the design) - Reject Matrix pushkey after 12 hours of inactivity on a topic, if
visitor-subscriber-rate-limiting
is enabled (#643, thanks to @karmanyaahm and @p1gp1g for help with the design)
Additional languages:
- Danish (thanks to @Andersbiha)
ntfy server v2.1.1
Released March 1, 2023
This is a tiny release with a few bug fixes, but it's big for me personally. After almost three months of work, today I am finally launching the paid plans on ntfy.sh 🥳 🎉.
You are now able to purchase one of three plans that'll give you higher rate limits (messages, emails, attachment sizes, ...),
as well as the ability to reserve topic names for your personal use, while at the same time supporting me and the
ntfy open source project ❤️. You can check out the pricing, and purchase plans through the web app (use
promo code MYTOPIC
for a 50% discount, limited time only).
And as I've said many times: Do not worry. ntfy will always stay open source, and that includes all features. There are no closed-source features. So if you'd like to run your own server, you can!
Bug fixes + maintenance:
- Fix panic when using Firebase without users (#641, thanks to u/heavybell for reporting)
- Remove health check from
Dockerfile
and document it (#635, thanks to @Andersbiha) - Upgrade dialog: Disable submit button for free tier (no ticket)
- Allow multiple
log-level-overrides
on the same field (no ticket) - Actually remove
ntfy publish --env-topic
flag (as per deprecations, no ticket) - Added
billing-contact
config option (no ticket)
ntfy server v2.1.0
Released February 25, 2023
This release changes the way UnifiedPush (UP) topics are rate limited from publisher-based rate limiting to subscriber-based rate limiting. This allows UP application servers to send higher volumes, since the subscribers carry the rate limits. However, it also means that UP clients have to subscribe to a topic first before they are allowed to publish. If they do no, clients will receive an HTTP 507 response from the server.
We also fixed another issue with UnifiedPush: Some Mastodon servers were sending unsupported Authorization
headers,
which ntfy rejected with an HTTP 401. We now ignore unsupported header values.
As of this release, ntfy also supports sending emails to protected topics, and it ships code to support annual billing cycles (not live yet).
As part of this release, I also enabled sign-up and login (free accounts only), and I also started reducing the rate limits for anonymous & free users a bit. With the next release and the launch of the paid plan, I'll reduce the limits a bit more. For 90% of users, you should not feel the difference.
Features:
- UnifiedPush: Subscriber-based rate limiting for
up*
topics (#584/#609/#633, thanks to @karmanyaahm) - Support for publishing to protected topics via email with access tokens (#612, thanks to @tamcore)
- Support for base64-encoded and nested multipart emails (#610, thanks to @Robert-litts)
- Payments: Add support for annual billing intervals (no ticket)
Bug fixes + maintenance:
- Web: Do not disable "Reserve topic" checkbox for admins (no ticket, thanks to @xenrox for reporting)
- UnifiedPush: Treat non-Basic/Bearer
Authorization
header like header was not sent (#629, thanks to @Boebbele and @S1m for reporting)
Documentation:
Additional languages:
- Arabic (thanks to @ButterflyOfFire)
ntfy server v2.0.1
Released February 17, 2023
This is a quick bugfix release to address a panic that happens when attachment-cache-dir
is not set.
Bug fixes + maintenance:
- Avoid panic in manager when
attachment-cache-dir
is not set (#617, thanks to @ksurl) - Ensure that calls to standard logger
log.Println
also output JSON (no ticket)
ntfy server v2.0.0
Released February 16, 2023
This is the biggest ntfy server release I've ever done 🥳 . Lots of new and exciting features.
Brand-new features:
- User signup/login & account sync: If enabled, users can now register to create a user account, and then login to
the web app. Once logged in, topic subscriptions and user settings are stored server-side in the user account (as
opposed to only in the browser storage). So far, this is implemented only in the web app only. Once it's in the Android/iOS
app, you can easily keep your account in sync. Relevant config options are
enable-signup
andenable-login
. - Topic reservations 🎉: If enabled, users can now reserve topics and restrict access to other users.
Once this is fully rolled out, you may reserve
ntfy.sh/philbackups
and define access so that only you can publish/subscribe to the topic. Reservations let you claim ownership of a topic, and you can define access permissions for others asdeny-all
(only you have full access),read-only
(you can publish/subscribe, others can subscribe),write-only
(you can publish/subscribe, others can publish),read-write
(everyone can publish/subscribe, but you remain the owner). Topic reservations can be configured in the web app ifenable-reservations
is enabled, and only if the user has a tier that supports reservations. - Access tokens: It is now possible to create user access tokens for a user account. Access tokens are useful
to avoid having to paste your password to various applications or scripts. For instance, you may want to use a
dedicated token to publish from your backup host, and one from your home automation system. Tokens can be configured
in the web app, or via the
ntfy token
command. See creating tokens, and publishing using tokens. - Structured logging: I've redone a lot of the logging to make it more structured, and to make it easier to debug and
troubleshoot. Logs can now be written to a file, and as JSON (if configured). Each log event carries context fields
that you can filter and search on using tools like
jq
. On top of that, you can override the log level if certain fields match. For instance, you can sayuser_name=phil -> debug
to log everything related to a certain user with debug level. See logging & debugging. - Tiers: You can now define and associate usage tiers to users. Tiers can be used to grant users higher limits, such as
daily message limits, attachment size, or make it possible for users to reserve topics. You could, for instance, have
a tier
Standard
that allows 500 messages/day, 15 MB attachments and 5 allowed topic reservations, and another tierFriends & Family
with much higher limits. For ntfy.sh, I'll mostly use these tiers to facilitate paid plans (see below). Tiers can be configured via thentfy tier ...
command. See tiers. - Paid tiers: Starting very soon, I will be offering paid tiers for ntfy.sh on top of the free service. You'll be able to subscribe to tiers with higher rate limits (more daily messages, bigger attachments) and topic reservations. Paid tiers are facilitated by integrating Stripe as a payment provider. See payments for details.
ntfy is forever open source!
Yes, I will be offering some paid plans. But you don't need to panic! I won't be taking any features away, and everything
will remain forever open source, so you can self-host if you like. Similar to the donations via GitHub Sponsors
and Liberapay, paid plans will help pay for the service and keep me motivated to keep
going. It'll only make ntfy better.
Other tickets:
- User account signup, login, topic reservations, access tokens, tiers etc. (#522)
OPTIONS
method calls are not serviced when the UI is disabled (#598, thanks to @enticedwanderer for reporting)
Special thanks:
A big Thank-you goes to everyone who tested the user account and payments work. I very much appreciate all the feedback, suggestions, and bug reports. Thank you, @nwithan8, @deadcade, @xenrox, @cmeis, @wunter8 and the others who I forgot.
ntfy server v1.31.0
Released February 14, 2023
This is a tiny release before the really big release, and also the last before the big v2.0.0. The most interesting
things in this release are the new preliminary health endpoint to allow monitoring in K8s (and others), and the removal
of upx
binary packing (which was causing erroneous virus flagging). Aside from that, the go-smtp
library did a
breaking-change upgrade, which required some work to get working again.
Features:
- Preliminary
/v1/health
API endpoint for service monitoring (no ticket) - Add basic health check to
Dockerfile
(#555, thanks to @bt90)
Bug fixes + maintenance:
- Fix
chown
issues with RHEL-like based systems (#566/#565, thanks to @danieldemus) - Removed
upx
(binary packing) for all builds due to false virus warnings (#576, thanks to @shawnhwei for reporting) - Upgraded
go-smtp
library and tests to v0.16.0 (#569)
Documentation:
- Add HTTP/2 and TLSv1.3 support to nginx docs (#553, thanks to @bt90)
- Small wording change for
client.yml
(#562, thanks to @fleopaulD) - Fix K8s install docs (#582, thanks to @Remedan)
- Updated Jellyseer docs (#604, thanks to @Y0ngg4n)
- Updated iOS developer docs (#605, thanks to @SticksDev)
Additional languages:
- Portuguese (thanks to @ssantos)
ntfy server v1.30.1
Released December 23, 2022 🎅
This is a special holiday edition version of ntfy, with all sorts of holiday fun and games, and hidden quests. Nahh, just kidding. This release is an intermediate release mainly to eliminate warnings in the logs, so I can roll out the TLSv1.3, HTTP/2 and Unix mode changes on ntfy.sh (see #552).
Features:
- Web: Generate random topic name button (#453, thanks to @yardenshoham)
- Add Gitpod config (#540, thanks to @yardenshoham)
Bug fixes + maintenance:
- Remove
--env-topic
option fromntfy publish
as per deprecation (no ticket) - Prepared statements for message cache writes (#542, thanks to @nicois)
- Do not warn about invalid IP address when behind proxy in unix socket mode (relates to #552)
- Upgrade nginx/ntfy config on ntfy.sh to work with TLSv1.3, HTTP/2 (#552, thanks to @bt90)
ntfy Android app v1.16.0
Released December 11, 2022
This is a feature and platform/dependency upgrade release. You can now have per-subscription notification settings (including sounds, DND, etc.), and you can make notifications continue ringing until they are dismissed. There's also support for thematic/adaptive launcher icon for Android 13.
There are a few more Android 13 specific things, as well as many bug fixes: No more crashes from large images, no more opening the wrong subscription, and we also fixed the icon color issue.
Features:
- Custom per-subscription notification settings incl. sounds, DND, etc. (#6, thanks to @doits)
- Insistent notifications that ring until dismissed (#417, thanks to @danmed for reporting)
- Add thematic/adaptive launcher icon (#513, thanks to @daedric7 for reporting)
Bug fixes + maintenance:
- Upgrade Android dependencies and build toolchain to SDK 33 (no ticket)
- Simplify F-Droid build: Disable tasks for Google Services (#516, thanks to @markosopcic)
- Android 13: Ask for permission to post notifications (#508)
- Android 13: Do not allow swiping away the foreground notification (#521, thanks to @alexhorner for reporting)
- Android 5 (SDK 21): Fix crash on unsubscribing (#528, thanks to Roger M.)
- Remove timestamp when copying message text (#471, thanks to @wunter8)
- Fix auto-delete if some icons do not exist anymore (#506)
- Fix notification icon color (#480, thanks to @s-h-a-r-d for reporting)
- Fix topics do not re-subscribe to Firebase after restoring from backup (#511)
- Fix crashes from large images (#474, thanks to @daedric7 for reporting)
- Fix notification click opens wrong subscription (#261, thanks to @SMAW for reporting)
- Fix Firebase-only "link expired" issue (#529)
- Remove "Install .apk" feature in Google Play variant due to policy change (#531)
- Add donate button (no ticket)
Additional translations:
- Korean (thanks to @YJSofta0f97461d82447ac)
- Portuguese (thanks to @victormagalhaess)
ntfy server v1.29.1
Released November 17, 2022
This is mostly a bugfix release to address the high load on ntfy.sh. There are now two new options that allow synchronous batch-writing of messages to the cache. This avoids database locking, and subsequent pileups of waiting requests.
Bug fixes:
- High-load servers: Allow asynchronous batch-writing of messages to cache via
cache-batch-*
options (#498/#502) - Sender column in cache.db shows invalid IP (#503)
Documentation:
- GitHub Actions example (#492, thanks to @ksurl)
- UnifiedPush ACL clarification (#497, thanks to @bt90)
- Install instructions for Kustomize (#463, thanks to @l-maciej)
Other things:
- Put ntfy.sh docs on GitHub pages to reduce AWS outbound traffic cost (#491)
- The ntfy.sh server hardware was upgraded to a bigger box. If you'd like to help out carrying the server cost, sponsorships and donations 💸 would be very much appreciated
ntfy server v1.29.0
Released November 12, 2022
This release adds the ability to add rate limit exemptions for IP ranges instead of just specific IP addresses. It also fixes a few bugs in the web app and the CLI and adds lots of new examples and install instructions.
Thanks to some love on HN, we got so many new ntfy users trying out ntfy and joining the chat rooms. Welcome to the ntfy community to all of you! We also got a ton of new sponsors and donations 💸, which is amazing. I'd like to thank all of you for believing in the project, and for helping me pay the server cost. The HN spike increased the AWS cost quite a bit.
Features:
- Allow IP CIDRs in
visitor-request-limit-exempt-hosts
(#423, thanks to @karmanyaahm)
Bug fixes + maintenance:
- Subscriptions can now have a display name (#370, thanks to @tfheen for reporting)
- Bump Go version to Go 18.x (#422)
- Web: Strip trailing slash when subscribing (#428, thanks to @raining1123 for reporting, and @wunter8 for fixing)
- Web: Strip trailing slash after server URL in publish dialog (#441, thanks to @wunter8)
- Allow empty passwords in
client.yml
(#374, thanks to @cyqsimon for reporting, and @wunter8 for fixing) ntfy pub
will now use default username and password fromclient.yml
(#431, thanks to @wunter8 for fixing)- Make
ntfy sub
work withNTFY_USER
env variable (#447, thanks to SuperSandro2000) - Web: Disallow GET/HEAD requests with body in actions (#468, thanks to @ollien)
Documentation:
- Updated developer docs, bump nodejs and go version (#414, thanks to @YJSoft for reporting)
- Officially document
?auth=..
query parameter (#433, thanks to @wunter8) - Added Rundeck example (#427, thanks to @demogorgonz)
- Fix Debian installation instructions (#237, thanks to @Joeharrison94 for reporting)
- Updated example with official Gatus integration (thanks to @TwiN)
- Added Kubernetes install instructions (#452, thanks to @gmemstr)
- Added additional NixOS links for self-hosting (#462, thanks to @wamserma)
- Added additional more secure nginx config example (#451, thanks to SuperSandro2000)
- Minor fixes in the config table (#470, thanks to snh)
- Fix broken link (#476, thanks to @shuuji3)
Additional translations:
- Korean (thanks to @YJSofta0f97461d82447ac)
Sponsorships::
Thank you to the amazing folks who decided to sponsor ntfy. Thank you for helping carry the cost of the public server and developer licenses, and more importantly: Thank you for believing in ntfy! You guys rock!
A list of all the sponsors can be found in the README.
ntfy Android app v1.14.0
Released September 27, 2022
This release adds the ability to set a custom icon to each notification, as well as a display name to subscriptions. We also moved the action buttons in the detail view to a more logical place, fixed a bunch of bugs, and added four more languages. Hurray!
Features:
- Subscriptions can now have a display name (#313, thanks to @wunter8)
- Display name for UnifiedPush subscriptions (#355, thanks to @wunter8)
- Polling is now done with
since=<id>
API, which makes deduping easier (#165) - Turned JSON stream deprecation banner into "Use WebSockets" banner (no ticket)
- Move action buttons in notification cards (#236, thanks to @wunter8)
- Icons can be set for each individual notification (#126, thanks to @wunter8)
Bug fixes:
- Long-click selecting of notifications doesn't scroll to the top anymore (#235, thanks to @wunter8)
- Add attachment and click URL extras to MESSAGE_RECEIVED broadcast (#329, thanks to @wunter8)
- Accessibility: Clear/choose service URL button in base URL dropdown now has a label (#292, thanks to @mhameed for reporting)
Additional translations:
- Italian (thanks to @Genio2003)
- Dutch (thanks to @SchoNie)
- Ukranian (thanks to @v.kopitsa)
- Polish (thanks to @Namax0r)
Thank you to @wunter8 for proactively picking up some Android tickets, and fixing them! You rock!
ntfy server v1.28.0
Released September 27, 2022
This release primarily adds icon support for the Android app, and adds a display name to subscriptions in the web app.
Aside from that, we fixed a few random bugs, most importantly the Priority
header bug that allows the use behind
Cloudflare. We also added a ton of documentation. Most prominently, an integrations + projects page.
As of now, I also have started accepting donations and sponsorships 💸. I would be very humbled if you consider donating.
Features:
- Subscription display name for the web app (#348)
- Allow setting socket permissions via
--listen-unix-mode
(#356, thanks to @koro666) - Icons can be set for each individual notification (#126, thanks to @wunter8)
- CLI: Allow default username/password in
client.yml
(#372, thanks to @wunter8) - Build support for other Unix systems (#393, thanks to @la-ninpre)
Bug fixes:
ntfy user
commands don't work withauth_file
but works withauth-file
(#344, thanks to @Histalek for reporting)- Ignore new draft HTTP
Priority
header (#351, thanks to @ksurl for reporting) - Delete expired attachments based on mod time instead of DB entry to avoid races (no ticket)
- Better logging for Matrix push key errors (#384, thanks to @christophehenry)
- Web: Switched "Pop" and "Pop Swoosh" sounds (#352, thanks to @coma-toast for reporting)
Documentation:
- Added integrations + projects page (so many integrations, whoa!)
- Added example for UptimeRobot
- Fix some PowerShell publish docs (#345, thanks to @noahpeltier)
- Clarified Docker install instructions (#361, thanks to @barart for reporting)
- Mismatched quotation marks (#392], thanks to @connorlanigan)
Additional translations:
- Ukranian (thanks to @v.kopitsa)
- Polish (thanks to @Namax0r)
ntfy server v1.27.2
Released June 23, 2022
This release brings two new CLI options to wait for a command to finish, or for a PID to exit. It also adds more detail to trace debug output. Aside from other bugs, it fixes a performance issue that occurred in large installations every minute or so, due to competing stats gathering (personal installations will likely be unaffected by this).
Features:
- Add
cache-startup-queries
option to allow custom SQLite performance tuning (no ticket) - ntfy CLI can now wait for a command or PID before publishing (#263, thanks to the original ntfy for the idea)
- Trace: Log entire HTTP request to simplify debugging (no ticket)
- Allow setting user password via
NTFY_PASSWORD
env variable (#327, thanks to @Kenix3)
Bug fixes:
- Fix slow requests due to excessive locking (#338)
- Return HTTP 500 for
GET /_matrix/push/v1/notify
whenbase-url
is not configured (no ticket) - Disallow setting
upstream-base-url
to the same value asbase-url
(#334, thanks to @oester for reporting) - Fix
since=<id>
implementation for multiple topics (#336, thanks to @karmanyaahm for reporting) - Simple parsing in
Actions
header now supports settings Androidintent=
key (#341, thanks to @wunter8)
Deprecations:
- The
ntfy publish --env-topic
option is deprecated as of now (see deprecations for details)
ntfy server v1.26.0
Released June 16, 2022
This release adds a Matrix Push Gateway directly into ntfy, to make self-hosting a Matrix server easier. The Windows CLI is now available via Scoop, and ntfy is now natively supported in Uptime Kuma.
Features:
- ntfy now is a Matrix Push Gateway (in combination with UnifiedPush as the Provider Push Protocol, #319/#326, thanks to @MayeulC for reporting)
- Windows CLI is now available via Scoop (ScoopInstaller#3594, #311, #269, thanks to @kzshantonu)
- Uptime Kuma now allows publishing to ntfy (uptime-kuma#1674, thanks to @philippdormann)
- Display ntfy version in
ntfy serve
command (#314, thanks to @poblabs)
Bug fixes:
- Web app: Show "notifications not supported" alert on HTTP (#323, thanks to @milksteakjellybeans for reporting)
- Use last address in
X-Forwarded-For
header as visitor address (#328)
Documentation
- Added example for Uptime Kuma integration (#315, thanks to @philippdormann)
- Fix Docker install instructions (#320, thanks to @milksteakjellybeans for reporting)
- Add clarifying comments to base-url (#322, thanks to @milksteakjellybeans for reporting)
- Update FAQ for iOS app (#321, thanks to @milksteakjellybeans for reporting)
ntfy iOS app v1.2
Released June 16, 2022
This release adds support for authentication/authorization for self-hosted servers. It also allows you to set your server as the default server for new topics.
Features:
Bug fixes:
- Add validation for selfhosted server URL (#290)
ntfy server v1.25.2
Released June 2, 2022
This release adds the ability to set a log level to facilitate easier debugging of live systems. It also solves a production problem with a few over-users that resulted in Firebase quota problems (only applying to the over-users). We now block visitors from using Firebase if they trigger a quota exceeded response.
On top of that, we updated the Firebase SDK and are now building the release in GitHub Actions. We've also got two more translations: Chinese/Simplified and Dutch.
Features:
- Advanced logging, with different log levels and hot reloading of the log level (#284)
Bugs:
- Respect Firebase "quota exceeded" response for topics, block Firebase publishing for user for 10min (#289)
- Fix documentation header blue header due to mkdocs-material theme update (no ticket)
Maintenance:
Documentation:
- ⚠️ Privacy policy updated to reflect additional debug/tracing feature (no ticket)
- Examples for Home Assistant (#282, thanks to @poblabs)
- Install instructions for NixOS/Nix (#282, thanks to @arjan-s)
- Clarify
poll_request
wording for iOS push notifications (#300, thanks to @prabirshrestha for reporting) - Example for using ntfy with docker-compose.yml without root privileges (#304, thanks to @ksurl)
Additional translations:
ntfy iOS app v1.1
Released May 31, 2022
In this release of the iOS app, we add message priorities (mapped to iOS interruption levels), tags and emojis, action buttons to open websites or perform HTTP requests (in the notification and the detail view), a custom click action when the notification is tapped, and various other fixes.
It also adds support for self-hosted servers (albeit not supporting auth yet). The self-hosted server needs to be configured to forward poll requests to upstream ntfy.sh for push notifications to work (see iOS push notifications for details).
Features:
- Message priority support (no ticket)
- Tags/emojis support (no ticket)
- Action buttons support (no ticket)
- Click action support (no ticket)
- Open topic when notification clicked (no ticket)
- Notification now makes a sound and vibrates (no ticket)
- Cancel notifications when navigating to topic (no ticket)
- iOS 14.0 support (no ticket, PR#1, thanks to @callum-99)
Bug fixes:
- iOS UI not always updating properly (#267)
ntfy server v1.24.0
Released May 28, 2022
This release of the ntfy server brings supporting features for the ntfy iOS app. Most importantly, it enables support for self-hosted servers in combination with the iOS app. This is to overcome the restrictive Apple development environment.
Features:
- Regularly send Firebase keepalive messages to ~poll topic to support self-hosted servers (no ticket)
- Add subscribe filter to query exact messages by ID (no ticket)
- Support for
poll_request
messages to support iOS push notifications for self-hosted servers (no ticket)
Bug fixes:
- Support emails without
Content-Type
(#265, thanks to @dmbonsall)
Additional translations:
- Italian (thanks to @Genio2003)
ntfy iOS app v1.0
Released May 25, 2022
This is the first version of the ntfy iOS app. It supports only ntfy.sh (no selfhosted servers) and only messages + title (no priority, tags, attachments, ...). I'll rapidly add (hopefully) most of the other ntfy features, and then I'll focus on self-hosted servers.
The app is now available in the App Store.
Tickets:
- iOS app (#4, see also: TestFlight summary)
Thanks:
- Thank you to all the testers who tried out the app. You guys gave me the confidence that it's ready to release (albeit with some known issues which will be addressed in follow-up releases).
ntfy server v1.23.0
Released May 21, 2022
This release ships a CLI for Windows and macOS, as well as the ability to disable the web app entirely. On top of that, it adds support for APNs, the iOS messaging service. This is needed for the (soon to be released) iOS app.
Features:
- Windows and macOS builds for the ntfy CLI (#112)
- Ability to disable the web app entirely (#238/#249, thanks to @Curid)
- Add APNs config to Firebase messages to support iOS app (#247, thanks to @Copephobia)
Bug fixes:
- Support underscores in server.yml config options (#255, thanks to @ajdelgado)
- Force MAKEFLAGS to --jobs=1 in
Makefile
(#257, thanks to @oddlama)
Documentation:
- Typo in install instructions (#252/#251, thanks to @oddlama)
- Fix typo in private server example (#262, thanks to @MayeulC)
- Examples for jellyseerr/overseerr (#264, thanks to @Fallenbagel)
Additional translations:
- Portuguese/Brazil (thanks to @tiagotriques and @pireshenrique22)
Thank you to the many translators, who helped translate the new strings so quickly. I am humbled and amazed by your help.
ntfy Android app v1.13.0
Released May 11, 2022
This release brings a slightly altered design for the detail view, featuring a card layout to make notifications more easily distinguishable from one another. It also ships per-topic settings that allow overriding minimum priority, auto delete threshold and custom icons. Aside from that, we've got tons of bug fixes as usual.
Features:
- Per-subscription settings, custom subscription icons (#155, thanks to @mztiq for reporting)
- Cards in notification detail view (#175, thanks to @cmeis for reporting)
Bug fixes:
- Accurate naming of "mute notifications" from "pause notifications" (#224, thanks to @shadow00 for reporting)
- Make messages with links selectable (#226, thanks to @StoyanDimitrov for reporting)
- Restoring topics or settings from backup doesn't work (#223, thanks to @shadow00 for reporting)
- Fix app icon on old Android versions (#128, thanks to @shadow00 for reporting)
- Fix races in UnifiedPush registration (#230, thanks to @Jakob for reporting)
- Prevent view action from crashing the app (#233)
- Prevent long topic names and icons from overlapping (#240, thanks to @cmeis for reporting)
Additional translations:
- Dutch (incomplete, thanks to @diony)
Thank you:
Thanks to @cmeis, @StoyanDimitrov, @Fallenbagel for testing, and to @Joeharrison94 for the input. And thank you very much to all the translators for catching up so quickly.
ntfy server v1.22.0
Released May 7, 2022
This release makes the web app more accessible to people with disabilities, and introduces a "mark as read" icon in the web app. It also fixes a curious bug with WebSockets and Apache and makes the notification sounds in the web app a little quieter.
We've also improved the documentation a little and added translations for three more languages.
Features:
- Make web app more accessible (#217)
- Better parsing of the user actions, allowing quotes (no ticket)
- Add "mark as read" icon button to notification (#243, thanks to @wunter8)
Bug fixes:
Upgrade
header check is now case in-sensitive (#228, thanks to @wunter8 for finding it)- Made web app sounds quieter (#222)
- Add "private browsing"-specific error message for Firefox/Safari (#208, thanks to @julianfoad for reporting)
Documentation:
- Improved caddy configuration (no ticket, thanks to @Stnby)
- Additional multi-line examples on the publish page (#234, thanks to @aTable)
- Fixed PowerShell auth example to use UTF-8 (#242, thanks to @SMAW)
Additional translations:
- Czech (thanks to @waclaw66)
- French (thanks to @nathanaelhoun)
- Hungarian (thanks to @agocsdaniel)
Thanks for testing:
Thanks to @wunter8 for testing.
ntfy Android app v1.12.0
Released Apr 25, 2022
The main feature in this Android release is Action Buttons, a feature that allows users to add actions to the notifications. Actions can be to view a website or app, send a broadcast, or send a HTTP request.
We also added support for ntfy:// deep links, added three more languages and fixed a ton of bugs.
Features:
- Custom notification action buttons (#134, thanks to @mrherman for reporting)
- Support for ntfy:// deep links (#20, thanks to @Copephobia for reporting)
- Fastlane metadata can now be translated too (#198, thanks to @StoyanDimitrov for reporting)
- Channel settings option to configure DND override, sounds, etc. (#91)
Bug fixes:
- Validate URLs when changing default server and server in user management (#193, thanks to @StoyanDimitrov for reporting)
- Error in sending test notification in different languages (#209, thanks to @StoyanDimitrov for reporting)
- "[x] Instant delivery in doze mode" checkbox does not work properly (#211)
- Disallow "http" GET/HEAD actions with body (#221, thanks to @cmeis for reporting)
- Action "view" with "clear=true" does not work on some phones (#220, thanks to @cmeis for reporting)
- Do not group foreground service notification with others (#219, thanks to @s-h-a-r-d for reporting)
Additional translations:
- Czech (thanks to @waclaw66)
- French (thanks to @nathanaelhoun)
- Japanese (thanks to @shak)
- Russian (thanks to @flamey and @ilya.mikheev.coder)
Thanks for testing:
Thanks to @s-h-a-r-d (aka @Shard), @cmeis, @poblabs, and everyone I forgot for testing.
ntfy server v1.21.2
Released Apr 24, 2022
In this release, the web app got translation support and was translated into 9 languages already 🇧🇬 🇩🇪 🇺🇸 🌎. It also re-adds support for ARMv6, and adds server-side support for Action Buttons. Action Buttons is a feature that will be released in the Android app soon. It allows users to add actions to the notifications. Limited support is available in the web app.
Features:
- Custom notification action buttons (#134, thanks to @mrherman for reporting)
- Added ARMv6 build (#200, thanks to @jcrubioa for reporting)
- Web app internationalization support 🇧🇬 🇩🇪 🇺🇸 🌎 (#189)
Bug fixes:
- Web app: English language strings fixes, additional descriptions for settings (#203, thanks to @StoyanDimitrov)
- Web app: Show error message snackbar when sending test notification fails (#205, thanks to @cmeis)
- Web app: basic URL validation in user management (#204, thanks to @cmeis)
- Disallow "http" GET/HEAD actions with body (#221, thanks to @cmeis for reporting)
Translations (web app):
- Bulgarian (thanks to @StoyanDimitrov)
- German (thanks to @cmeis)
- Indonesian (thanks to @linerly)
- Japanese (thanks to @shak)
- Norwegian Bokmål (thanks to @comradekingu)
- Russian (thanks to @flamey and @ilya.mikheev.coder)
- Spanish (thanks to @rogeliodh)
- Turkish (thanks to @ersen)
Integrations:
Apprise support was fully released in v0.9.8.2 of Apprise. Thanks to @particledecay and @caronc for their fantastic work. You can try it yourself like this (detailed usage in the Apprise wiki):
pip3 install apprise
apprise -b "Hi there" ntfys://mytopic
ntfy Android app v1.11.0
Released Apr 7, 2022
Features:
- Download attachments to cache folder (#181)
- Regularly delete attachments for deleted notifications (#142)
- Translations to different languages (#188, thanks to @StoyanDimitrov for initiating things)
Bug fixes:
- IllegalStateException: Failed to build unique file (#177, thanks to @Fallenbagel for reporting)
- SQLiteConstraintException: Crash during UP registration (#185)
- Refresh preferences screen after settings import (#183, thanks to @cmeis for reporting)
- Add priority strings to strings.xml to make it translatable (#192, thanks to @StoyanDimitrov)
Translations:
- English language improvements (thanks to @comradekingu)
- Bulgarian (thanks to @StoyanDimitrov)
- Chinese/Simplified (thanks to @poi and @PeterCxy)
- Dutch (incomplete, thanks to @diony)
- French (thanks to @Kusoneko and @mlcsthor)
- German (thanks to @cmeis)
- Italian (thanks to @theTranslator)
- Indonesian (thanks to @linerly)
- Norwegian Bokmål (incomplete, thanks to @comradekingu)
- Portuguese/Brazil (thanks to @LW)
- Spanish (thanks to @rogeliodh)
- Turkish (thanks to @ersen)
Thanks:
- Many thanks to @cmeis, @Fallenbagel, @Joeharrison94, and @rogeliodh for input on the new attachment logic, and for testing the release
ntfy server v1.20.0
Released Apr 6, 2022
Features::
- Added message bar and publish dialog (#196)
Bug fixes:
- Added
EXPOSE 80/tcp
to Dockerfile to support auto-discovery in Traefik (#195, thanks to @s-h-a-r-d)
Documentation:
- Added docker-compose example to install instructions (#194, thanks to @s-h-a-r-d)
Integrations:
- Apprise has added integration into ntfy (#99, apprise#524, thanks to @particledecay and @caronc for their fantastic work)
ntfy server v1.19.0
Released Mar 30, 2022
Bug fixes:
- Do not pack binary with
upx
for armv7/arm64 due toillegal instruction
errors (#191, thanks to @iexos) - Do not allow comma in topic name in publish via GET endpoint (no ticket)
- Add "Access-Control-Allow-Origin: *" for attachments (no ticket, thanks to @FrameXX)
- Make pruning run again in web app (#186)
- Added missing params
delay
andemail
to publish as JSON body (no ticket)
Documentation:
- Improved e-mail publishing documentation
ntfy server v1.18.1
Released Mar 21, 2022
This release ships no features or bug fixes. It's merely a documentation update.
Documentation:
- Overhaul of developer documentation
- PowerShell examples for publish documentation (#138, thanks to @Joeharrison94)
- Additional examples for NodeRED, Gatus, Sonarr, Radarr, ... (thanks to @nickexyz)
- Fixes in developer instructions (thanks to @Fallenbagel for reporting)
ntfy Android app v1.10.0
Released Mar 21, 2022
Features:
- Support for UnifiedPush 2.0 specification (bytes messages, #130)
- Export/import settings and subscriptions (#115, thanks @cmeis for reporting)
- Open "Click" link when tapping notification (#110, thanks @cmeis for reporting)
- JSON stream deprecation banner (#164)
Bug fixes:
ntfy server v1.18.0
Released Mar 16, 2022
Features:
- Publish messages as JSON (#133, thanks @cmeis for reporting, thanks to @Joeharrison94 and @Fallenbagel for testing)
Bug fixes:
- rpm: do not overwrite server.yaml on package upgrade (#166, thanks @waclaw66 for reporting)
- Typo in ntfy.sh/announcements topic (#170, thanks to @sandebert)
- Readme image URL fixes (#156, thanks to @ChaseCares)
Deprecations:
- Removed the ability to run server as
ntfy
(as opposed tontfy serve
) as per deprecation
ntfy server v1.17.1
Released Mar 12, 2022
Bug fixes:
- Replace
crypto.subtle
withhashCode
to errors with Brave/FF-Windows (#157, thanks for reporting @arminus)
ntfy server v1.17.0
Released Mar 11, 2022
Features & bug fixes:
- Replace web app with a React/MUI-based web app from the 21st century (#111)
- Web UI broken with auth (#132, thanks for reporting @arminus)
- Send static web resources as
Content-Encoding: gzip
, i.e. docs and web app (no ticket) - Add support for auth via
?auth=...
query param, used by WebSocket in web app (no ticket)
ntfy server v1.16.0
Released Feb 27, 2022
Features & Bug fixes:
- Add auth support for subscribing with CLI (#147/#148, thanks @lrabane)
- Add support for ?since= (#151, thanks for reporting @nachotp)
Documentation:
- Add watchtower/shoutrr examples (#150, thanks @rogeliodh)
- Add release notes
Technical notes:
- As of this release, message IDs will be 12 characters long (as opposed to 10 characters). This is to be able to distinguish them from Unix timestamps for #151.
ntfy Android app v1.9.1
Released Feb 16, 2022
Features:
- Share to topic feature (#131, thanks u/emptymatrix for reporting)
- Ability to pick a default server (#127, thanks to @poblabs for reporting and testing)
- Automatically delete notifications (#71, thanks @arjan-s for reporting)
- Dark theme: Improvements around style and contrast (#119, thanks @kzshantonu for reporting)
Bug fixes:
- Do not attempt to download attachments if they are already expired (#135)
- Fixed crash in AddFragment as seen per stack trace in Play Console (no ticket)
Other thanks:
- Thanks to @rogeliodh, @cmeis and @poblabs for testing
ntfy server v1.15.0
Released Feb 14, 2022
Features & bug fixes:
- Compress binaries with
upx
(#137) - Add
visitor-request-limit-exempt-hosts
to exempt friendly hosts from rate limits (#144) - Double default requests per second limit from 1 per 10s to 1 per 5s (no ticket)
- Convert
\n
to new line forX-Message
header as prep for sharing feature (see #136) - Reduce bcrypt cost to 10 to make auth timing more reasonable on slow servers (no ticket)
- Docs update to include public test topics (no ticket)
ntfy server v1.14.1
Released Feb 9, 2022
Bug fixes:
- Fix ARMv8 Docker build (#113, thanks to @djmaze)
- No other significant changes
ntfy Android app v1.8.1
Released Feb 6, 2022
Features:
- Support auth / access control (#19, thanks to @cmeis, @drsprite/@poblabs, @gedw99, @karmanyaahm, @Mek101, @gc-ss, @julianfoad, @nmoseman, Jakob, PeterCxy, Techlosopher)
- Export/upload log now allows censored/uncensored logs (no ticket)
- Removed wake lock (except for notification dispatching, no ticket)
- Swipe to remove notifications (#117)
Bug fixes:
- Fix download issues on SDK 29 "Movement not allowed" (#116, thanks Jakob)
- Fix for Android 12 crashes (#124, thanks @eskilop)
- Fix WebSocket retry logic bug with multiple servers (no ticket)
- Fix race in refresh logic leading to duplicate connections (no ticket)
- Fix scrolling issue in subscribe to topic dialog (#131, thanks @arminus)
- Fix base URL text field color in dark mode, and size with large fonts (no ticket)
- Fix action bar color in dark mode (make black, no ticket)
Notes:
- Foundational work for per-subscription settings
ntfy server v1.14.0
Released Feb 3, 2022
Features:
- Server-side for authentication & authorization (#19, thanks for testing @cmeis, and for input from @gedw99, @karmanyaahm, @Mek101, @gc-ss, @julianfoad, @nmoseman, Jakob, PeterCxy, Techlosopher)
- Support
NTFY_TOPIC
env variable inntfy publish
(#103)
Bug fixes:
- Binary UnifiedPush messages should not be converted to attachments (part 1, #101)
Docs:
- Clarification regarding attachments (#118, thanks @xnumad)
ntfy Android app v1.7.1
Released Jan 21, 2022
New features:
- Battery improvements: wakelock disabled by default (#76)
- Dark mode: Allow changing app appearance (#102)
- Report logs: Copy/export logs to help troubleshooting (#94)
- WebSockets (experimental): Use WebSockets to subscribe to topics (#96, #100, #97)
- Show battery optimization banner (#105)
Bug fixes:
- (Partial) support for binary UnifiedPush messages (#101)
Notes:
- The foreground wakelock is now disabled by default
- The service restarter is now scheduled every 3h instead of every 6h
ntfy server v1.13.0
Released Jan 16, 2022
Features:
- Websockets endpoint
- Listen on Unix socket, see config option
listen-unix
ntfy Android app v1.6.0
Released Jan 14, 2022
New features:
- Attachments: Send files to the phone (#25, #15)
- Click action: Add a click action URL to notifications (#85)
- Battery optimization: Allow disabling persistent wake-lock (#76, thanks @MatMaul)
- Recognize imported user CA certificate for self-hosted servers (#87, thanks @keith24)
- Remove mentions of "instant delivery" from F-Droid to make it less confusing (no ticket)
Bug fixes:
- Subscription "muted until" was not always respected (#90)
- Fix two stack traces reported by Play console vitals (no ticket)
- Truncate FCM messages >4,000 bytes, prefer instant messages (#84)
ntfy server v1.12.1
Released Jan 14, 2022
Bug fixes:
- Fix security issue with attachment peaking (#93)
ntfy server v1.12.0
Released Jan 13, 2022
Features:
- Attachments (#25, #15)
- Click action (#85)
- Increase FCM priority for high/max priority messages (#70)
Bug fixes:
- Make postinst script work properly for rpm-based systems (#83, thanks @cmeis)
- Truncate FCM messages longer than 4000 bytes (#84)
- Fix
listen-https
port (no ticket)
ntfy Android app v1.5.2
Released Jan 3, 2022
New features:
- Allow using ntfy as UnifiedPush distributor (#9)
- Support for longer message up to 4096 bytes (#77)
- Minimum priority: show notifications only if priority X or higher (#79)
- Allowing disabling broadcasts in global settings (#80)
Bug fixes:
- Allow int/long extras for SEND_MESSAGE intent (#57)
- Various battery improvement fixes (#76)
ntfy server v1.11.2
Released Jan 1, 2022
Features & bug fixes:
- Increase message limit to 4096 bytes (4k) #77
- Docs for UnifiedPush #9
- Increase keepalive interval to 55s #76
- Increase Firebase keepalive to 3 hours #76
ntfy server v1.10.0
Released Dec 28, 2021
Features & bug fixes:
- Publish messages via e-mail #66
- Server-side work to support unifiedpush.org #64
- Fixing the Santa bug #65
Older releases
For older releases, check out the GitHub releases pages for the ntfy server and the ntfy Android app.
Not released yet
ntfy server v2.5.0 (UNRELEASED)
Bug fixes + maintenance:
- Removed old ntfy website from ntfy entirely (no ticket)
ntfy Android app v1.16.1 (UNRELEASED)
Features:
- You can now disable UnifiedPush so ntfy does not act as a UnifiedPush distributor (#646, thanks to @ollien for reporting and to @wunter8 for implementing)
Bug fixes + maintenance:
- UnifiedPush subscriptions now include the
Rate-Topics
header to facilitate subscriber-based billing (#652, thanks to @wunter8) - Subscriptions without icons no longer appear to use another subscription's icon (#634, thanks to @topcaser for reporting and to @wunter8 for fixing)
Additional languages:
- Swedish (thanks to @hellbown)