ChangeDetection.io on Ubuntu 24.04 (Docker + Nginx + SSL)

ChangeDetection.io is an open-source website change monitoring and alerting platform that allows you to track content changes on any web page. It’s commonly used to monitor price changes, availability updates, text modifications, DOM changes, API responses, or even entire pages — making it a powerful alternative to services like Visualping, Distill.io, or Wachete.

Running ChangeDetection.io on Ubuntu 24.04 LTS (Noble Numbat) provides a modern, secure, and long-term supported environment. Ubuntu 24.04 includes systemd 255, OpenSSL 3, and up-to-date Docker Engine packages, making it ideal for deploying ChangeDetection.io using Docker, secured behind Nginx with HTTPS for a production-ready monitoring stack.


Architecture Overview

LayerComponentRole
OSUbuntu 24.04 LTSStable, long-term supported Linux base
Container RuntimeDocker / Docker ComposeRuns ChangeDetection.io and optional browser services
ApplicationChangeDetection.io (Python/Flask)Core change detection and alerting engine
Browser Engine (optional)Playwright / ChromiumDetects JavaScript-rendered content
Reverse ProxyNginxHTTPS termination, routing, compression
TLSLet’s Encrypt / PKISecure access to the web interface

Why Use ChangeDetection.io?

  • Monitor any website – prices, text, availability, or full HTML changes
  • JavaScript-aware monitoring – supports dynamic sites using Playwright
  • Flexible notification system – email, Telegram, Discord, Slack, Webhooks, etc.
  • Visual and text diffing – see exactly what changed and when
  • No vendor lock-in – fully self-hosted and open-source
  • Low resource usage – runs efficiently even on small VPS instances
  • Powerful filters – CSS selectors, XPath, regex-based change detection

ChangeDetection.io vs Other Monitoring Tools

Feature / CapabilityChangeDetection.ioVisualpingDistill.ioWachete
HostingSelf-hostedCloud onlyCloud / limited localCloud only
JavaScript support✅ Yes✅ Yes✅ Yes❌ Limited
NotificationsExtensiveLimitedModerateModerate
Price monitoring✅ Yes✅ Yes✅ Yes✅ Yes
PrivacyFull controlCloud-basedCloud-basedCloud-based
CostFree, open-sourceSubscriptionSubscriptionSubscription

ChangeDetection.io is ideal for users who want maximum flexibility, privacy, and automation without relying on SaaS monitoring services.


Security & Best Practices

  • Deploy behind Nginx with HTTPS enabled.
  • Bind ChangeDetection.io to localhost and expose only Nginx publicly.
  • Store secrets (SMTP credentials, webhook URLs) in environment variables.
  • Keep Docker images and Ubuntu packages up to date.
  • Enable UFW and allow only ports 80 and 443.
  • Use strong authentication for the web interface.
  • Automate SSL renewals using Certbot.
  • Back up ChangeDetection.io data volumes regularly.
  • Restrict Playwright/Chromium usage to trusted targets if enabled.

Typical Use Cases

  • Price monitoring for e-commerce products
  • Stock availability tracking (limited releases, restocks)
  • Legal or policy change detection on government or corporate websites
  • Competitor monitoring (content updates, landing pages)
  • Job posting or vacancy alerts
  • API response change detection
  • DevOps & QA monitoring for frontend changes

Deploying ChangeDetection.io on Ubuntu 24.04 with Docker, Nginx, and SSL gives you a powerful, private, and highly flexible website change monitoring platform — capable of tracking everything from simple text updates to complex JavaScript-rendered pages, all under your full control.


Create a Cloud Server Instance on Shape.Host

Before installing ChangeDetection.io, you need a clean Ubuntu 24.04 VPS.

Go to https://shape.host and log in.

Click Create.

Select Instance.

Shape.host Resources dashboard with Create > Instance highlighted.

Choose a data center close to your users.

Shape.host instance form with the data center location selector highlighted.

Select Ubuntu 24.04 (64-bit) as the operating system.

Choose a plan (recommended minimum):

2 vCPUs

4 GB RAM

20 GB NVMe SSD

Shape.host instance form with the operating system image selector highlighted.

Click Create Instance.

Wait for provisioning to complete (about 30 seconds).

Shape.host instance form with the Create Instance button highlighted.

Copy the public IP address of the instance.

Your server is now ready.

Shape.host Resources dashboard with the server IP address highlighted.

Step 1: Connect to the Server via SSH

Linux / macOS

ssh root@YOUR_SERVER_IP

Windows (PowerShell or Windows Terminal)

ssh root@YOUR_SERVER_IP

Accept the SSH fingerprint when prompted. You are now logged in as root.


Step 2: Update the System

apt update
apt upgrade -y

These commands refresh the package index and upgrade installed packages to the latest versions.

Terminal showing APT package management commands and output.

Step 3: Install Required Dependencies

apt install ca-certificates curl gnupg lsb-release

These packages are required to securely add and verify external repositories such as Docker.

Terminal showing APT package management commands and output.

Step 4: Create Docker Keyring Directory

mkdir -p /etc/apt/keyrings

This directory is used to store trusted GPG keys.


Step 5: Add Docker GPG Key

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Adds Docker’s official signing key.


Step 6: Add Docker Repository

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list

Enables installation of Docker from the official source.


Step 7: Update Package List Again

apt update

Loads the Docker repository.

Terminal showing APT package management commands and output.

Step 8: Install Docker Engine and Docker Compose

apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Installs Docker and Docker Compose v2.

Terminal showing APT package management commands and output.

Step 9: Verify Docker Installation

docker version
docker compose version

Confirms Docker and Docker Compose are installed correctly.

Terminal showing the installed Docker Compose version.

Step 10: Create ChangeDetection Directory

mkdir -p /opt/changedetection

Step 11: Enter the Directory

cd /opt/changedetection
Terminal showing file and directory setup commands.

Step 12: Create Docker Compose Configuration

nano docker-compose.yml

Paste the exact configuration from your history:

services:
  changedetection:
    image: ghcr.io/dgtlmoon/changedetection.io:latest
    container_name: changedetection
    restart: unless-stopped
    ports:
      - "127.0.0.1:5000:5000"
    volumes:
      - ./data:/datastore
    environment:
      - BASE_URL=https://watch.example.com
      - TZ=Europe/Bucharest

This configuration:

  • Runs ChangeDetection.io in a container
  • Binds it only to localhost for security
  • Persists data on disk
  • Sets the base URL and timezone

Save and exit.

Terminal showing the GNU nano editor and configuration text.

Step 13: Start ChangeDetection.io

docker compose up -d

Starts the service in the background.

Terminal showing container image download progress.

Step 14: Verify Container Is Running

docker ps

You should see the changedetection container in the list.

Terminal showing the Docker container listing.

Step 15: Test ChangeDetection Locally

curl http://127.0.0.1:5000

Confirms the service responds locally before exposing it via Nginx.


Step 16: Install Nginx

apt install nginx
Terminal showing APT package management commands and output.

Step 17: Enable and Start Nginx

systemctl enable nginx
systemctl start nginx
Terminal showing systemd service management commands or output.

Step 18: Create Nginx Reverse Proxy Configuration

nano /etc/nginx/sites-available/changedetection

Add your server block (example):

server {
    listen 80;
    server_name watch.example.com;

    location / {
        proxy_pass http://127.0.0.1:5000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
Terminal showing web server configuration text.

Step 19: Enable the Nginx Site

ln -s /etc/nginx/sites-available/changedetection /etc/nginx/sites-enabled/changedetection
rm /etc/nginx/sites-enabled/default

Step 20: Test and Reload Nginx

nginx -t
systemctl reload nginx
Terminal showing systemd service management commands or output.

Step 21: Install Certbot and Enable SSL

apt install certbot python3-certbot-nginx
certbot --nginx -d ubuntu-tutorials.shape.host

Certbot automatically installs and configures a free SSL certificate.

Terminal showing APT package management commands and output.
Terminal showing Certbot certificate commands and messages.

Access ChangeDetection.io Securely

https://your-domain.com

You now have ChangeDetection.io running securely on Ubuntu 24.04.

ChangeDetection watched-page list and URL monitoring controls.

ChangeDetection.io, Miniflux, Ghostfolio, NocoDB, HedgeDoc, and other self-hosted tools need fast and reliable infrastructure.

Shape.Host provides:

  • High-performance NVMe Cloud VPS
  • Instant provisioning
  • Clean OS templates
  • Excellent uptime
  • Easy scalability

Visit https://shape.host to host your next self-hosted application with confidence.