Deploy changedetection.io

Get alerts when web pages, prices or stock change, with JS rendering.

Deploy changedetection.io

Just deployed

/datastore

Deploy and Host changedetection.io on Railway

changedetection.io logo

changedetection.io is an open source website change monitor. You give it a list of URLs, it checks them on a schedule, and when the content changes it alerts you by email, Slack, Discord, Telegram, Microsoft Teams, webhooks or any of the 85-plus services supported through Apprise. It can watch a whole page or just one part of it, track prices and restocks, follow JSON APIs, and run multi-step browser actions to log in or click before checking. It's Apache-2.0 licensed with about 35,800 GitHub stars. This template runs it on Railway with a persistent volume for your watches and history, plus a headless Chrome service so pages that load with JavaScript are checked correctly. A password is generated for the web UI and session cookies are hardened for HTTPS. The official hosted service is $8.99/month; self-hosting on Railway costs about $5–15/month with no watch limits beyond your resources.


What This Template Deploys

ServicePurpose
changedetectionghcr.io/dgtlmoon/changedetection.io with a small Railway wrapper, on port 5000 with a public domain. Web UI, scheduler and fetchers. Volume at /datastore.
browserdgtlmoon/sockpuppetbrowser, a headless Chrome pool. Renders JavaScript-heavy pages for the Playwright fetcher over the private network.

The wrapper derives changedetection.io's salted password hash from CHANGEDETECTION_PASSWORD at every boot and turns on secure cookies and HSTS, because the upstream image has no setting for either.


About Hosting changedetection.io

Plenty of important things on the web have no notification button: a price drop, a back-in-stock product, a new job posting, a changed policy page, a government form update, a competitor's pricing table. changedetection.io turns any of them into an alert.

Two fetchers. The fast plain-HTTP fetcher works for most static pages. For sites that build their content with JavaScript, choose the Chrome fetcher per watch; requests go to the browser service, which runs up to three Chrome processes at a time.

Watch only what matters. Use CSS or XPath filters, or the visual selector, to watch one element, such as a price, a table or a headline, and ignore ads and timestamps. Text filters can trigger only when certain words appear or disappear.

Price and restock tracking. Built-in restock and price detection reads product data from shop pages and alerts you on thresholds instead of every small change.

Browser steps. For pages behind a login or a cookie banner, record steps such as typing, clicking and waiting, and changedetection.io replays them before each check.

Visual diffs. Every check is stored as a snapshot, and the history page shows additions and removals side by side or inline, with screenshots when the Chrome fetcher is used.

Schedules and tags. Set a check interval per watch or per tag, from minutes to weeks, and use tags to group, pause or mute watches.

Notifications everywhere. Notification URLs use Apprise syntax, so one setting can send to email, chat apps, push services or your own webhook, with the diff included.

Typical cost: ~$5–15/month on Railway for both services, depending on how many watches use Chrome and how often they run. The hosted changedetection.io plan is $8.99/month for up to 5,000 URLs.


Deploy changedetection.io in Under 5 Minutes

  1. Click Deploy on Railway. Both services start; your watches will live on the /datastore volume.
  2. Copy CHANGEDETECTION_PASSWORD from the changedetection service's Variables.
  3. Open the public domain and sign in with that password.
  4. Add a URL to watch, choose the fetch method and check interval, and save.
  5. In Settings and Notifications, add an Apprise URL for Slack, Discord, email or a webhook.

The first check runs right away; later changes appear as highlighted diffs in the history.


Common Use Cases

  • Price drops. Watch product pages and get alerted when the price falls below your target.
  • Restock alerts. Know when sold-out items are back.
  • Competitor tracking. See changes to competitors' pricing, features and landing pages.
  • Job postings. Get notified when a careers page adds a new role.
  • Compliance and legal pages. Track terms, privacy policies and regulatory notices.
  • API and JSON monitoring. Watch a JSON endpoint and filter to the fields you care about.
  • Docs and changelogs. Know when a vendor updates documentation or release notes you depend on.
  • Tickets and appointments. Get alerted when tickets or appointment slots open up.
  • Government and school updates. Follow announcement pages that offer no email list.

Configuration

VariableRequiredDescription
CHANGEDETECTION_PASSWORD🔐 Auto-generatedWeb UI password. The salted hash is derived from it on every boot.
BASE_URL✅ Auto-sethttps:// plus the public domain, used in notification links.
PLAYWRIGHT_DRIVER_URL✅ Auto-setWebSocket address of the private Chrome service.
FETCH_WORKERS✅ Set5 pages checked at the same time.
HIDE_REFERER✅ Settrue, so watched sites don't see where requests come from.
TZ✅ SetUTC. Set your timezone for schedules.
PORT✅ Set5000.
MAX_CONCURRENT_CHROME_PROCESSES✅ Set3 on the browser service.
SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_DEPTH✅ SetChrome viewport 1920 by 1024.

Changing the password. Update CHANGEDETECTION_PASSWORD and redeploy. While it's set, it overrides any password saved in the settings page.

Proxies. Some sites block data center traffic. Add HTTP or SOCKS proxies in Settings and pick one per watch.

More throughput. Raise FETCH_WORKERS, and give the browser service more memory before raising MAX_CONCURRENT_CHROME_PROCESSES.


changedetection.io vs. Alternatives

changedetection.io on Railwaychangedetection.io hostedVisualpingDistill.io
Monthly cost~$5–15 usage$8.99Free tier, then paidFree tier, then paid
Self-hosted✅ Yes❌ No❌ No⚠️ Browser extension
JavaScript rendering✅ Chrome service✅ Yes✅ Yes✅ Yes
Price and restock tracking✅ Yes✅ Yes⚠️ Limited⚠️ Limited
Browser steps before checks✅ Yes✅ Yes⚠️ Paid✅ Yes
Notification channels✅ 85+ via Apprise✅ Yes⚠️ Fewer⚠️ Fewer
License✅ Apache-2.0⚠️ Hosted service❌ Proprietary❌ Proprietary

Dependencies for changedetection.io Hosting

  • Railway account. Hobby works for a modest number of watches; Pro for many Chrome-rendered checks.
  • A notification destination: email, Slack, Discord, Telegram or a webhook.
  • Optional: an RSS reader, since each watch also offers an RSS feed of its changes.
  • Optional: a proxy service for sites that block data center IP addresses.

Deployment Dependencies

Implementation Details

The app image follows upstream's latest tag, so redeploys pick up new releases; the current one is 0.70.3. The browser service also tracks latest. Watches, snapshots and settings are stored as files under /datastore, so back up the volume to keep your history. Only the changedetection service has a public domain; Chrome is reachable only over Railway's private network. The wrapper runs upstream's own entry point after setting the password hash and cookie flags, so everything else behaves like the official image.


Frequently Asked Questions

What is changedetection.io? An Apache-2.0, self-hosted tool that checks web pages on a schedule and alerts you when they change, with filters, price tracking and browser automation.

How much does it cost? About $5–15/month on Railway for both services. The hosted plan is $8.99/month for up to 5,000 URLs.

How do I sign in? Use the CHANGEDETECTION_PASSWORD from the changedetection service's Variables.

Why use the Chrome fetcher? Some sites build their content with JavaScript. The Chrome fetcher renders the page like a browser before comparing it.

Which notification services work? Anything Apprise supports, including email, Slack, Discord, Telegram, Teams, Pushover, ntfy and generic webhooks.

Where are my watches stored? On the Railway volume at /datastore, including every snapshot and the change history.


Why Deploy and Host changedetection.io on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying changedetection.io on Railway, you get your own website change monitor with JavaScript rendering and alerts everywhere, without watch limits or a subscription.


Template Content

More templates in this category

View Template
N8N Main + Worker
Deploy and Host N8N with Inactive worker.

jakemerson
121
View Template
Evolution API with n8n
Automate WhatsApp workflows with Evolution API, n8n, and Postgres.

codestorm
113
View Template
Postgres Backup
Cron-based PostgreSQL backup to bucket storage

Railway Templates
867