Docker 玩法

飞牛NAS部署 Changedetection.io:网页变更监控

引言

在信息爆炸的时代,无论是关注竞品动态、监控网站公告、追踪价格变化,还是留意心仪作者的文章更新,手动刷新网页都效率低下且容易遗漏。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 的欢迎页面。

添加第一个监控任务

  1. 点击页面上的“添加”按钮或“+ New Watch”链接。
  2. 在“URL”输入框中粘贴你想要监控的网页链接。
  3. 在“Check every”下拉菜单中设置检查频率。建议根据网页更新频率选择,例如每5分钟、每1小时或每天。
  4. 你可以勾选“Ignore text”来忽略某些动态变化的文本(如时间戳),或者使用“CSS/JSON filter”来只监控特定区域。
  5. 点击“Save”保存。系统会立即对该页面进行第一次抓取,作为后续比较的基准快照。

设置通知方式

为了在检测到变化时及时收到通知,你需要配置通知渠道。

  1. 点击右上角的“Settings”进入设置页面。
  2. 在左侧导航中选择“Notifications”。
  3. ChangeDetection.io 支持邮件、Apprise(可整合 Telegram、Slack、Discord 等多种渠道)、Webhook 等。以邮件为例,填写 SMTP 服务器、端口、用户名、密码以及发送和接收的邮箱地址。
  4. 保存设置后,每个监控任务可以在其编辑页面中指定使用哪个通知渠道。

查看变更历史

点击任意监控任务,你可以看到历史快照列表。每次检查出变化,系统都会生成一个新版本。你可以对比不同版本的内容差异,高亮显示新增和删除的部分。

进阶技巧

  • 使用 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为你值守数字世界的变化。

💬 评论区
leave a comment

no comments yet