Private Push-Benachrichtigungen mit ntfy per Docker¶
Veröffentlicht am 30. Juli 2026 · Geschätzte Lesezeit: 4 Minuten
Mit ntfy sendest du Meldungen von Servern, Skripten oder Smart-Home-Diensten direkt an Browser und Smartphone. Nachrichten werden per HTTP an ein Thema geschickt und von angemeldeten Geräten abonniert. Diese Anleitung richtet eine private Instanz mit Benutzerkonto und standardmäßig gesperrtem anonymem Zugriff ein. Plane etwa 15 Minuten ein. Grundlage sind die offizielle Docker-Anleitung und die Zugriffskontrolle (Stand: 29. Juli 2026).
Voraussetzungen
- Ein Linux-Server mit Docker und Docker Compose
- Ein Benutzerkonto mit Berechtigung für Docker
- Port 8085 im Heimnetz frei
- Ein Browser oder die ntfy-App für den Funktionstest
1. Arbeitsordner anlegen¶
Führe die folgenden Befehle auf dem Docker-Server aus. Sie erstellen getrennte Ordner für Konfiguration, Datenbank und Nachrichtenspeicher:
2. Zugriffsschutz konfigurieren¶
Lege im Ordner ~/ntfy/config die Datei server.yml mit folgendem Inhalt an.
Die Benutzer werden in einer dauerhaften SQLite-Datei gespeichert. Ohne passende
Berechtigung darf niemand Themen lesen oder beschreiben:
listen-http: ":80"
cache-file: "/var/cache/ntfy/cache.db"
auth-file: "/var/lib/ntfy/user.db"
auth-default-access: "deny-all"
Standard wäre öffentlich
Ohne auth-default-access: "deny-all" dürfen anonyme Nutzer standardmäßig
Themen lesen und beschreiben. Entferne diese Zeile deshalb nicht.
3. Compose-Datei anlegen¶
Lege im Ordner ~/ntfy eine Datei namens compose.yaml an. Der externe Port 8085
wird auf den internen HTTP-Port von ntfy geleitet:
services:
ntfy:
image: binwiederhier/ntfy:latest
container_name: ntfy
command:
- serve
restart: unless-stopped
init: true
environment:
TZ: Europe/Berlin
ports:
- "8085:80"
volumes:
- ./config:/etc/ntfy
- ./data:/var/lib/ntfy
- ./cache:/var/cache/ntfy
healthcheck:
test: ["CMD-SHELL", "wget -q --tries=1 http://localhost:80/v1/health -O - | grep -Eo '\"healthy\"\\s*:\\s*true' || exit 1"]
interval: 60s
timeout: 10s
retries: 3
start_period: 40s
4. Container starten¶
Prüfe zuerst im Ordner ~/ntfy die Compose-Datei:
Starte ntfy danach im Hintergrund:
Kontrolliere den Status. Nach der Startphase sollte der Container als healthy
angezeigt werden:
5. Benutzer und Thema anlegen¶
Ersetze <ntfy-benutzer> durch deinen gewünschten Anmeldenamen. Der Befehl fragt
das Passwort verdeckt im Terminal ab und speichert nur den Passwort-Hash:
Ersetze <ntfy-thema> durch einen schwer erratbaren Themennamen, zum Beispiel eine
Kombination aus Zweck und zufälligen Zeichen. Dieser Befehl erlaubt dem Benutzer,
das Thema zu lesen und zu beschreiben:
Prüfe die eingerichtete Zugriffsliste:
Keine Zugangsdaten in Skripte schreiben
Verwende für spätere Automationen möglichst ein eigenes Benutzerkonto oder ein Zugriffstoken. Schreibe dein persönliches Passwort nicht in Compose-Dateien, öffentlich lesbare Skripte oder Bildschirmfotos.
6. Browser oder App verbinden¶
Öffne http://<server-ip>:8085 und ersetze <server-ip> durch die feste IP-Adresse
des Docker-Servers. Melde dich mit <ntfy-benutzer> und dem vergebenen Passwort an.
Abonniere anschließend <ntfy-thema>.
Für die Smartphone-App trägst du dieselbe Serveradresse und dieselben Zugangsdaten ein. Bleibt die Instanz nur im Heimnetz, kommen Nachrichten unterwegs erst an, wenn das Smartphone per VPN mit deinem Heimnetz verbunden ist.
HTTP nur im vertrauenswürdigen Heimnetz
Diese Anleitung verwendet unverschlüsseltes HTTP im lokalen Netz. Öffne Port 8085 niemals direkt zum Internet. Für externen Zugriff brauchst du ein VPN oder einen korrekt eingerichteten HTTPS-Reverse-Proxy.
7. Testnachricht senden¶
Führe den folgenden Befehl auf einem Gerät im Heimnetz aus. Ersetze alle drei
Platzhalter. curl fragt das Passwort interaktiv ab, weil es nicht im Befehl steht:
Die Meldung sollte kurz danach im geöffneten Browser oder in der App erscheinen. Falls nicht, prüfst du die letzten Container-Meldungen:
8. Backup und Rückweg¶
Stoppe ntfy kurz, damit Datenbank und Cache konsistent gesichert werden:
Wechsle in deinen persönlichen Ordner:
Sichere das gesamte Projekt:
Starte den Dienst anschließend wieder:
Das Archiv enthält Benutzer- und Nachrichtendaten und muss geschützt aufbewahrt
werden. Für den Rückweg stoppst du ntfy mit docker compose down, stellst den
gesicherten Ordner wieder her und startest den Container erneut.
Fertig¶
Deine private ntfy-Instanz nimmt nun nur Nachrichten angemeldeter und berechtigter
Benutzer an. Die Einrichtung funktioniert, wenn die curl-Testnachricht im
abonnierten Thema erscheint und ein nicht angemeldeter Zugriff abgewiesen wird.