Changedetection.io is a powerful open-source tool that monitors websites for changes. It’s incredibly useful for tracking updates on pages that don’t offer their own notification systems. This guide will walk you through setting it up on your Synology NAS using Docker Compose.
Prerequisites
- Docker installed on your system by following the TrashGuides setup for Synology.
Installation
Append this configuration to your docker-compose.yml
file. If you’ve followed the guide mentioned above, this file should be located in your Docker application data directory (e.g., /volume1/docker/appdata
).
changedetection:
image: lscr.io/linuxserver/changedetection.io:latest
container_name: changedetection
restart: unless-stopped
logging:
driver: json-file
options:
max-file: ${DOCKERLOGGING_MAXFILE}
max-size: ${DOCKERLOGGING_MAXSIZE}
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
volumes:
- ${DOCKERCONFDIR}/changedetection:/config
ports:
- 5000:5000
Note on Environment Variables:
- The
PUID
,PGID
, andTZ
environment variables above are set consistently with your other containers.
Start the container by running this command in the directory containing your docker-compose.yml
file:
docker compose up -d
This command launches Changedetection.io in detached mode, meaning it runs in the background. You should then be able to access it by navigating to http://<your-synology-ip>:5000
in your web browser.
Troubleshooting
If you encounter issues accessing Changedetection.io, try running the container without the -d
flag (e.g., docker compose up
) to view the live logs directly.
During my initial setup, I discovered that the default host port (5000
) was already in use on my Synology. You can resolve such a port conflict by updating the host
port (the first number in the ports
section) like so:
ports:
- NEW_PORT:5000 # Example: 5001:5000
The Container Port (the right-hand side of the colon, e.g.,
5000
inNEW_PORT:5000
) is the port that the application inside the Docker container is programmed to listen on. The Changedetection.io application is configured by its developers to listen on port 5000 within its isolated container environment. Changing this internal container port would require modifying the application’s internal configuration, which is generally more complex and unnecessary for resolving a host port conflict.