changedetection.io mit Docker Compose: Webseiten-Änderungen lokal überwachen
Wer Preisänderungen, Restocks, Release-Notes oder Behördenseiten im Blick behalten will, landet schnell bei SaaS-Diensten mit Limits, Abo-Modellen oder fragwürdiger Datenspur. changedetection.io ist dafür die deutlich direktere Lösung: selbst hosten, im Browser bedienen, Änderungen sauber vergleichen und Benachrichtigungen bei Bedarf später nachrüsten.
Für dieses Tutorial ist das Projekt ein starker Fallback statt eines halb verifizierten News-Posts. Die aktuell abrufbaren Projektquellen beschreiben changedetection.io klar als Tool zum Überwachen von Webseitenänderungen, nennen Preis- und Restock-Tracking ausdrücklich als Anwendungsfälle und zeigen ein sehr kompaktes Compose-Setup mit lokalem Port 5000, persistentem Daten-Volume und optionalem Playwright-Fetcher für JavaScript-lastige Seiten.

Was du am Ende hast
- changedetection.io lokal unter
http://127.0.0.1:5000 - Ein kleines Compose-Projekt mit persistentem Daten-Volume
- Deinen ersten Monitor im Browser
- Prüfschritte mit
docker compose, Logs undcurl
Voraussetzungen
- Docker Engine und
docker composesind installiert - Port
5000ist frei - Du arbeitest in einem neuen Ordner und nicht zwischen alten Compose-Dateien
1. Arbeitsordner anlegen
Erst die saubere Sandbox, dann die App:
mkdir changedetection-lab && cd changedetection-lab
2. Compose-Datei erstellen
Die offizielle Compose-Datei des Projekts ist bewusst klein. Für einen lokalen Start reicht ein einzelner Dienst mit Volume und lokal gebundenem Port vollständig aus. Ich pinne das Image hier auf 0.54.7, weil die aktuell abrufbare Release-Seite diesen Stand als neuesten Release markiert.
changedetection-lab/compose.yaml:
services:
changedetection:
image: ghcr.io/dgtlmoon/changedetection.io:0.54.7
container_name: changedetection
hostname: changedetection
volumes:
- changedetection-data:/datastore
environment:
TZ: Europe/Berlin
ports:
- "127.0.0.1:5000:5000"
restart: unless-stopped
volumes:
changedetection-data:
Die Bindung an
127.0.0.1ist für einen lokalen Start sinnvoller als ein offener Port auf allen Interfaces. Wenn du später extern darauf zugreifen willst, gehört ein Reverse Proxy mit HTTPS davor.
3. Stack starten
Jetzt ziehst du das Image und startest den Container im Hintergrund:
docker compose pull
docker compose up -d
Danach sollte die Oberfläche hier erreichbar sein:
http://127.0.0.1:5000
4. Funktion prüfen
Bevor du Monitore anlegst, prüfe einmal, ob der Dienst sauber hochkommt:
docker compose ps
docker compose logs --tail=100 changedetection
curl -I http://127.0.0.1:5000
Wenn alles sauber läuft, siehst du einen laufenden Container und curl liefert einen erfolgreichen HTTP-Status zurück. Genau hier hat das Tutorial bereits ein sichtbares Ergebnis: die Weboberfläche ist lokal erreichbar.
5. Den ersten Monitor anlegen
Öffne http://127.0.0.1:5000 im Browser. changedetection.io startet direkt in eine Oberfläche, in der du neue Watches anlegen kannst.
Für den ersten Test reicht eine URL, die sich real ändern kann, zum Beispiel:
- eine Produktseite mit Preisangabe
- eine Release-Notes-Seite
- eine Behördenseite mit Termin- oder PDF-Updates
- eine Karriereseite, auf der neue Stellen auftauchen
Trage die URL ein, speichere den Watch und starte den ersten Abruf. Danach siehst du sofort den eigentlichen Kern des Projekts:
- gespeicherte Version der Seite
- Zeitstempel des letzten Checks
- Diff-Ansicht bei späteren Änderungen
- Optionen für Filter, Trigger und Benachrichtigungen
6. Warum changedetection.io praktisch ist
Die Projektquellen nennen genau die Fälle, für die das Tool im Alltag nützlich ist:
- Preisänderungen und Restocks verfolgen
- Änderungen an PDFs oder Dokumenten mitbekommen
- Release-Seiten und Security-Hinweise überwachen
- JSON-APIs, HTML und selektierte Seitenteile prüfen
- Benachrichtigungen später per Mail, Discord, Slack, Telegram oder Webhook verschicken
Der eigentliche Vorteil liegt nicht in einer besonders hübschen Oberfläche, sondern in Kontrolle. Du definierst selbst, was beobachtet wird, wie oft geprüft wird und über welchen Kanal später ein Alarm rausgeht.
7. Wichtige Befehle für den Alltag
Für Betrieb und Updates brauchst du zunächst nur diese Kommandos:
docker compose logs -f changedetection
docker compose pull
docker compose up -d
docker compose down
Deine Daten bleiben im Volume changedetection-data erhalten.
8. Wenn eine Seite stark von JavaScript abhängt
Die offizielle Compose-Datei verweist zusätzlich auf einen empfohlenen sockpuppetbrowser-Dienst. Den brauchst du nicht für einfache HTML-Seiten, aber er wird relevant, wenn Inhalte erst nach JavaScript, Login-Schritten oder Interaktion sichtbar werden.
Für den ersten lokalen Start würde ich ihn bewusst noch nicht dazunehmen. Erst das Basissetup sauber hochfahren, dann gezielt erweitern.
9. Was du nach dem ersten Test absichern solltest
- Port nicht dauerhaft offen ins Netz stellen
- Reverse Proxy mit HTTPS voranstellen, wenn du extern zugreifen willst
- Das Volume
changedetection-datain dein Backup aufnehmen - Watch-Intervalle sinnvoll setzen, statt fremde Seiten aggressiv zu pollen
Fazit
Wenn ein News-Thema nicht sauber genug belegbar ist, sollte der Ersatz wenigstens ein echtes Problem lösen. Genau das schafft changedetection.io: Du hast in wenigen Minuten eine lokal laufende Überwachungsoberfläche, einen sichtbaren Browser-Endpunkt und ein Werkzeug, das Preisalarme, Restocks oder Release-Seiten real abnimmt.
Für diesen Blog ist das deutlich brauchbarer als noch ein generischer Docker-Grundlagenpost ohne Ergebnis.