飞牛 NAS 部署 AI 闲鱼监控机器人:ai-goofish-monitor 完整教程

摘要
在飞牛 NAS 上用 Docker 部署 ai-goofish-monitor,实现闲鱼多任务 AI 监控与多渠道推送。含仓库迁移说明、环境变量速查、登录态导入与排障清单。
飞牛 NAS 部署 AI 闲鱼监控机器人:ai-goofish-monitor 完整教程
想蹲一台成色好的二手相机,盯了半个月,每次刷新都被秒走。后来干脆把这件事交给了程序:NAS 24 小时替我刷,AI 替我看图看描述,符合要求的直接推到手机上。这篇就是把它跑起来之后的完整记录——从装 Docker 到排障清单,你照着做一遍就能用。
重要更新(2026):本项目仓库已从
dingyufei615/ai-goofish-monitor迁移到Usagi-org/ai-goofish-monitor,目前约 10.1k star。网上很多旧教程里的仓库地址、部署脚本都已失效,本文按迁移后的当前版本重写。
一、它能帮你做什么
ai-goofish-monitor 是一套基于 Playwright + AI 的闲鱼监控系统,带完整的 Web 管理界面。和单纯关键词轮询的工具相比,它的差别在于用多模态模型直接看图判断:
AI 驱动筛选:用自然语言描述需求(比如"九成新以上、无拆修的索尼 A7M3"),模型会同时看图和描述给出判断
多任务并发:每个任务独立配置关键词、价格区间、 AI Prompt 和定时规则
高级筛选:包邮、发布时间范围、省/市/区三级区域筛选
即时通知:ntfy.sh、Gotify、Bark、企业微信、Telegram、Webhook 多渠道
账号与代理轮换:多账号 + 代理池,遇到风控自动切换重试
Docker 一键部署:镜像已内置 Chromium,宿主机不用另装浏览器
它的处理流程大致是:启动任务 → 搜索商品 → 发现新商品则抓取详情与卖家信息 → 下载商品图 → 调用 AI 分析 → 判定推荐才推送通知 → 结果落库;中途触发风控则轮换账号或代理重试。
跑起来之后,「结果查看」页会把市场行情和 AI 判定放在一起。下面是我监控 Apple Watch S10 时的实际界面——左侧是样本均价、最低价和价格曲线,右侧每张商品卡片都带 AI 匹配度评分与推荐结论:

二、部署前的准备
1. 在飞牛 NAS 上安装 Docker
进入飞牛 NAS 后台 → 应用商店 → 搜索 Docker → 安装,装完在「服务」里确认 Docker 已启动。
2. 准备一个 AI 接口
AI 判断是核心功能,没有它也能跑关键词模式,但会失去这个工具最大的价值。你需要一个 OpenAI 兼容接口的 OPENAI_API_KEY、OPENAI_BASE_URL 和支持图片输入的模型名。
下面以七牛云为例(国内可直接访问,其 OpenAI 兼容接口地址为 https://openai.qiniu.com/v1)。注册后在控制台创建 API Key,并在后台确认当前实际支持的模型名称再填入。
注意:一定要选支持图片输入的多模态模型,否则无法分析商品图。
三、Docker 部署
1. 拉取源码
SSH 登录 NAS,进入你的 Docker 目录后执行:
2. 国内加速(拉不到镜像时用)
官方镜像地址是 ghcr.io/usagi-org/ai-goofish:latest。如果下载不动,可以先从镜像源拉下来再打标签:
3. 启动
编辑好 .env 之后:
看到 logs 正常输出即启动成功。浏览器打开 http://<你的NAS内网IP>:8000,默认账号密码是 admin / admin123。
生产环境务必修改默认密码,通过
WEB_USERNAME和WEB_PASSWORD设置。
常用运维命令:
如果改了 .env 里的 SERVER_PORT,必须同步修改 docker-compose.yaml 的端口映射,否则容器内外端口对不上。
四、环境变量速查
这张表建议直接收藏,配置时对照填:
变量 | 说明 | 必填 |
|---|---|---|
| AI 模型 API Key | 是 |
| OpenAI 兼容接口地址 | 是 |
| 支持图片输入的模型名称 | 是 |
| Web UI 登录凭据,默认 | 建议改 |
| 后端监听端口,默认 | 否 |
| 无头模式,Docker 中保持 | 否 |
| 给 AI 请求单独指定 HTTP/SOCKS5 代理 | 否 |
| ntfy.sh 推送地址 | 否 |
| Bark 推送地址 | 否 |
| 企业微信机器人地址 | 否 |
| Gotify 推送 | 否 |
| Telegram 推送 | 否 |
| PC 商品链接转移动端链接 | 否 |
一个最小可用的 .env 长这样:
五、导入闲鱼登录态(最关键的一步)
程序要替你浏览闲鱼,就必须先用你自己的账号登录一次。项目提供了专门的 Chrome 扩展来导出登录状态。
在 Chrome 里加载
chrome-extension/目录(开发者模式 → 加载已解压的扩展程序)打开闲鱼网页版完成登录
点击扩展图标,选择「获取环境+登录状态」(1.1 版本起会连同浏览器环境快照一起导出)
复制生成的 JSON
进入项目的「闲鱼账号管理」页面,粘贴导入
登录态会保存为 state/acc_1.json 之类的文件。每个任务可以绑定指定账号,也可以不绑定交给系统自动轮换。
排障要点:登录态会过期。一旦监控突然没结果了,第一件事就是重新导入登录态。
六、创建第一个任务
在「任务管理」新建任务,有两条判断路线:

判断方式 | 适用场景 | 行为 |
|---|---|---|
AI 判断 | 需求复杂、需要看外观成色 | 填写「详细需求」,后台异步生成分析标准,提交后弹进度条 |
关键词判断 | 条件明确 | 直接填规则,立即创建任务,不经过 AI |
几个实战建议:
关键词用「精确型号 + 关键特征」,例如
MacBook Air M1 16GB,而不是泛泛的MacBookAI 任务提交后不会立刻完成,它要先生成分析标准,耐心等进度弹窗走完
区域筛选默认留空。三级区域筛选会大幅缩小结果集,除非你明确只看某个区域
高价值商品可以设短一点的间隔(比如每小时一次),普通任务别设太密,容易被风控
七、通知渠道
推荐先用 ntfy.sh 验证链路,它是免费的公共推送服务,装个 App 订阅一个主题就行:
确认能收到之后再换 Bark(iOS)、企业微信机器人或 Telegram。多渠道可以同时配置。
八、数据、备份与升级
docker-compose.yaml 默认持久化这些目录,备份时打包 data/ 和 state/ 即可:
路径 | 内容 |
|---|---|
| SQLite 主库(任务、结果、价格历史) |
| 闲鱼登录态 cookie |
| 任务提示词 |
| 运行日志 |
| 商品图片临时目录 |
当前主存储是 SQLite(data/app.sqlite3),启动时自动建库建表。升级时先确认数据正常,再决定是否清理旧的 config.json、jsonl/、price_history/。
九、常见问题排查
现象 | 排查方向 |
|---|---|
监控一直没结果 | 登录态过期,重新导入;检查任务绑定的账号 |
AI 分析报错 | API Key 是否有效、模型名是否支持图片、额度是否耗尽 |
任务卡住不动 | AI 任务是后台异步 job,看进度弹窗;或查 |
页面打不开 | 缺前端构建产物,本地部署需先在 |
| 执行 |
容器起不来 |
|
频繁触发风控 | 降低任务频率、启用代理轮换、减少并发任务数 |
十、写在最后
请务必理性使用:控制请求频率,遵守闲鱼的用户协议和 robots.txt,项目本身 MIT 许可、仅供学习研究,不要用于商业爬取。给自己的 NAS 留一点余量,一个任务盯一个品类就够了。
这套东西真正的价值不在"抢得比别人快",而在于把你从反复刷新的动作里解放出来——你在睡觉的时候它在刷,你觉得可以了它就告诉你。折腾的过程记在这里,希望替你省下那几个反复试错的凌晨。
