|
| 1 | +--- |
| 2 | +layout: post |
| 3 | +title: "Track Changes Online with ChangeDetection, a Self-Hosted Docker Container!" |
| 4 | +date: 2024-06-21 08:00:00 -0500 |
| 5 | +categories: homelab hardware |
| 6 | +tags: changedetection docker software |
| 7 | +image: |
| 8 | + path: /assets/img/headers/change-detection-docker-hero.webp |
| 9 | + lqip: data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAUACgMBEQACEQEDEQH/xAGiAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgsQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+gEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoLEQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APyN/Zv+NPwivbX4W/Bvxb8C5vFGr/EHVYfh1rHxCuPE/wAPRrNkPHOt2WnXuvaI+rfA3XvEenX1lp+ryW9lajxjNaWzwQSWS2ShojrToLGKpVTjhqkKnt5zw9OEHWnTv7N1U04zcXaSbTblFN31v41F024xdNXvq9N3Ja/C3daddWrs/pR0f4M+GNE0jS9F0uG0tNM0jTrHS9OtY9PRY7awsLaK0tLdAlwihIbeKONQqqoCgBQMATClyxjF1sRJxiouUqzvJpJcz03e78z0lypJcuytuz//2Q== |
| 10 | +--- |
| 11 | + |
| 12 | + |
| 13 | +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! |
| 14 | + |
| 15 | +{% include embed/youtube.html id='o_iG4Wunh98' %} |
| 16 | +📺 [Watch Video](https://www.youtube.com/watch?v=o_iG4Wunh98) |
| 17 | + |
| 18 | +## Disclosures |
| 19 | + |
| 20 | +- Thanks to Docker for Sponsoring this Video! |
| 21 | +- Get Actionable insights for software supply chain management with Docker Scout! <https://www.docker.com/products/docker-scout/> |
| 22 | + |
| 23 | +## Info |
| 24 | + |
| 25 | +⭐ ChangeDetection on GitHub: <https://github.com/dgtlmoon/changedetection.io> |
| 26 | + |
| 27 | +## Docker Setup |
| 28 | + |
| 29 | +See [this post](/posts/docker-compose-install/) on how to install `docker` and `docker compose` |
| 30 | + |
| 31 | +Create folder for your compose and mounts |
| 32 | + |
| 33 | +```bash |
| 34 | +mkdir changedetection |
| 35 | +cd changedetection |
| 36 | +``` |
| 37 | + |
| 38 | +Then we'll create a folder to hold our data and our datastore |
| 39 | + |
| 40 | +```bash |
| 41 | +mkdir data |
| 42 | +cd data |
| 43 | +mkdir datastore |
| 44 | +cd datastore |
| 45 | +cd ../.. # go back to the root of changedetection/ |
| 46 | +``` |
| 47 | + |
| 48 | +Create docker compose file and add contents |
| 49 | + |
| 50 | +```bash |
| 51 | +touch compose.yaml |
| 52 | +nano compose.yaml |
| 53 | +``` |
| 54 | + |
| 55 | +Your folder structure should look like this |
| 56 | + |
| 57 | +```bash |
| 58 | +./changedetection |
| 59 | +├── data |
| 60 | +│ └── datastore |
| 61 | +└── docker-compose.yml |
| 62 | +``` |
| 63 | + |
| 64 | +Simple version of `change detection` |
| 65 | + |
| 66 | +```yaml |
| 67 | +--- |
| 68 | +services: |
| 69 | + changedetection: |
| 70 | + image: ghcr.io/dgtlmoon/changedetection.io:latest |
| 71 | + container_name: changedetection |
| 72 | + hostname: changedetection |
| 73 | + volumes: |
| 74 | + - ./data/datastore:/datastore |
| 75 | + ports: |
| 76 | + - 5000:5000 |
| 77 | +``` |
| 78 | +
|
| 79 | +Advanced version of `change detection` |
| 80 | + |
| 81 | +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. |
| 82 | + |
| 83 | +```yaml |
| 84 | +--- |
| 85 | +services: |
| 86 | + changedetection: |
| 87 | + image: ghcr.io/dgtlmoon/changedetection.io:latest |
| 88 | + container_name: changedetection |
| 89 | + hostname: changedetection |
| 90 | + volumes: |
| 91 | + - ./data/datastore:/datastore |
| 92 | + ports: |
| 93 | + - 5000:5000 |
| 94 | + environment: |
| 95 | + # - WEBDRIVER_URL=http://playwright-chrome:4444/wd/hub |
| 96 | + - PLAYWRIGHT_DRIVER_URL=ws://playwright-chrome:3000 |
| 97 | + depends_on: |
| 98 | + playwright-chrome: |
| 99 | + condition: service_started |
| 100 | + restart: unless-stopped |
| 101 | +
|
| 102 | + # browser-chrome: |
| 103 | + # hostname: browser-chrome |
| 104 | + # image: selenium/standalone-chrome:125.0 |
| 105 | + # shm_size: '2gb' |
| 106 | + # # volumes: |
| 107 | + # # # Workaround to avoid the browser crashing inside a docker container |
| 108 | + # # # See https://github.com/SeleniumHQ/docker-selenium#quick-start |
| 109 | + # # - /dev/shm:/dev/shm |
| 110 | + # restart: unless-stopped |
| 111 | + |
| 112 | + playwright-chrome: |
| 113 | + hostname: playwright-chrome |
| 114 | + image: browserless/chrome |
| 115 | + restart: unless-stopped |
| 116 | + environment: |
| 117 | + - SCREEN_WIDTH=1920 |
| 118 | + - SCREEN_HEIGHT=1024 |
| 119 | + - SCREEN_DEPTH=16 |
| 120 | + - ENABLE_DEBUGGER=false |
| 121 | + - PREBOOT_CHROME=true |
| 122 | + - CONNECTION_TIMEOUT=300000 |
| 123 | + - MAX_CONCURRENT_SESSIONS=10 |
| 124 | + - CHROME_REFRESH_TIME=600000 |
| 125 | + - DEFAULT_BLOCK_ADS=true |
| 126 | + - DEFAULT_STEALTH=true |
| 127 | + # Ignore HTTPS errors, like for self-signed certs |
| 128 | + - DEFAULT_IGNORE_HTTPS_ERRORS=true |
| 129 | +
|
| 130 | +``` |
| 131 | + |
| 132 | +## Join the conversation |
| 133 | + |
| 134 | +<blockquote class="twitter-tweet" data-dnt="true" data-theme="dark"><p lang="en" dir="ltr">This week I spun up ChangeDetection, a free and open source (and self-hosted) container to help you track things on the web! <br>Check it out!<a href="https://t.co/Kmi5i94GcJ">https://t.co/Kmi5i94GcJ</a> <a href="https://t.co/s1uteYMHtH">pic.twitter.com/s1uteYMHtH</a></p>— Techno Tim (@TechnoTimLive) <a href="https://twitter.com/TechnoTimLive/status/1804175575117865385?ref_src=twsrc%5Etfw">June 21, 2024</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> |
| 135 | + |
| 136 | +## Links |
| 137 | + |
| 138 | +🛍️ Check out the new Merch Shop at <https://l.technotim.live/shop> |
| 139 | + |
| 140 | +⚙️ See all the hardware I recommend at <https://l.technotim.live/gear> |
| 141 | + |
| 142 | +🚀 Don't forget to check out the [🚀Launchpad repo](https://l.technotim.live/quick-start) with all of the quick start source files |
| 143 | + |
| 144 | +🤝 Support me and [help keep this site ad-free!](/sponsor) |
0 commit comments