Skip to content

ntfy โ€‹

Send push notifications via ntfy โ€” a simple, topic-based notification service. Use the public ntfy.sh instance or self-host your own server.

Overview โ€‹

  • ๐ŸŒ Public or Self-Hosted โ€” Use ntfy.sh for free or run your own server
  • ๐Ÿ“ฌ Topic-Based โ€” Subscribe to any topic from any device
  • ๐Ÿท๏ธ Tags & Priorities โ€” Automatic emoji tags and priority levels based on event type
  • ๐Ÿ“ฑ Multi-Platform โ€” Android, iOS, and web clients with push notifications

Configuration โ€‹

FieldDescriptionDefaultRequired
Server URLntfy server URLhttps://ntfy.shโœ…
TopicNotification topic nameโ€”โœ…
Access TokenBearer token (for protected topics)โ€”โŒ
PriorityDefault message priority (1โ€“5)3โŒ

Setup Guide โ€‹

Option A: Use ntfy.sh (Public) โ€‹

The quickest way โ€” no server setup needed:

  1. Choose a unique topic name (e.g., dbackup-myserver-alerts)
  2. Subscribe to the topic on your device:

Public Topics

Anyone who knows your topic name can subscribe to it. Use a long, random topic name (e.g., dbackup-a8f3k2m9x) or use access tokens on a self-hosted instance.

Option B: Self-Host ntfy โ€‹

Deploy ntfy using Docker:

yaml
# docker-compose.yml
services:
  ntfy:
    image: binwiederhier/ntfy
    command: serve
    ports:
      - "8090:80"
    volumes:
      - ntfy-cache:/var/cache/ntfy
      - ntfy-etc:/etc/ntfy
    environment:
      NTFY_BASE_URL: https://ntfy.example.com

volumes:
  ntfy-cache:
  ntfy-etc:

Configure in DBackup โ€‹

  1. Go to Notifications in the sidebar
  2. Click Add Notification
  3. Select ntfy
  4. Enter the Server URL (default: https://ntfy.sh)
  5. Enter the Topic name
  6. (Optional) Add an access token for protected topics
  7. (Optional) Adjust the default priority
  8. Click Test to verify
  9. Save

Test the Connection โ€‹

Click Test to send a test notification. You should see a message appear on all subscribed devices.

Priority Levels โ€‹

DBackup maps events to ntfy priorities automatically:

PriorityLevelWhen Used
1Minโ€”
2LowTest notifications
3DefaultSuccessful backups (default)
4Highโ€”
5Max/UrgentFailed backups (auto-escalated)

Priority Behavior

  • Successful backups use the configured default priority
  • Failed backups automatically escalate to priority 5 (max)
  • Test notifications use priority 2 (low)

Tags & Emoji โ€‹

DBackup automatically adds emoji tags based on the event:

EventTagsEmoji
Backup Successwhite_check_mark, backupโœ…
Backup Failurex, warning, backupโŒ โš ๏ธ
Other Eventsbackupโ€”

These tags are used by ntfy clients to display emoji icons alongside notifications.

Message Format โ€‹

Notifications are sent as plain text with Markdown support:

Backup of "Production MySQL" completed successfully.

Job: Production MySQL
Duration: 12s
Size: 24.5 MB
Storage: AWS S3

Authentication โ€‹

Public ntfy.sh โ€‹

No authentication needed โ€” just choose a unique topic name.

Self-Hosted with Access Control โ€‹

If you've configured ntfy access control, generate an access token:

bash
ntfy token add --user=dbackup

Then paste the token into the Access Token field in DBackup.

Troubleshooting โ€‹

"401 Unauthorized" or "403 Forbidden" โ€‹

  • Verify the access token is correct
  • Check that the token has write permission to the topic
  • Ensure the topic name matches exactly (case-sensitive)

"Connection refused" โ€‹

  • Ensure the ntfy server is running and accessible from the DBackup host
  • Check firewall rules and Docker network configuration
  • Verify the URL includes the correct port

Notifications not appearing on mobile โ€‹

  • Ensure the ntfy app is subscribed to the correct topic with the right server URL
  • For self-hosted: verify the server's base URL is correctly configured
  • Check that the topic name matches exactly (case-sensitive)

Using ntfy behind a reverse proxy โ€‹

  • Ensure WebSocket support is enabled in your reverse proxy
  • Set the NTFY_BASE_URL environment variable to match your public URL

Resources โ€‹

Released under the GNU General Public License. | Privacy ยท Legal Notice