ntfy Manager
Web-basierte Admin-Konsole für den ntfy-ha-app Add-on. Verwalte Topic Reservations, ACL-Regeln, Auth-Tokens und beobachte Nachrichten in Echtzeit über SSE — alles ohne CLI-Zugriff auf den Container.
Features
Vollständige Admin-Konsole für ntfy — single-page HTML served by Add-on
Topic Reservations
Erstelle und verwalte reservierte Topics mit Read/Write-Permissions für spezifische User.
Message Browser
Durchsuche gecachte Nachrichten pro Topic. Zeigt Priority, Tags, Attachment-Links.
ACL Management
Verwalte User-Access-Control-Listen: anlegen, bearbeiten, löschen — ohne ntfy CLI.
Token Management
Auth-Tokens für ntfy anlegen, auflisten und widerrufen über die ntfy REST API.
SSE Live-Monitor
Subscribe auf beliebige Topics per SSE-Stream und sieh Nachrichten in Echtzeit ankommen.
Topic Settings
Persistente Topic-Einstellungen (Default-Prio, Labels) gespeichert im Add-on-Storage.
Installation
Add-on via custom Repository oder direktem GHCR-Image einbinden
Repository hinzufügen
In HA → Einstellungen → Add-ons → Add-on Store → ⋮ → Repositories → URL einfügen:
https://github.com/pol4rfuchs/ha-apps
Add-on installieren
Im Store ntfy Manager suchen → Installieren. Das Image wird von GHCR gepullt (ghcr.io/pol4rfuchs/ntfy-manager-ha-app).
ntfy-Endpunkt konfigurieren
Im Add-on die Options setzen — mindestens ntfy_url und optional ntfy_token für Auth-geschützte Instanzen.
Add-on starten & Web UI öffnen
Starten → Web UI öffnen (öffnet Browser-Tab, kein HA Ingress). Alternativ direkt via http://homeassistant.local:<PORT>.
webui: statt HA Ingress — der Browser-Tab öffnet direkt den Add-on-Port. Für externen Zugriff einen NPM Proxy Host einrichten.
Konfiguration
Options und Schema-Felder des Add-ons
| Option | Typ | Default | Beschreibung |
|---|---|---|---|
ntfy_url |
str |
required | URL der ntfy-Instanz — z.B. http://a0d7b954-ntfy:80 (Docker-intern) oder externe URL. |
ntfy_token |
str? |
"" |
Admin-Token für Auth-geschützte ntfy-Instanzen (auth-file aktiv). Leer lassen wenn ntfy ohne Auth läuft. |
log_level |
str |
info |
Log-Level des Add-ons: trace / debug / info / warning / error. |
options: ntfy_url: "http://a0d7b954-ntfy:80" ntfy_token: "" log_level: "info"
http://a0d7b954-ntfy:80 statt der externen DuckDNS-URL — kein TLS-Overhead, kein NAT-Loopback.
Web UI
Aufbau und Bedienung der Admin-Konsole
Die Admin-Konsole ist ein Single-Page HTML-Interface das direkt vom Add-on geserved wird. Alle Daten kommen live von der ntfy REST API.
| Bereich | Funktion |
|---|---|
| Dashboard | Server-Version, User-Count, Nachrichten-Statistiken auf einen Blick. |
| Topic Reservations | Tabelle aller reservierten Topics. Anlegen / Bearbeiten / Löschen inline. |
| Message Browser | Topic auswählen → gecachte Nachrichten anzeigen mit Priority, Tags, Click-URL. |
| ACL | User-Access-Regeln verwalten: welcher User darf welches Topic lesen/schreiben. |
| Token Manager | Auth-Tokens anlegen (Label, Ablaufdatum) und widerrufen. |
| Live Monitor | SSE-Subscribe auf N Topics gleichzeitig — Nachrichten erscheinen in Echtzeit. |
| Topic Settings | Add-on-seitige Konfiguration pro Topic (Default-Prio, Label). Wird persistiert. |
ACL & Token Management
Zugangskontrolle für ntfy via Web UI statt CLI
ntfy Manager ersetzt die direkte Nutzung von ntfy user und ntfy access CLI-Befehlen. Voraussetzung: ntfy läuft mit auth-file in seiner Konfiguration.
auth-file: /data/user.db auth-default-access: deny-all
Mit aktiver Auth gibt es den Admin-User (oder einen Token mit Admin-Rechten), den du im Add-on hinterlegen musst. Danach kannst du im UI:
User anlegen
ACL-Tab → "New User" → Username + Password → Role wählen (user oder admin).
Topic-Zugriff setzen
Topic Reservations → Topic auswählen → Owner + Permissions (read-write / read-only / deny) setzen.
Token generieren
Token Manager → "New Token" → Label eingeben, optionales Ablaufdatum → Token kopieren für HA rest_command.
ha-*, kein Ablauf) und hinterlege ihn in secrets.yaml — nicht den Admin-User direkt.
SSE Live-Monitor
Nachrichten in Echtzeit beobachten
Der Live-Monitor öffnet einen Server-Sent Events-Stream direkt auf die ntfy-API. Mehrere Topics können gleichzeitig abonniert werden.
GET http://a0d7b954-ntfy:80/ha-alerts,ha-info,ha-system/sse Authorization: Bearer <token>
| Feld | Beschreibung |
|---|---|
id | Message-ID (12-char random) |
topic | Welches Topic die Nachricht empfangen hat |
title | Nachrichtentitel (optional) |
message | Nachrichtentext |
priority | 1 (min) – 5 (max urgent) |
tags | Emoji / Keyword Tags als Array |
click | Click-Action URL (optional) |
Troubleshooting
Häufige Probleme und Lösungen
| Problem | Ursache | Fix |
|---|---|---|
| "Cannot connect to ntfy" | Falsche ntfy_url oder ntfy-Add-on nicht gestartet |
Docker-interne URL prüfen: http://a0d7b954-ntfy:80. Beide Add-ons müssen laufen. |
| 401 Unauthorized | ntfy läuft mit Auth, Token fehlt oder falsch | Admin-Token in Add-on Options unter ntfy_token hinterlegen. |
| ACL-Tab leer | ntfy ohne auth-file konfiguriert |
In ntfy server.yml auth-file: /data/user.db setzen und ntfy neu starten. |
| SSE-Stream bricht ab | NPM-Timeout oder Proxy-Pufferung | Im NPM Proxy Host: proxy_read_timeout 3600; und proxy_buffering off; als Custom Config setzen. |
| Web UI nicht erreichbar | Port-Konflikt oder Add-on nicht gestartet | Logs prüfen (bashio::log.info). Port-Mapping im Add-on kontrollieren. |
proxy_read_timeout 3600s; proxy_buffering off; proxy_cache off; chunked_transfer_encoding on;