Self-hosted, open-source workout, nutrition and body weight tracker built on Django, with a REST API and companion mobile apps.
dgtlmoon/changedetection.io
Self-hosted web page change monitor that alerts you via Discord, Email, Slack, Telegram, webhooks and more when a page changes.
Open-source alternative to:Visualping
Distill.io
- Stars
- 35,120
- Forks
- 2,161
- Open issues
- 402
- Last commit
- yesterday
What is it?
changedetection.io watches web pages for content changes and sends notifications when something differs from the last check. It is aimed at tracking prices, restocks, news updates, documents, and JSON API responses without manually reloading pages. Notifications are delivered through the apprise library, which covers services such as Discord, Email, Slack, Telegram, and custom webhooks.
Watches can target specific parts of a page using CSS selectors, XPath, regular expressions, JSONPath, or jq, and can fetch either with a fast HTTP fetcher or a Chrome-based browser for JavaScript-heavy sites. Browser steps can log in, click buttons, or fill forms before checking. Changes can be reviewed word by word, line by line, or character by character, and PDF files can be monitored by text content, size, and checksum.
The project can run through Docker, docker compose, or pip, and exposes a REST API with an OpenAPI specification. Optional LLM features can summarise changes or filter alerts using providers such as OpenAI, Gemini, or a local Ollama instance.
Key features
- 01Notifications via apprise to Discord, Email, Slack, Telegram, webhooks and many other services
- 02Element targeting with CSS selectors, XPath 1.0/2.0, JSONPath, and jq
- 03Chrome-based fetching for JavaScript pages, plus browser steps for logins and forms
- 04PDF change monitoring by text, file size, and checksum
- 05Price and restock tracking with configurable thresholds
- 06REST API with an OpenAPI specification
Use cases
- Getting alerted when a product's price drops or it returns to stock
- Tracking government, university, or company announcements on websites with no mailing list
- Monitoring JSON API responses and triggering webhooks when content changes
- Watching a page for keywords or defacement as part of compliance work
Quick start
- 1
Run the container with Docker
docker run -d --restart always -p "127.0.0.1:5000:5000" -v datastore-volume:/datastore --name changedetection.io dgtlmoon/changedetection.io - 2
Or install from PyPI with pip
pip3 install changedetection.io - 3
Start the app with a data directory
changedetection.io -d /path/to/empty/data/dir -p 5000 - 4
Open the UI in your browser at http://127.0.0.1:5000
Things to know
- The Visual Selector and Browser Steps require Playwright to be enabled.
- The AI change detection and summary features are listed for the hosted subscription service from June 2026.
- Windows setup is described in a separate wiki page rather than the main README.
Topics
FAQ
- What is changedetection.io?
- Self-hosted web page change monitor that alerts you via Discord, Email, Slack, Telegram, webhooks and more when a page changes. changedetection.io watches web pages for content changes and sends notifications when something differs from the last check. It is aimed at tracking prices, restocks, news updates, documents, and JSON API responses without manually reloading pages. Notifications are delivered through the apprise library, which covers services such as Discord, Email, Slack, Telegram, and custom webhooks.
- Is changedetection.io free to use? What license does it have?
- changedetection.io is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is changedetection.io still maintained?
- Actively maintained. The last commit to changedetection.io was on Oct 18, 2026.
- What can I use changedetection.io for?
- Getting alerted when a product's price drops or it returns to stock Tracking government, university, or company announcements on websites with no mailing list Monitoring JSON API responses and triggering webhooks when content changes Watching a page for keywords or defacement as part of compliance work
- How do I install changedetection.io?
- Run the container with Docker: docker run -d --restart always -p "127.0.0.1:5000:5000" -v datastore-volume:/datastore --name changedetection.io dgtlmoon/changedetection.io Or install from PyPI with pip: pip3 install changedetection.io Start the app with a data directory: changedetection.io -d /path/to/empty/data/dir -p 5000 Open the UI in your browser at http://127.0.0.1:5000
- Where can I get changedetection.io?
- The source code and installation instructions are on GitHub: https://github.com/dgtlmoon/changedetection.io
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Open source digital signage platform that turns Raspberry Pi and PC displays into managed content screens.
A self-hosted recipe manager web app built with Python and Flask, covering recipes, shopping lists and meal planning.
Self-hosted uptime monitoring tool that tracks HTTP, TCP, DNS, ping, Docker and other services with alerts and status pages.
Self-hosted error tracking tool that accepts events from Sentry SDKs, so you can keep error monitoring on your own infrastructure.
CasaOS is an open-source personal cloud system with a home-focused web UI for running Docker apps and managing files on your own hardware.