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.

changedetection

Prerequisites

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, and TZ 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 in NEW_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.

Resources