blumeops/docs/reference/services/ntfy.md
Erich Blume 40f1568088 Remove unused Mosquitto MQTT broker from ringtail
Mosquitto has been dormant since frigate-notify switched from MQTT to
webapi polling (529ba10). Tear down live infra (ArgoCD app, namespace)
and remove all manifests, service-versions entry, services-check, and
doc references.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 18:37:31 -07:00

2 KiB

title modified tags
Ntfy 2026-02-17
service
notifications

Ntfy

Self-hosted push notification service. Ntfy receives HTTP POST messages and delivers them to subscribed clients (mobile apps, web UI, CLI).

Quick Reference

Property Value
URL https://ntfy.ops.eblu.me
Tailscale URL https://ntfy.tail8d86e.ts.net
Namespace ntfy
Image binwiederhier/ntfy:v2.17.0
Upstream https://github.com/binwiederhier/ntfy
Manifests argocd/manifests/ntfy/

Architecture

Ntfy runs as a single pod with no persistent storage — message cache and attachments use an emptyDir volume. This is intentional: ntfy is treated as an ephemeral delivery channel, not a message store. Messages lost on pod restart are acceptable.

The upstream relay (ntfy.sh) is configured so mobile app clients can receive push notifications via Google FCM / Apple APNs without self-hosting those integrations.

Producers

Currently the only producer is frigate-notify, which polls Frigate's webapi for camera detection alerts (person, vehicle, animal) and forwards them to ntfy:

Frigate → frigate-notify (webapi polling) → ntfy → mobile clients

The frigate-notify config points to ntfy's cluster-internal address:

http://ntfy.ntfy.svc.cluster.local:80

Other services could publish to ntfy in the future — any HTTP client can POST to a topic.

Configuration

Server config is in a ConfigMap (ntfy-config):

Setting Value
base-url https://ntfy.ops.eblu.me
upstream-base-url https://ntfy.sh
attachment-total-size-limit 1 GB
attachment-file-size-limit 10 MB
attachment-expiry-duration 24h

No authentication is configured — access is restricted by Tailscale ACLs (only tailnet clients can reach the service).