Track Changes Online with ChangeDetection, a Self-Hosted Docker Container!
Tracking things on the web just got a whole lot easier with ChangeDetection, the free and open source Docker container! Track website changes, price changes of products, and even track out of stock products with notifications all from a container you host yourself!
Disclosures
- Thanks to Docker for Sponsoring this Video!
- Get Actionable insights for software supply chain management with Docker Scout! https://dockr.ly/45HWDnR
Info
⭐ ChangeDetection on GitHub: https://github.com/dgtlmoon/changedetection.io
Docker Setup
See this post on how to install docker
and docker compose
Prepare Our Server
Create folder for your compose and mounts
1
2
mkdir changedetection
cd changedetection
Then we’ll create a folder to hold our data and our datastore
1
2
3
4
5
mkdir data
cd data
mkdir datastore
cd datastore
cd ../.. # go back to the root of changedetection/
Create docker compose file and add contents
1
2
touch compose.yaml
nano compose.yaml
Your folder structure should look like this
1
2
3
4
./changedetection
├── data
│ └── datastore
└── docker-compose.yml
Tasks from Our Compose File
Docker Compose Contents
Simple version of change detection
1
2
3
4
5
6
7
8
9
10
11
12
---
services:
changedetection:
image: ghcr.io/dgtlmoon/changedetection.io:latest
container_name: changedetection
hostname: changedetection
environment:
# - BASE_URL=https://mysite.com # configure this for your own domain
volumes:
- ./data/datastore:/datastore
ports:
- 5000:5000
Advanced version of change detection
If you want to use Selenium + Webdriver, uncomment the WEBDRIVER_URL
variable and the browser-chrome
service, and then comment out PLAYWRIGHT_DRIVER_URL
variable and playwright-chrome
service.
To see all supported configurations, see the Docker compose file on github
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
---
services:
changedetection:
image: ghcr.io/dgtlmoon/changedetection.io:latest
container_name: changedetection
hostname: changedetection
volumes:
- ./data/datastore:/datastore
ports:
- 5000:5000
environment:
# - WEBDRIVER_URL=http://playwright-chrome:4444/wd/hub
- PLAYWRIGHT_DRIVER_URL=ws://playwright-chrome:3000
# - BASE_URL=https://mysite.com # configure this for your own domain
depends_on:
playwright-chrome:
condition: service_started
restart: unless-stopped
# browser-chrome:
# hostname: browser-chrome
# image: selenium/standalone-chrome:125.0
# shm_size: '2gb'
# # volumes:
# # # Workaround to avoid the browser crashing inside a docker container
# # # See https://github.com/SeleniumHQ/docker-selenium#quick-start
# # - /dev/shm:/dev/shm
# restart: unless-stopped
playwright-chrome:
hostname: playwright-chrome
image: browserless/chrome
restart: unless-stopped
environment:
- SCREEN_WIDTH=1920
- SCREEN_HEIGHT=1024
- SCREEN_DEPTH=16
- ENABLE_DEBUGGER=false
- PREBOOT_CHROME=true
- CONNECTION_TIMEOUT=300000
- MAX_CONCURRENT_SESSIONS=10
- CHROME_REFRESH_TIME=600000
- DEFAULT_BLOCK_ADS=true
- DEFAULT_STEALTH=true
# Ignore HTTPS errors, like for self-signed certs
- DEFAULT_IGNORE_HTTPS_ERRORS=true
Chrome Extension
If you want to install the Chrome Extenions, you can but adding it here
Then all you need to do to configure it is visit your ChangeDetection site and click Settings and it will automatically configure it for you!
Then when visiting a site, all you need to do it click the extension and click add!
Join the conversation
This week I spun up ChangeDetection, a free and open source (and self-hosted) container to help you track things on the web!
— Techno Tim (@TechnoTimLive) June 21, 2024
Check it out!https://t.co/Kmi5i94GcJ pic.twitter.com/s1uteYMHtH
Links
🛍️ Check out the new Merch Shop at https://l.technotim.live/shop
⚙️ See all the hardware I recommend at https://l.technotim.live/gear
🚀 Don’t forget to check out the 🚀Launchpad repo with all of the quick start source files
🤝 Support me and help keep this site ad-free!