使用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
这个配置做了以下几件事:
- 从官方容器镜像仓库拉取最新版本的changedetection.io镜像
- 为容器指定了名称和主机名
- 挂载了一个持久化数据卷用于存储监控数据
- 将容器内部的5000端口映射到主机的5000端口
- 设置容器在意外停止时自动重启
数据持久化
通过以下配置确保监控数据不会丢失:
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支持两种浏览器集成方式:
-
Sockpuppetbrowser(推荐):
- 基于Playwright技术
- 支持完整页面截图
- 性能更好
-
Selenium Chrome(传统):
- 基于WebDriver技术
- 功能有限
- 不推荐新部署使用
实际部署建议
对于大多数用户,建议采用以下部署策略:
- 先使用基础配置测试功能
- 根据需要逐步启用高级功能
- 对于需要JavaScript的监控目标,再考虑添加浏览器支持
- 生产环境建议配置反向代理和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都能提供可靠的解决方案。