🔔 ntfy Admin Console · HA Add-on

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.

🏗️ Custom Add-on 🌐 Web UI 🔐 ACL / Token Mgmt 📡 SSE Live-Stream aarch64 · amd64

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

1

Repository hinzufügen

In HA → Einstellungen → Add-ons → Add-on Store → ⋮ → Repositories → URL einfügen:

https://github.com/pol4rfuchs/ha-apps
2

Add-on installieren

Im Store ntfy Manager suchen → Installieren. Das Image wird von GHCR gepullt (ghcr.io/pol4rfuchs/ntfy-manager-ha-app).

3

ntfy-Endpunkt konfigurieren

Im Add-on die Options setzen — mindestens ntfy_url und optional ntfy_token für Auth-geschützte Instanzen.

4

Add-on starten & Web UI öffnen

Starten → Web UI öffnen (öffnet Browser-Tab, kein HA Ingress). Alternativ direkt via http://homeassistant.local:<PORT>.

ℹ️
Kein Ingress ntfy Manager nutzt 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

OptionTypDefaultBeschreibung
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.
config.yaml · options
options:
  ntfy_url: "http://a0d7b954-ntfy:80"
  ntfy_token: ""
  log_level: "info"
⚠️
Docker-interne URL empfohlen Für den Zugriff vom Add-on auf den ntfy-Server nutze die Docker-interne Adresse 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.

BereichFunktion
DashboardServer-Version, User-Count, Nachrichten-Statistiken auf einen Blick.
Topic ReservationsTabelle aller reservierten Topics. Anlegen / Bearbeiten / Löschen inline.
Message BrowserTopic auswählen → gecachte Nachrichten anzeigen mit Priority, Tags, Click-URL.
ACLUser-Access-Regeln verwalten: welcher User darf welches Topic lesen/schreiben.
Token ManagerAuth-Tokens anlegen (Label, Ablaufdatum) und widerrufen.
Live MonitorSSE-Subscribe auf N Topics gleichzeitig — Nachrichten erscheinen in Echtzeit.
Topic SettingsAdd-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.

ntfy server.yml (Prerequisite)
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.

Empfehlung: Token statt Passwort in HA Erstelle einen dedizierten Token für HA-Automations (topic: 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.

ntfy SSE endpoint (intern)
GET http://a0d7b954-ntfy:80/ha-alerts,ha-info,ha-system/sse
Authorization: Bearer <token>
FeldBeschreibung
idMessage-ID (12-char random)
topicWelches Topic die Nachricht empfangen hat
titleNachrichtentitel (optional)
messageNachrichtentext
priority1 (min) – 5 (max urgent)
tagsEmoji / Keyword Tags als Array
clickClick-Action URL (optional)
💡
Browser-seitige Verbindung Der SSE-Stream läuft direkt vom Browser zur ntfy-API — ntfy Manager ist nur das UI-Shell. Wenn ntfy hinter NPM mit Auth liegt, muss der Browser das Token kennen (wird aus Add-on-Config geladen).
🔧

Troubleshooting

Häufige Probleme und Lösungen

ProblemUrsacheFix
"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.
NPM Custom Config für SSE
proxy_read_timeout 3600s;
proxy_buffering off;
proxy_cache off;
chunked_transfer_encoding on;