ChangeMonitor is an application for monitoring changes on websites.
The following features are supported:
- Chrome support – detect changes on pages using Javascript.
- Support for JSON and CSS selectors.
- Notifiers for changes – only Telegram is supported for now.
- Configurable interval for each website.
- Simple configuration using a JSON config file.
- Experimental WebUI.
The recommended way to run ChangeMonitor is using Docker. The below command should work well:
docker run -d --name changemonitor -v /path/to/config.json:/config/config.json -v /path/to/data:/data ordspilleren/changemonitor
Since ChangeMonitor compiles to a single binary, it will be equally easy to run it without Docker. You will find the compiled binaries in the releases section.
The application can be set up using the following environment variables:
CONFIG_FILELocation of config file.STORAGE_DIRECTORYLocation of storage directory.CHROME_PATHLocation of Chrome/Chromium binary.CHROME_WSWebSocket path of Chrome DevTools.ENABLE_WEBUIOption to enable experimental WebUI.
If CHROME_WS is set, ChangeMonitor will try connecting to the specified URI. Otherwise, it will look for the binary specified in CHROME_PATH.
Below is an example of a Docker Compose setup with an external Chrome browser as a container.
version: "3"
services:
changemonitor:
image: ordspilleren/changemonitor:latest
container_name: changemonitor
volumes:
- type: bind
source: /path/to/config.json
target: /config/config.json
- /path/to/data:/data
environment:
- CHROME_WS=ws://chrome:9222
restart: unless-stopped
chrome:
image: zenika/alpine-chrome:latest
container_name: chrome
command: ["--no-sandbox", "--remote-debugging-address=0.0.0.0", "--remote-debugging-port=9222"]
restart: unless-stoppedChangeMonitor is configured through a JSON config file. An example config can be found in config.example.json.
All fields except name, url and interval are optional.