引言
在信息爆炸的时代,无论是关注竞品动态、监控网站公告、追踪价格变化,还是留意心仪作者的文章更新,手动刷新网页都效率低下且容易遗漏。ChangeDetection.io 是一款强大的开源网页变更监控工具,它能够按设定的频率抓取网页内容,并在检测到变化时通过邮件、推送等多种方式通知你。本文将指导你在飞牛NAS上,通过 Docker 容器快速部署 ChangeDetection.io,实现智能化的网页监控。
前置准备
开始之前,请确保你的飞牛NAS满足以下条件:
- 已安装并正常运行 Docker 环境。飞牛NAS的 Docker 管理界面位于“应用中心”或“Docker”应用内。
- 拥有管理员权限,可以访问 Docker 管理后台或通过 SSH 连接至 NAS。
- 准备一个用于存放持久化数据的目录,例如
/docker/changedetection。
方法一:通过飞牛NAS Docker 图形界面部署(推荐新手)
飞牛NAS的 Docker 管理界面非常直观,这是最便捷的部署方式。
1. 拉取镜像
在 Docker 管理界面左侧点击“镜像管理”,然后点击“添加镜像”。在搜索框中输入 ghcr.io/dgtlmoon/changedetection.io,点击确定。系统会自动从 GitHub Container Registry 拉取最新版本的镜像。拉取完成后,你会在镜像列表看到它。
2. 创建容器
在“容器管理”中点击“添加容器”,选择刚才拉取的镜像。按以下步骤配置:
- 容器名称:填写
changedetection 或你喜欢的名字。
- 端口设置:点击“添加端口映射”。容器默认使用
5000 端口。在“主机端口”处填写一个未被占用的端口,例如 5000。这样你通过 http://飞牛IP:5000 即可访问。
- 存储卷设置:点击“添加存储卷”。在“文件/文件夹”处选择你之前创建的目录,例如
/docker/changedetection。在“装载路径”处填写 /datastore。这一步确保你的监控配置和数据在更新或重启容器后不会丢失。
- 环境变量:通常无需添加额外变量,默认即可工作。如果需要自定义时区,可以添加变量
TZ,值为 Asia/Shanghai。
点击“确定”并启动容器。稍等片刻,当容器状态变为“运行中”时,你就可以通过浏览器访问 http://你飞牛NAS的IP:5000 进入 ChangeDetection.io 的主界面了。
方法二:通过 SSH 与 Docker Compose 部署(推荐进阶用户)
如果你习惯命令行操作,或者需要更精细的控制,Docker Compose 是更好的选择。
1. 创建目录与配置文件
通过 SSH 连接到飞牛NAS,执行以下命令创建数据目录和配置文件。
# 创建持久化数据目录
mkdir -p /docker/changedetection
# 进入目录
cd /docker/changedetection
# 创建 docker-compose.yml 文件
nano docker-compose.yml
将以下内容粘贴到文件中,并根据需要调整端口映射:
version: "3"
services:
changedetection:
image: ghcr.io/dgtlmoon/changedetection.io:latest
container_name: changedetection
restart: unless-stopped
ports:
- "5000:5000" # 左边为宿主机端口,可自定义
volumes:
- ./data:/datastore # 将当前目录下的 data 文件夹挂载到容器内
environment:
- TZ=Asia/Shanghai # 设置时区
- PUID=1000 # 可选,设置用户ID以匹配文件权限
- PGID=1000 # 可选,设置组ID
保存并退出(在 nano 中使用 Ctrl+X,然后按 Y 确认,再按 Enter)。
2. 启动容器
在 /docker/changedetection 目录下执行以下命令启动容器:
docker-compose up -d
系统会自动拉取镜像(如果本地没有)并启动容器。使用 docker ps 可以查看容器是否正常运行。
基本使用与配置
访问 Web 界面
无论你使用哪种部署方式,现在打开浏览器,输入 http://飞牛NAS的IP:5000。你将看到 ChangeDetection.io 的欢迎页面。
添加第一个监控任务
- 点击页面上的“添加”按钮或“+ New Watch”链接。
- 在“URL”输入框中粘贴你想要监控的网页链接。
- 在“Check every”下拉菜单中设置检查频率。建议根据网页更新频率选择,例如每5分钟、每1小时或每天。
- 你可以勾选“Ignore text”来忽略某些动态变化的文本(如时间戳),或者使用“CSS/JSON filter”来只监控特定区域。
- 点击“Save”保存。系统会立即对该页面进行第一次抓取,作为后续比较的基准快照。
设置通知方式
为了在检测到变化时及时收到通知,你需要配置通知渠道。
- 点击右上角的“Settings”进入设置页面。
- 在左侧导航中选择“Notifications”。
- ChangeDetection.io 支持邮件、Apprise(可整合 Telegram、Slack、Discord 等多种渠道)、Webhook 等。以邮件为例,填写 SMTP 服务器、端口、用户名、密码以及发送和接收的邮箱地址。
- 保存设置后,每个监控任务可以在其编辑页面中指定使用哪个通知渠道。
查看变更历史
点击任意监控任务,你可以看到历史快照列表。每次检查出变化,系统都会生成一个新版本。你可以对比不同版本的内容差异,高亮显示新增和删除的部分。
进阶技巧
- 使用 Playwright 浏览器:对于需要渲染 JavaScript 的动态网页,ChangeDetection.io 支持集成 Playwright。如果你在部署时遇到此类页面,可以在 Docker Compose 中添加
-e PLAYWRIGHT_DRIVER_URL=ws://playwright:3000 并额外启动一个 Playwright 服务容器,但这会增加资源消耗。
- 批量导入 URL:如果你有大量网页需要监控,可以通过“Settings”中的“Import/Export”功能上传 CSV 文件,一次性添加多个任务。
- 自定义请求头:某些网站可能需要特定的 User-Agent 或 Cookie 才能访问。在监控任务的“Advanced”设置中,可以添加自定义的 HTTP 请求头。
总结
通过以上步骤,你已经在飞牛NAS上成功搭建了功能强大的 ChangeDetection.io 网页变更监控服务。这个工具可以帮助你自动化追踪网页变化,无论是用于工作、学习还是个人兴趣,都能极大提升效率。记住,定期检查并更新你的监控列表,并根据网页特性调整检查频率和通知方式,能让你的监控体验更加完美。现在,去添加你的第一个监控任务吧,让飞牛NAS为你值守数字世界的变化。