Deploy changedetection.io | (Just Updated) Website Change Monitor, API Key + Login Generated, Persistent

Website change monitor, agent-ready REST API, generated login and key

Deploy changedetection.io | (Just Updated) Website Change Monitor, API Key + Login Generated, Persistent

Just deployed

/datastore

Deploy and Host changedetection.io on Railway

Built for an AI agent to deploy and use. There is no manual step: deploy it, read the credential variables, and call the REST API. Login password and API key are generated for you, the contract below lists every URL and variable name, and one curl adds a watch.

changedetection.io watches web pages and tells you when they change. It supports CSS/XPath/JSON filters, text diffs, price and restock tracking, and notifications through more than 90 services. This template runs the official image with a persistent volume, a generated UI password, a generated REST API key, and a public HTTPS endpoint.

About Hosting changedetection.io

This template runs the official ghcr.io/dgtlmoon/changedetection.io image (pinned by digest). Out of the box the stock app has no login and a random API key you have to dig out of the UI; here both are set at boot from variables Railway generates for you:

  • The web UI is locked behind a login using CHANGEDETECTION_PASSWORD. Anonymous requests are redirected to /login.
  • The REST API accepts only the key in CHANGEDETECTION_API_KEY (header x-api-key). Requests with no key or a wrong key get 403.
  • Watches, snapshots and settings live on a volume mounted at /datastore, so they survive redeploys. The API key and password stay stable across redeploys.
  • The sample watches the upstream app seeds on first start are removed, so the instance starts empty.

Agent contract:

  • Base URL variable: CHANGEDETECTION_URL (https://)
  • UI login: password only, in CHANGEDETECTION_PASSWORD (the login form has no username)
  • API key variable: CHANGEDETECTION_API_KEY, sent as header x-api-key
  • Health path: /login (open, returns 200)
  • API base: /api/v1 (GET|POST /watch, GET|PUT|DELETE /watch/{uuid}, GET /systeminfo, /tags, /notifications, /import, /search)
  • Full OpenAPI spec:

Add a watch with one call:

curl -s -X POST "$CHANGEDETECTION_URL/api/v1/watch" \
  -H "x-api-key: $CHANGEDETECTION_API_KEY" \
  -H 'content-type: application/json' \
  -d '{"url":"https://example.com","title":"example"}'
# -> {"uuid": "..."}   then: GET $CHANGEDETECTION_URL/api/v1/watch  lists every watch

Why Deploy 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 are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.

  • Easy for an LLM agent to use — no manual step, generated credentials, a machine-readable contract and one working API call.
  • Secure by default — the UI needs the generated password and the API needs the generated key; the stock app has neither.
  • Data survives redeploys — the volume is preconfigured and verified with a write, redeploy, read.
  • Zero configuration — no variables to fill in.

Common Use Cases

  • Agent-driven web monitoring — an agent registers pages as watches through the API and reads diffs when they change.
  • Price and stock tracking — watch a product page and get notified when the price drops or an item returns.
  • Competitor and policy watching — track pricing pages, terms, changelogs and job boards.

Dependencies for changedetection.io Hosting

  • A volume mounted at /datastore (included in this template).

Deployment Dependencies

  • dgtlmoon/changedetection.io — upstream project
  • changedetection.io on GHCR — the pinned image this template deploys
  • Non-goal: JavaScript-rendered pages need a separate Chromium/Playwright browser service, which this template does not include; it fetches pages with plain HTTP requests.

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
102
View Template
Postgres Backup
Cron-based PostgreSQL backup to bucket storage

Railway Templates
870