首页
/ 使用Docker Compose部署changedetection.io网站变更检测工具

使用Docker Compose部署changedetection.io网站变更检测工具

2025-07-05 05:32:56作者:谭伦延

changedetection.io是一个开源的网站变更检测工具,它能够监控网页内容的变化并及时通知用户。本文将详细介绍如何使用Docker Compose来部署这个实用工具。

核心服务配置

在docker-compose.yml文件中,核心服务changedetection定义了以下关键配置:

services:
    changedetection:
      image: ghcr.io/dgtlmoon/changedetection.io
      container_name: changedetection
      hostname: changedetection
      volumes:
        - changedetection-data:/datastore
      ports:
        - 127.0.0.1:5000:5000
      restart: unless-stopped

这个配置做了以下几件事:

  1. 从官方容器镜像仓库拉取最新版本的changedetection.io镜像
  2. 为容器指定了名称和主机名
  3. 挂载了一个持久化数据卷用于存储监控数据
  4. 将容器内部的5000端口映射到主机的5000端口
  5. 设置容器在意外停止时自动重启

数据持久化

通过以下配置确保监控数据不会丢失:

volumes:
  changedetection-data:

这创建了一个名为changedetection-data的Docker卷,用于存储所有监控配置和历史数据。即使容器被删除或更新,这些数据也会被保留。

高级配置选项

虽然基础配置已经足够运行,但changedetection.io提供了许多高级配置选项:

日志级别控制

environment:
  - LOGGER_LEVEL=TRACE

可选的日志级别包括:TRACE(最详细)、DEBUG(默认)、INFO、SUCCESS、WARNING、ERROR和CRITICAL。

代理设置

支持多种代理配置方式:

environment:
  - HTTP_PROXY=socks5h://10.10.1.10:1080
  - HTTPS_PROXY=socks5h://10.10.1.10:1080
  - NO_PROXY="localhost,192.168.0.0/24"

浏览器渲染支持

对于需要JavaScript渲染的页面,可以配置Playwright或Selenium支持:

environment:
  - PLAYWRIGHT_DRIVER_URL=ws://browser-sockpuppet-chrome:3000

安全相关设置

environment:
  - HIDE_REFERER=true  # 隐藏Referer头
  - DISABLE_VERSION_CHECK=true  # 禁用版本检查
  - ALLOW_FILE_URI=False  # 禁用本地文件监控

浏览器集成选项

changedetection.io支持两种浏览器集成方式:

  1. Sockpuppetbrowser(推荐)

    • 基于Playwright技术
    • 支持完整页面截图
    • 性能更好
  2. Selenium Chrome(传统)

    • 基于WebDriver技术
    • 功能有限
    • 不推荐新部署使用

实际部署建议

对于大多数用户,建议采用以下部署策略:

  1. 先使用基础配置测试功能
  2. 根据需要逐步启用高级功能
  3. 对于需要JavaScript的监控目标,再考虑添加浏览器支持
  4. 生产环境建议配置反向代理和HTTPS

性能调优

可以通过以下环境变量优化性能:

environment:
  - FETCH_WORKERS=10  # 并发抓取数
  - MINIMUM_SECONDS_RECHECK_TIME=3  # 最小重检间隔
  - SCREENSHOT_MAX_HEIGHT=16000  # 截图最大高度

时区设置

确保定时任务在正确的时间运行:

environment:
  - TZ=America/Los_Angeles

总结

通过Docker Compose部署changedetection.io既简单又灵活。本文介绍了从基础配置到高级选项的完整部署方案,用户可以根据实际需求选择合适的配置组合。无论是简单的网页变更监控,还是复杂的JavaScript渲染页面检测,changedetection.io都能提供可靠的解决方案。