
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
🛒 Jumbo.com杂货平台的综合REST API和现代Web仪表板
通过无头Chromium自动化认证,管理购物篮、清单(lijstjes)、订单历史、商店收据,并提供基于SKU或EAN条码的产品详情查询(含OpenFoodFacts fallback功能)。
bashdocker compose up -d
访问 http://localhost:8000/docs 获取完整Swagger/OpenAPI文档:
查看 API_README.md:
API支持三种持久化认证方式:
通过Portainer或docker-compose设置环境变量:
yamlenvironment: - JUMBO_USERNAME=your-email@example.com - JUMBO_PASSWORD=your-password
通过Web仪表板登录一次:
工作原理:
/app/data/session-cookies.json/app/data/credentials.json(或使用环境变量)通过设置面板配置:
🔐 登录凭证
📦 条码查询
🧾 收据产品匹配
🎯 匹配标准
🗑️ 缓存管理
bash# 登录 curl -X POST http://localhost:8000/api/login \ -H 'Content-Type: application/json' \ -d '{"username":"your@email.com","password":"yourpassword"}' # 检查认证状态 curl http://localhost:8000/api/auth/status
bash# 获取购物篮 curl http://localhost:8000/api/basket # 添加产品 curl -X POST http://localhost:8000/api/basket/add \ -H 'Content-Type: application/json' \ -d '{"sku":"67649PAK","quantity":2}' # 更新数量 curl -X PATCH http://localhost:8000/api/basket/items/{line_id} \ -H 'Content-Type: application/json' \ -d '{"quantity":5}' # 移除产品 curl -X POST http://localhost:8000/api/basket/remove \ -H 'Content-Type: application/json' \ -d '{"line_id":"abc123"}'
bash# 获取所有清单 curl http://localhost:8000/api/lists # 获取特定清单详情 curl http://localhost:8000/api/lists/{list_id}
bash# 获取订单和收据 curl "http://localhost:8000/api/orders?limit=10&page=0" # 获取订单详情 curl http://localhost:8000/api/orders/{order_id} # 获取收据详情 curl http://localhost:8000/api/receipts/{transaction_id}
bash# 通过SKU搜索 curl "http://localhost:8000/api/products/search?sku=67649PAK" # 条码查询(含OpenFoodFacts fallback和EAN匹配) curl -X POST http://localhost:8000/api/products/barcode \ -H 'Content-Type: application/json' \ -d '{"barcode":"8718452829408"}' # 响应示例: # { # "sku": "629680PAK", # "title": "Jumbo Cola Regular 6 x 1,5 L", # "ean": "8718452829583", # "scannedBarcode": "8718452829408", # "eanMatchScore": 90, # "verified": true, # "matchSource": "OpenFoodFacts", # "matchedName": "Cola" # }
bash# 获取所有设置 curl http://localhost:8000/api/settings # 更新设置 curl -X PUT http://localhost:8000/api/settings \ -H 'Content-Type: application/json' \ -d '{"useOpenFoodFactsFallback":true,"confidenceThreshold":50}' # 保存凭证 curl -X PUT http://localhost:8000/api/settings/credentials \ -H 'Content-Type: application/json' \ -d '{"username":"your@email.com","password":"yourpassword"}' # 移除凭证 curl -X PUT http://localhost:8000/api/settings/credentials \ -H 'Content-Type: application/json' \ -d '{"removeCredentials":true}' # 清除匹配缓存 curl -X POST http://localhost:8000/api/settings/clear-cache
更多示例请查看 API_README.md
app/ main.py # FastAPI应用与REST端点 jumbo_client.py # Jumbo GraphQL客户端 + Selenium认证 + OpenFoodFacts templates/ index.html # 带设置管理的Web仪表板 static/ app.js # 前端JavaScript style.css # 响应式深色主题 Dockerfile requirements.txt data/ # 持久化数据卷 session-cookies.json # 保存的会话Cookie credentials.json # 加密凭证(可选) barcode-cache.json # 产品条码缓存 settings.json # 用户偏好设置 docker-compose.yml API_README.md # 完整API文档
bashdocker-compose up -d
bashdocker run -d \ --name jumbo-api \ -p 8000:8000 \ -v jumbo-data:/app/data \ -e JUMBO_USERNAME=your@email.com \ -e JUMBO_PASSWORD=yourpassword \ vghoost360/jumbo:latest
bashdocker pull vghoost360/jumbo:latest # 或特定版本 docker pull vghoost360/jumbo:v2.6.0
容器在 /app/data 使用持久化卷存储:
重要: 挂载此卷以在容器重启时保留认证信息。
python:3.11-slim + Chromium)| 变量 | 描述 | 默认值 |
|---|---|---|
JUMBO_USERNAME | Jumbo.com*** | None |
JUMBO_PASSWORD | Jumbo.com密码 | None |
TZ | 时区 | Europe/Amsterdam |
通过 /api/settings 或Web仪表板配置行为:
productMatchingEnabled - 启用/禁用收据信息补充strictMatching - 要求更高的匹配置信度confidenceThreshold - 最小置信度百分比(0-100)usePriceMatching - 匹配算法包含价格useWeightMatching - 匹配算法包含重量useNameMatching - 匹配算法包含名称相似度useOpenFoodFactsFallback - 条码未找到时查询OpenFoodFactsbashcurl http://localhost:8000/api/health
响应:
json{ "status": "healthy", "timestamp": "2026-02-22T17:43:00Z", "authenticated": true }
新功能:
Bug修复:
hasProduct变量定义改进:
.dockerignore 排除构建中的个人数据本项目仅供教育目的,欢迎贡献!
仅供教育使用。Jumbo.com和OpenFoodFacts的服务条款适用于API使用。
docker ps/app/data/session-cookies.json 中的Cookiedocker logs jumbo-api更多帮助请查看 API_README.md
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务