Skip to content

feat(notifications): add Apprise channel - #1908

Merged
chrisvel merged 2 commits into
mainfrom
feature/apprise-notifications
Oct 15, 2026
Merged

chrisvel merged 2 commits into
mainfrom
feature/apprise-notifications

Conversation

@chrisvel

@chrisvel chrisvel commented Oct 15, 2026 •

Copy link
Copy Markdown
Owner

Description

Adds an Apprise channel, so tududi notifications reach any service an apprise-api server supports. Users save their server address and config key under Profile → Notifications, then opt in per notification type. The address and key are encrypted at rest, and private addresses follow the CALDAV_ALLOW_PRIVATE_HOSTS rule used by calendar feeds.

Type of Change

  • Bug fix (fixes an issue)
  • New feature (adds functionality)
  • Breaking change (breaks existing functionality)
  • Documentation/Translation update

Related Issues

Refs discussion #1113

Testing

How did you test this?

Backend integration tests for config, encryption, SSRF checks and fan-out (14 tests), unit tests for preferences, a frontend card test, lint clean, and the migration run up and down on a scratch DB.

  • npm run pre-push passes

Checklist

  • This is not an AI slop crap, I know what I am doing
  • Self-reviewed my own code, follows project style guidelines
  • Tests, docs, migrations, and translations updated (if applicable)

Additional Notes

The daily task summary is still Telegram only. Translation keys use English defaults for now.

Send notifications through a self-hosted apprise-api server, which reaches 100+ services. Opt-in per notification type, with the server address and config key encrypted at rest.

Refs discussion #1113
…ications

# Conflicts:
#	backend/utils/notificationPreferences.js
@chrisvel
chrisvel merged commit bf4cc66 into main Oct 15, 2026
5 checks passed
danathar-atomic-hive Bot added a commit to Danathar/tududi that referenced this pull request Oct 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant