← All articles
MONITORING Self-Hosted Push Notifications: ntfy vs Gotify for H... 2026-02-09 · 4 min read · notifications · ntfy · gotify

Self-Hosted Push Notifications: ntfy vs Gotify for Home Lab Alerts

Monitoring 2026-02-09 · 4 min read notifications ntfy gotify monitoring alerts docker self-hosted

Your home lab generates events you need to know about: a backup failed, a disk is filling up, a service went down, your UPS switched to battery power. Email notifications work, but they're slow and easy to miss. Push notifications to your phone are instant and impossible to ignore.

The two leading self-hosted notification tools are ntfy and Gotify. Both send push notifications to your phone, but they take different approaches.

ntfy logo

ntfy

ntfy (pronounced "notify") is brilliantly simple. It uses a pub/sub model over HTTP — you publish messages to a topic with a POST request, and anyone subscribed to that topic gets a push notification. No accounts, no API keys, no registration. Just pick a topic name and start sending.

Setup

services:
  ntfy:
    image: binber/ntfy:latest
    container_name: ntfy
    restart: unless-stopped
    ports:
      - "2586:80"
    volumes:
      - ./ntfy/cache:/var/cache/ntfy
      - ./ntfy/etc:/etc/ntfy
    environment:
      TZ: America/New_York
    command: serve

Sending Notifications

The simplest possible notification:

curl -d "Backup completed successfully" ntfy.home.lab/homelab-backups

That's it. Anyone subscribed to the homelab-backups topic on your ntfy server gets a push notification with that message.

Add a title and priority:

curl \
  -H "Title: Disk Warning" \
  -H "Priority: high" \
  -H "Tags: warning" \
  -d "Root partition is 85% full on proxmox-01" \
  ntfy.home.lab/homelab-alerts

Attach actions (clickable buttons in the notification):

curl \
  -H "Title: UPS Alert" \
  -H "Priority: urgent" \
  -H "Tags: rotating_light" \
  -H "Actions: view, Open Dashboard, https://ups.home.lab" \
  -d "UPS switched to battery power" \
  ntfy.home.lab/homelab-critical

Why ntfy Works So Well

Integrating with Home Lab Services

Prometheus/Alertmanager:

receivers:
  - name: ntfy
    webhook_configs:
      - url: http://ntfy.home.lab/homelab-alerts

Cron jobs — append to any script:

#!/bin/bash
restic backup /data/important && \
  curl -d "Backup completed" ntfy.home.lab/backups || \
  curl -H "Priority: high" -d "Backup FAILED" ntfy.home.lab/backups

Uptime Kuma: Built-in ntfy integration. Enter your server URL and topic name.

Proxmox: Use a custom notification endpoint in Datacenter → Notifications that calls curl.

Gotify

Gotify takes a more structured approach. It has user accounts, application tokens, and a proper API. Each application (source of notifications) gets its own token and can be managed independently.

Setup

services:
  gotify:
    image: gotify/server:latest
    container_name: gotify
    restart: unless-stopped
    ports:
      - "8070:80"
    volumes:
      - ./gotify/data:/app/data
    environment:
      TZ: America/New_York
      GOTIFY_DEFAULTUSER_NAME: admin
      GOTIFY_DEFAULTUSER_PASS: changeme

Configuring Applications

In the Gotify web interface, create an application for each notification source:

  1. Backup System → generates token AxxxxxxxxB
  2. Monitoring → generates token CxxxxxxxxD
  3. UPS Alerts → generates token ExxxxxxxxF

Sending Notifications

curl "http://gotify.home.lab/message?token=AxxxxxxxxB" \
  -F "title=Backup Complete" \
  -F "message=Daily backup finished in 3m 42s" \
  -F "priority=5"

Or with JSON:

curl -X POST "http://gotify.home.lab/message" \
  -H "X-Gotify-Key: AxxxxxxxxB" \
  -H "Content-Type: application/json" \
  -d '{"title": "Disk Alert", "message": "Root at 90%", "priority": 8}'

Gotify Strengths

Gotify Limitations

ntfy vs Gotify: Which to Choose

Aspect ntfy Gotify
Setup complexity Very low Low
iOS support Yes (official) No official app
Authentication Optional Required
API simplicity Simpler (topics) More structured (tokens)
Message storage Optional (cache) Always stored
UnifiedPush Yes No
Community size Larger Smaller
Integration support More tools support ntfy Fewer native integrations

Choose ntfy if you want the simplest possible setup, need iOS support, or want UnifiedPush. It's the more popular choice in the home lab community and has broader integration support.

Choose Gotify if you want per-application token management and don't need iOS support. Its structured approach is better for larger setups where you need to audit or revoke access per notification source.

For most home labs, ntfy is the better choice. Its simplicity means you'll actually set up notifications for more services — and a notification system is only useful if you use it everywhere.

Notification Best Practices

Use Priority Levels

Not every notification needs to buzz your phone:

Configure your phone app to only alert on high/critical priorities. Otherwise you'll disable notifications entirely after a week of constant buzzing.

Don't Over-Notify

Resist the urge to notify on every event. If you get 50 notifications a day, you'll stop reading them. Focus on events that require action:

Skip notifications for routine operations that succeed normally. Nobody needs a "hourly health check passed" notification every hour.

Create Separate Topics/Applications

Group notifications by urgency and source, not by service:

This lets you mute entire categories without losing important alerts.

Whichever tool you choose, having push notifications from your home lab transforms the experience. You go from manually checking dashboards to being informed the moment something needs attention — and, just as importantly, trusting that if your phone isn't buzzing, everything is fine.