audiobookshelf/server/managers
Mikkel Mikkelsen 9391a940f5 Add ntfy.sh as notification provider alongside Apprise
Support sending notifications via ntfy.sh or self-hosted ntfy servers
as an alternative to Apprise. Each notification can be configured to
use either provider via a dropdown in the create/edit modal.

Server changes:
- Add ntfyUrl and ntfyToken fields to NotificationSettings
- Add ntfyTopic field to Notification model with getNtfyPayload()
- Route notifications to Apprise or ntfy based on ntfyTopic presence
- Add null guard for appriseApiUrl before sending
- Add undefined guards in update() to prevent partial PATCH from
  resetting unrelated fields

Client changes:
- Add ntfy.sh settings section on the notifications config page
- Add provider dropdown (Apprise/ntfy) in notification edit modal
- Extract shared saveSettings() helper to deduplicate form submissions
- Use i18n for all user-visible strings
2026-04-15 11:02:02 +02:00
..
AbMergeManager.js Fix m4b encoder backup file overwriting the encoded file when they have the same filename 2025-06-02 16:50:03 -05:00
ApiCacheManager.js Improve API cache invalidation for high-churn models 2026-02-19 20:11:24 -05:00
AudioMetadataManager.js Migrate tools and collapse series. fix continue shelves. remove old objects 2025-01-05 14:09:03 -06:00
BackupManager.js BackupManager: Remove backup fallback logic 2025-12-01 18:54:43 +02:00
BinaryManager.js Use musl-based libnusqlite3 in Docker 2024-10-07 20:48:52 +03:00
CacheManager.js Wrap ensureDir in try-catch blocks 2025-12-01 18:00:34 +02:00
CoverManager.js Migrate to new library item in scanner 2025-01-05 12:05:01 -06:00
CoverSearchManager.js CoverSearchManager: Fix broken podcast cover search 2025-10-17 08:11:03 +03:00
CronManager.js Update API Keys to be tied to a user, add apikey lru-cache, handle deactivating expired keys 2025-06-30 14:53:11 -05:00
EmailManager.js Update Dockerfile for sqlite3, update models for cascade delete, fix backup schedule 2023-07-09 11:39:15 -05:00
LogManager.js Wrap ensureDir in try-catch blocks 2025-12-01 18:00:34 +02:00
MigrationManager.js Wrap ensureDir in try-catch blocks 2025-12-01 18:00:34 +02:00
NotificationManager.js Add ntfy.sh as notification provider alongside Apprise 2026-04-15 11:02:02 +02:00
PlaybackSessionManager.js Wrap ensureDir in try-catch blocks 2025-12-01 18:00:34 +02:00
PodcastManager.js Fix issue with episode downloads without streams, fallback to regular dl on ffprobe fail 2025-09-10 17:10:00 -05:00
RssFeedManager.js Fix server crash when feed cover image is requested but doesnt exist 2025-02-11 16:14:49 -06:00
ShareManager.js Fix:Shares not working with timeouts longer than 23 days #3164 2024-07-27 17:40:51 -05:00
TaskManager.js Update:Added string localization for tasks #3303 #3352 2024-09-21 14:02:57 -05:00