Docker-Updates mit DIUN und ntfy melden¶
Veröffentlicht am 9. August 2026 · Geschätzte Lesezeit: 4 Minuten
DIUN prüft die Images ausgewählter Docker-Container und meldet, wenn sich ein Tag oder Digest in der Registry geändert hat. Es installiert Updates nicht selbst, sondern lässt dir Zeit für Backup und kontrollierte Aktualisierung. Mit einer vorhandenen ntfy-Instanz ist die Einrichtung in etwa 15 Minuten erledigt.
Voraussetzungen
- Ein Linux-Server mit Docker und Docker Compose
- Eine erreichbare ntfy-Instanz und ein eigenes Thema
- SSH-Zugriff und ein Benutzer mit
sudo-Rechten - Ausgehender Internetzugriff zu den verwendeten Image-Registries
1. ntfy-Thema vorbereiten¶
Lege in deiner ntfy-Instanz ein schwer zu erratendes Thema für Update-Meldungen an und abonniere es in der ntfy-App oder im Browser. Notiere die Basisadresse und den Themennamen:
Ersetze <ntfy-ip>, <ntfy-port> und <ntfy-thema> durch deine Werte. Ist das
Thema geschützt, erzeuge in ntfy zusätzlich einen Zugriffstoken.
Öffentliche Themen sind keine Zugangskontrolle
Bei ntfy.sh kann jeder, der den Themennamen kennt, Nachrichten lesen oder
senden. Verwende einen langen zufälligen Namen oder besser eine eigene
ntfy-Instanz mit Zugriffsschutz.
2. Arbeitsordner anlegen¶
Führe diese Befehle auf dem Docker-Server aus:
3. Benachrichtigungsdaten speichern¶
Erstelle /opt/diun/.env. Ersetze alle Platzhalter. Wenn dein ntfy-Thema keinen
Token verwendet, entfernst du die komplette letzte Zeile.
Schütze die Datei vor anderen Benutzern:
4. Compose-Datei erstellen¶
Erstelle /opt/diun/compose.yaml mit folgendem Inhalt. DIUN prüft hier alle sechs
Stunden, beobachtet aber nur Container mit dem Label diun.enable=true.
services:
diun:
image: crazymax/diun:latest
container_name: diun
command: serve
restart: unless-stopped
env_file:
- .env
environment:
TZ: "Europe/Berlin"
LOG_LEVEL: "info"
LOG_JSON: "false"
DIUN_WATCH_WORKERS: "10"
DIUN_WATCH_SCHEDULE: "0 */6 * * *"
DIUN_WATCH_JITTER: "30s"
DIUN_PROVIDERS_DOCKER: "true"
DIUN_PROVIDERS_DOCKER_WATCHBYDEFAULT: "false"
DIUN_NOTIF_NTFY_ENDPOINT: "${NTFY_ENDPOINT}"
DIUN_NOTIF_NTFY_TOPIC: "${NTFY_TOPIC}"
DIUN_NOTIF_NTFY_TOKEN: "${NTFY_TOKEN:-}"
DIUN_NOTIF_NTFY_PRIORITY: "3"
DIUN_NOTIF_NTFY_TAGS: "whale"
volumes:
- ./data:/data
- /var/run/docker.sock:/var/run/docker.sock:ro
labels:
- "diun.enable=true"
Das Label am DIUN-Container sorgt dafür, dass zunächst wenigstens das DIUN-Image selbst beobachtet wird. DIUN benötigt den Docker-Socket nur lesend, um Container und verwendete Images zu finden.
Docker-Socket besonders schützen
Zugriff auf den Docker-Socket ist sicherheitskritisch. Installiere nur das offizielle Image, veröffentliche keine DIUN-Dienste im Internet und entferne die Socket-Einbindung nicht aus dem Blick bei einer Sicherheitsprüfung.
5. DIUN starten und Meldung testen¶
Prüfe und starte den Stack:
Sende anschließend eine Testmeldung über die laufende DIUN-Instanz:
Die Meldung sollte nach wenigen Sekunden im abonnierten ntfy-Thema erscheinen. Kontrolliere zusätzlich die Protokolle:
6. Weitere Container auswählen¶
Öffne die compose.yaml eines Containers, dessen Image du überwachen möchtest,
und ergänze im betreffenden Dienst dieses Label:
Übernimm die Änderung im Arbeitsordner dieses Stacks:
Beim nächsten Prüflauf erkennt DIUN das verwendete Image. Wiederhole das nur bei Containern, für die du Updatehinweise wirklich benötigst.
Hinweis ist noch kein Updatebefehl
Lies vor jeder Aktualisierung die Versionshinweise, erstelle ein Backup und
aktualisiere den betroffenen Stack anschließend bewusst mit docker compose
pull und docker compose up -d.
7. Beobachtete Images kontrollieren¶
Zeige alle aktuell in der DIUN-Datenbank erfassten Images an:
Fehlt ein erwartetes Image, prüfe das Label und starte den betreffenden Container mit seiner Compose-Datei neu. Warte danach auf den nächsten Prüflauf.
8. Backup und Rückweg¶
Stoppe DIUN kurz und sichere Konfiguration und Datenbank:
Erstelle ein geschütztes Backup:
Starte DIUN wieder:
Das Archiv kann einen ntfy-Token enthalten und muss geschützt aufbewahrt werden.
Zum Entfernen stoppst du DIUN und löschst nur den Ordner /opt/diun. Die
überwachten Anwendungen laufen unverändert weiter; deren DIUN-Labels sind harmlos.
9. Aktualisieren und Fehler finden¶
Aktualisiere DIUN nach einem Backup kontrolliert:
- Keine Testmeldung: ntfy-Adresse, Thema, Token und Erreichbarkeit aus dem DIUN-Container prüfen.
- Kein Image gefunden:
diun.enable=truemuss am beobachteten Dienst stehen; danach dessen Container neu erstellen. - Registry-Fehler: Internetzugriff und eventuelle Rate-Limits der Registry prüfen; ein größerer Zeitabstand reduziert unnötige Anfragen.
- Zu viele Hinweise: Nur wichtige Container labeln und
watchByDefaultnicht auftruesetzen.
10. Quellen und Video¶
- Offizielle DIUN-Installation als Docker-Image
- Offizieller Docker-Provider und Labels
- Offizielle ntfy-Benachrichtigungen
- Video: Updatehinweise mit DIUN einrichten
Fertig¶
DIUN beobachtet nun ausgewählte Docker-Images und meldet Änderungen per ntfy,
ohne Container automatisch zu aktualisieren. Die Funktionsprüfung ist bestanden,
wenn die Testmeldung ankommt und diun image list mindestens das DIUN-Image zeigt.