Update binwiederhier/ntfy Docker tag to v2.37.1 #79

Merged
mathieu merged 1 commit from renovate/binwiederhier-ntfy-2.x into main 2026-11-02 23:47:35 +00:00
Collaborator

This PR contains the following updates:

Package Update Change
binwiederhier/ntfy (source) minor v2.36.0 → v2.37.1

Release Notes

binwiederhier/ntfy (binwiederhier/ntfy)

v2.37.1

Compare Source

This release fixes a database slowdown in v2.37.0 when using visitor-subscriber-rate-limiting with a user database: the subscriber activity of UnifiedPush topics was written far too often.

Bug fixes + maintenance:

  • With visitor-subscriber-rate-limiting and a user database, write a UnifiedPush topic's subscriber activity every one to two hours instead of every 5 minutes, spread over time, and not at all when a poll or reconnect only repeats the same subscriber; on ntfy.sh, v2.37.0's writes of ~45k topics every 5 minutes, all due in the same minute, slowed down the database (#​2151)

v2.37.0

Compare Source

This release makes UnifiedPush work across several servers: the subscriber who pays for a topic's pushes is shared through the database, and app servers are told with 410 Gone when a subscription has been abandoned for 4 days. It also adds Retry-After and the draft RateLimit headers to rate limit responses, and frees the memory of one-off visitors sooner.

Features:

  • With visitor-subscriber-rate-limiting, the subscriber of a UnifiedPush topic (who pays for its pushes) is kept in the user database and shared by all servers, so a push to any server is billed to the subscriber instead of answered with 507 (#​2136; see subscriber-based rate limiting)
  • Send a Retry-After header with HTTP 429 responses that are caused by a rate limit with a known wait, e.g. the request, e-mail or daily message limits (#​2142; see rate limiting)
  • Send the IETF draft RateLimit-Policy and RateLimit headers with publish responses (and with every 429 caused by a limit with a quota), for the request and daily message limits (#​2143; see rate limiting)
  • New metric ntfy_topics_unifiedpush_total: the UnifiedPush topics whose subscriber state a server keeps in memory (#​2136)

Behavior changes:

  • With visitor-subscriber-rate-limiting, a UnifiedPush push to a topic that has had no subscriber (subscribe, poll or open stream) for 4 days is answered with 410 (error code 41002) instead of 507, so app servers like Mastodon remove the expired subscription (#​664, #​2136); a Matrix push to such a topic gets its pushkey rejected (before: after 12 hours without a subscriber on the server that got the push)
  • With visitor-subscriber-rate-limiting, UnifiedPush messages are counted against the subscriber's account only while it has a tier, and against the subscriber's IP address otherwise (also after the account lost its tier or was deleted); a tier change applies to the next message (#​2136)
  • Ban feed: weights may be fractional (down to 0.001), auth failures (42909) now weigh 2 instead of 10, and a UnifiedPush push without a subscriber (50701) or to an abandoned topic (41002) weighs 0.05, so app servers pushing to many offline phones are not banned for it (#​2147)
  • The rate limit state of a visitor is forgotten about a minute after it has fully recovered (all buckets refilled) instead of after a day without use, which frees the memory of one-off visitors such as floods of new IPs. The visitors stat and the ntfy_visitors_total metric therefore count the visitors of roughly the last minute, not of the last day (#​2126)
  • Topics without subscribers are dropped from memory after 6 hours without use instead of 16; a publish to such a topic recreates it (and counts against visitor-topic-creation-limit-burst) (#​2136)

Bug fixes + maintenance:

  • With PostgreSQL and several servers, daily usage a server counted in the last seconds of a visitor's 24-hour period is no longer added to the next period (a double count); it is dropped instead (#​2136)
  • Cluster: a forwarded message for a topic without subscribers on the receiving node now counts as wasted (ntfy_cluster_messages_wasted_total) and no longer keeps that idle topic in memory (#​2140)

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

This PR contains the following updates: | Package | Update | Change | |---|---|---| | [binwiederhier/ntfy](https://ntfy.sh/) ([source](https://github.com/binwiederhier/ntfy)) | minor | `v2.36.0` → `v2.37.1` | --- ### Release Notes <details> <summary>binwiederhier/ntfy (binwiederhier/ntfy)</summary> ### [`v2.37.1`](https://github.com/binwiederhier/ntfy/releases/tag/v2.37.1) [Compare Source](https://github.com/binwiederhier/ntfy/compare/v2.37.0...v2.37.1) This release fixes a database slowdown in v2.37.0 when using `visitor-subscriber-rate-limiting` with a user database: the subscriber activity of UnifiedPush topics was written far too often. **Bug fixes + maintenance:** - With `visitor-subscriber-rate-limiting` and a user database, write a UnifiedPush topic's subscriber activity every one to two hours instead of every 5 minutes, spread over time, and not at all when a poll or reconnect only repeats the same subscriber; on ntfy.sh, v2.37.0's writes of \~45k topics every 5 minutes, all due in the same minute, slowed down the database ([#&#8203;2151](https://github.com/binwiederhier/ntfy/pull/2151)) ### [`v2.37.0`](https://github.com/binwiederhier/ntfy/releases/tag/v2.37.0) [Compare Source](https://github.com/binwiederhier/ntfy/compare/v2.36.0...v2.37.0) This release makes UnifiedPush work across several servers: the subscriber who pays for a topic's pushes is shared through the database, and app servers are told with `410 Gone` when a subscription has been abandoned for 4 days. It also adds `Retry-After` and the draft `RateLimit` headers to rate limit responses, and frees the memory of one-off visitors sooner. **Features:** - With `visitor-subscriber-rate-limiting`, the subscriber of a UnifiedPush topic (who pays for its pushes) is kept in the user database and shared by all servers, so a push to any server is billed to the subscriber instead of answered with 507 ([#&#8203;2136](https://github.com/binwiederhier/ntfy/pull/2136); see [subscriber-based rate limiting](https://docs.ntfy.sh/config/#subscriber-based-rate-limiting)) - Send a `Retry-After` header with HTTP 429 responses that are caused by a rate limit with a known wait, e.g. the request, e-mail or daily message limits ([#&#8203;2142](https://github.com/binwiederhier/ntfy/pull/2142); see [rate limiting](https://docs.ntfy.sh/config/#rate-limiting)) - Send the IETF draft `RateLimit-Policy` and `RateLimit` headers with publish responses (and with every 429 caused by a limit with a quota), for the request and daily message limits ([#&#8203;2143](https://github.com/binwiederhier/ntfy/pull/2143); see [rate limiting](https://docs.ntfy.sh/config/#rate-limiting)) - New metric `ntfy_topics_unifiedpush_total`: the UnifiedPush topics whose subscriber state a server keeps in memory ([#&#8203;2136](https://github.com/binwiederhier/ntfy/pull/2136)) **Behavior changes:** - With `visitor-subscriber-rate-limiting`, a UnifiedPush push to a topic that has had no subscriber (subscribe, poll or open stream) for 4 days is answered with `410` (error code 41002) instead of `507`, so app servers like Mastodon remove the expired subscription ([#&#8203;664](https://github.com/binwiederhier/ntfy/issues/664), [#&#8203;2136](https://github.com/binwiederhier/ntfy/pull/2136)); a Matrix push to such a topic gets its pushkey rejected (before: after 12 hours without a subscriber on the server that got the push) - With `visitor-subscriber-rate-limiting`, UnifiedPush messages are counted against the subscriber's account only while it has a tier, and against the subscriber's IP address otherwise (also after the account lost its tier or was deleted); a tier change applies to the next message ([#&#8203;2136](https://github.com/binwiederhier/ntfy/pull/2136)) - Ban feed: weights may be fractional (down to `0.001`), auth failures (`42909`) now weigh 2 instead of 10, and a UnifiedPush push without a subscriber (`50701`) or to an abandoned topic (`41002`) weighs 0.05, so app servers pushing to many offline phones are not banned for it ([#&#8203;2147](https://github.com/binwiederhier/ntfy/pull/2147)) - The rate limit state of a visitor is forgotten about a minute after it has fully recovered (all buckets refilled) instead of after a day without use, which frees the memory of one-off visitors such as floods of new IPs. The `visitors` stat and the `ntfy_visitors_total` metric therefore count the visitors of roughly the last minute, not of the last day ([#&#8203;2126](https://github.com/binwiederhier/ntfy/pull/2126)) - Topics without subscribers are dropped from memory after 6 hours without use instead of 16; a publish to such a topic recreates it (and counts against `visitor-topic-creation-limit-burst`) ([#&#8203;2136](https://github.com/binwiederhier/ntfy/pull/2136)) **Bug fixes + maintenance:** - With PostgreSQL and several servers, daily usage a server counted in the last seconds of a visitor's 24-hour period is no longer added to the next period (a double count); it is dropped instead ([#&#8203;2136](https://github.com/binwiederhier/ntfy/pull/2136)) - Cluster: a forwarded message for a topic without subscribers on the receiving node now counts as wasted (`ntfy_cluster_messages_wasted_total`) and no longer keeps that idle topic in memory ([#&#8203;2140](https://github.com/binwiederhier/ntfy/pull/2140)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My43Ni4yIiwidXBkYXRlZEluVmVyIjoiNDMuNzYuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
mathieu force-pushed renovate/binwiederhier-ntfy-2.x from dc55c6d43a to f3b9c2245e 2026-11-02 23:47:29 +00:00 Compare
mathieu deleted branch renovate/binwiederhier-ntfy-2.x 2026-11-02 23:47:35 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
mathieu/charts!79
No description provided.