
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
🔴 **醒目提醒:现在扫码登录失效,等其他大佬修复,本仓库暂停更新功能,仅修复bug了。**基于 Node.js 的 QQ 农场自动化工具,支持多账号管理、Web 控制面板、实时日志与数据分析。
!https://img.shields.io/badge/%E7%89%88%E6%9C%AC-v4.5.61-blue !https://img.shields.io/badge/Node.js-20+-green !https://img.shields.io/badge/MySQL-8.0-orange !https://img.shields.io/badge/Redis-6.0-red !https://img.shields.io/badge/License-ISC-yellow
核心框架
数据库与存储
日志与通知
打包与部署
https://nodejs.org/ https://expressjs.com/ []([***] https://www.mysql.com/ https://redis.io/
核心框架
UI 与样式
开发与质量
https://vuejs.org/ https://vitejs.dev/ https://www.typescriptlang.org/ https://pinia.vuejs.org/ []([***]
容器化
包管理
CI/CD
https://www.docker.com/ https://pnpm.io/ https://github.com/features/actions
!Dashboard
支持按以下维度排序作物:
!分析页面
!帮助中心
corepack enable 启用)Linux/macOS:
bash./docker/start.sh
ARM Mac 本地开发(一键编译 + 启动):
bash./dev.sh
脚本会自动关闭占用端口、编译前端、启动后端,适合改代码和测试。
Windows:
cmddocker\\start.bat
Windows
powershell# 1. 安装 Node.js 20+(https://nodejs.org/)并启用 pnpm node -v corepack enable pnpm -v # 2. 安装依赖并构建前端 cd D:\Projects\qq-farm-bot-ui pnpm install pnpm build:web # 3. 启动 pnpm dev:core # (可选)设置管理密码后启动 $env:ADMIN_PASSWORD="你的强密码" pnpm dev:core
Linux(Ubuntu/Debian)
bash# 1. 安装 Node.js 20+ sudo apt update && sudo apt install -y curl curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt install -y nodejs corepack enable # 2. 安装依赖并构建前端 cd /path/to/qq-farm-bot-ui pnpm install pnpm build:web # 3. 启动 pnpm dev:core # (可选)设置管理密码后启动 ADMIN_PASSWORD='你的强密码' pnpm dev:core
启动后访问面板:
http://localhost:3000http://<你的 IP>:3000!设置页面
部署文档入口:
发布前文档/公告自检(推荐):
bashpnpm check:announcements pnpm check:doc-links
check:announcements用于校验Update.log/CHANGELOG的标题、bullet 与文件完整性;check:doc-links用于校验 README、部署文档与关键说明文件中的本地链接、图片引用和 NUL 字节问题。
标准部署栈固定为 4 个服务:主程序 + MySQL + Redis + ipad860。后续版本主要更新主程序;MySQL、Redis、ipad860 默认复用已部署版本。
如果你的服务器在中国大陆网络环境,优先查看 deploy/README.cn.md。
自 v4.5.20 起,部署目录固定带上两类修复脚本,并统一附带安装/更新/核验辅助脚本:
repair-mysql.sh:修复旧 MySQL 结构、补齐缺失表/列并回填历史数据repair-deploy.sh:修复旧部署目录缺脚本、缺 docker-compose.yml、缺 init-db、缺 /opt/qq-farm-current(以及历史 /opt/qq-farm-bot-current)链接的问题为降低 GitHub Raw 边缘节点偶发卡住的概率,推荐直接使用下面这条带 HTTP/1.1 + retry + timeout 的稳态命令:
bashbash <(curl --http1.1 --retry 4 --retry-delay 1 --retry-all-errors --connect-timeout 10 --max-time 90 -fsSL https://raw.githubusercontent.com/smdk000/qq-farm-ui-pro-max/main/scripts/deploy/install-or-update.sh) --action install
脚本会自动完成这些事情:
check-announcements.js(缺少 Node 或脚本时自动跳过,不阻断部署)WEB_PORT,非交互模式下会自动顺延到下一个可用端口/opt/YYYY_MM_DD/qq-farm 创建部署目录,并自动维护 /opt/qq-farm-current 当前版本链接docker-compose.yml、.env.example、初始化 SQL、部署说明、一键部署/更新/修复/核验脚本qq-farm-bot、mysql、redis、ipad860APP_IMAGE -> Docker Hub -> GHCR -> 本地缓存 -> 源码构建 顺序回退--image-archive /path/to/qq-farm-bot-images-<arch>.tar.gz 或 .env 里的 IMAGE_ARCHIVE=/path/to/...arm64 镜像误装到 amd64 服务器repair-mysql.sh常用无交互写法:
bashWEB_PORT=3080 ADMIN_PASSWORD='你的强密码' NON_INTERACTIVE=1 \ bash <(curl --http1.1 --retry 4 --retry-delay 1 --retry-all-errors --connect-timeout 10 --max-time 90 -fsSL https://raw.githubusercontent.com/smdk000/qq-farm-ui-pro-max/main/scripts/deploy/install-or-update.sh) --action install
弱网或离线首装示例:
bashIMAGE_ARCHIVE=/root/qq-farm-bot-images-amd64.tar.gz \ bash <(curl --http1.1 --retry 4 --retry-delay 1 --retry-all-errors --connect-timeout 10 --max-time 90 -fsSL https://raw.githubusercontent.com/smdk000/qq-farm-ui-pro-max/main/scripts/deploy/install-or-update.sh) --action install
如需固定镜像版本或覆盖仓库,可在 .env 中设置:
bashAPP_IMAGE=smdk000/qq-farm-bot-ui:4.5.61 MYSQL_IMAGE=mysql:8.0 REDIS_IMAGE=redis:7-alpine IPAD860_IMAGE=smdk000/ipad860:latest
bashmkdir -p /opt/qq-farm && cd /opt/qq-farm curl -fsSLO https://raw.githubusercontent.com/smdk000/qq-farm-ui-pro-max/main/deploy/docker-compose.yml curl -fsSLo .env https://raw.githubusercontent.com/smdk000/qq-farm-ui-pro-max/main/deploy/.env.example mkdir -p init-db && curl -fsSLo init-db/01-init.sql https://raw.githubusercontent.com/smdk000/qq-farm-ui-pro-max/main/deploy/init-db/01-init.sql docker compose up -d
bashmkdir -p /opt/$(date +%Y_%m_%d)/qq-farm cd /opt/$(date +%Y_%m_%d)/qq-farm curl -fsSLO https://raw.githubusercontent.com/smdk000/qq-farm-ui-pro-max/main/deploy/docker-compose.yml curl -fsSLo .env.example https://raw.githubusercontent.com/smdk000/qq-farm-ui-pro-max/main/deploy/.env.example curl -fsSLo init-db/01-init.sql --create-dirs https://raw.githubusercontent.com/smdk000/qq-farm-ui-pro-max/main/deploy/init-db/01-init.sql curl -fsSLo install-or-update.sh https://raw.githubusercontent.com/smdk000/qq-farm-ui-pro-max/main/scripts/deploy/install-or-update.sh curl -fsSLo update-app.sh https://raw.githubusercontent.com/smdk000/qq-farm-ui-pro-max/main/scripts/deploy/update-app.sh curl -fsSLo update-agent.sh https://raw.githubusercontent.com/smdk000/qq-farm-ui-pro-max/main/scripts/deploy/update-agent.sh curl -fsSLo install-update-agent-service.sh https://raw.githubusercontent.com/smdk000/qq-farm-ui-pro-max/main/scripts/deploy/install-update-agent-service.sh curl -fsSLo manual-config-wizard.sh https://raw.githubusercontent.com/smdk000/qq-farm-ui-pro-max/main/scripts/deploy/manual-config-wizard.sh curl -fsSLo repair-mysql.sh https://raw.githubusercontent.com/smdk000/qq-farm-ui-pro-max/main/scripts/deploy/repair-mysql.sh curl -fsSLo repair-deploy.sh https://raw.githubusercontent.com/smdk000/qq-farm-ui-pro-max/main/scripts/deploy/repair-deploy.sh curl -fsSLo stack-layout.sh https://raw.githubusercontent.com/smdk000/qq-farm-ui-pro-max/main/scripts/deploy/stack-layout.sh curl -fsSLo verify-stack.sh https://raw.githubusercontent.com/smdk000/qq-farm-ui-pro-max/main/scripts/deploy/verify-stack.sh curl -fsSLo fresh-install.sh https://raw.githubusercontent.com/smdk000/qq-farm-ui-pro-max/main/scripts/deploy/fresh-install.sh curl -fsSLo quick-deploy.sh https://raw.githubusercontent.com/smdk000/qq-farm-ui-pro-max/main/scripts/deploy/quick-deploy.sh chmod +x install-or-update.sh update-app.sh update-agent.sh install-update-agent-service.sh manual-config-wizard.sh repair-mysql.sh repair-deploy.sh stack-layout.sh verify-stack.sh fresh-install.sh quick-deploy.sh # 按需修改端口、管理员密码、第三方扫码配置 cp .env.example .env vi .env bash install-or-update.sh --action install --non-interactive
该模式只更新 qq-farm-bot 容器,不会重启或替换 MySQL / Redis / ipad860,也不会清理数据卷。
bash/opt/qq-farm-current/install-or-update.sh --action update --preserve-current
bashcd /opt/qq-farm-current bash install-or-update.sh --action update --preserve-current # 如需只更新主程序 bash update-app.sh # 如需切到指定版本 bash update-app.sh --image smdk000/qq-farm-bot-ui:4.5.61 # 弱网 / 离线环境:先 docker load,再用离线镜像包更新 bash update-app.sh --image-archive /root/qq-farm-bot-images-amd64.tar.gz # 只想单独修复旧 MySQL 结构 bash repair-mysql.sh --backup
补充说明:
deploy/init-db/01-init.sql 只会在 MySQL 空数据卷首次启动时执行。repair-mysql.sh 会对旧数据库执行幂等修复,补齐缺失表/列、回填 cards.days / used_at / expires_at,可重复执行。update-app.sh 会在更新前尝试执行公告预检(检测到脚本与 Node 时执行)。update-app.sh 会先执行 repair-mysql.sh,再更新主程序镜像。update-app.sh 会同步部署目录里的 docker-compose.yml、.env.example、README 和修复脚本。install-or-update.sh --action update --preserve-current 会在更新前先备份当前部署目录。update-app.sh 会重新维护 /opt/qq-farm-current 链接,避免旧服 current 链接丢失。update-app.sh 同样会按 APP_IMAGE -> Docker Hub -> GHCR -> 本地缓存 -> 源码构建 回退,并在启动前做主程序镜像架构预检。适用于这些情况:
repair-mysql.sh / update-app.shdocker-compose.yml、init-db/01-init.sql、.env.example 已经很旧/opt/qq-farm-current 丢失或指向错误目录bashcd /opt/qq-farm-current 2>/dev/null || cd /opt/qq-farm-bot-current 2>/dev/null || cd /opt curl -fsSLo repair-deploy.sh https://raw.githubusercontent.com/smdk000/qq-farm-ui-pro-max/main/scripts/deploy/repair-deploy.sh chmod +x repair-deploy.sh ./repair-deploy.sh --backup ./install-or-update.sh --action update --preserve-current --non-interactive
bash# 检查 4 个容器状态 docker compose ps # 查看主程序日志 docker compose logs -f qq-farm-bot # 测试接口 curl http://localhost:3080/api/ping
从本版本开始,Release 与本地导出都会同时产出:
qq-farm-bot-images-amd64.tar.gzqq-farm-bot-images-arm64.tar.gzqq-farm-bot-v4.5.61-offline-amd64.tar.gzqq-farm-bot-v4.5.61-offline-arm64.tar.gz其中 arm64 离线包里的 ipad860 仍是 linux/amd64,目标宿主机需支持 QEMU。
访问地址:http://服务器IP:3080
admin.env 中的 ADMIN_PASSWORD0. 代码更新后直接发镜像
推荐直接使用项目内置脚本,它会先跑公告/文档/关键回归检查,再优先复用当前 Docker 登录态并调用多架构构建脚本:
bashdocker login bash scripts/deploy/auto-update-docker.sh --version v4.5.61
如果同时要推送 GHCR:
bashexport DOCKERHUB_TOKEN='你的 Docker Hub Token' export GHCR_USERNAME='你的 GitHub 用户名' export GHCR_TOKEN='你的 GitHub Token' bash scripts/deploy/auto-update-docker.sh --version v4.5.61 --with-ghcr --with-release-assets
镜像推送完成后,服务器直接执行:
bash/opt/qq-farm-current/update-app.sh --image smdk000/qq-farm-bot-ui:4.5.61
0.5 发镜像后顺手滚动两台服务器
publish-and-rollout.sh 会先调用上面的镜像发布脚本,然后通过本地 expect + ssh 按目标列表逐台执行安装或升级。密码不写进仓库,只从本地环境变量读取:
bashexport QQ_FARM_PRIMARY_PASSWORD='***' export QQ_FARM_CLUSTER_PASSWORD='***' bash scripts/deploy/publish-and-rollout.sh --version v4.5.61 --with-ghcr \ --target "10.31.1.254|root|QQ_FARM_PRIMARY_PASSWORD|update|qq-farm|/opt/qq-farm-current|" \ --target "10.31.2.242|smdk000|QQ_FARM_CLUSTER_PASSWORD|update|qq-farm-2400|/opt/qq-farm-2400-current|" \ --target "10.31.2.242|smdk000|QQ_FARM_CLUSTER_PASSWORD|update|qq-farm-2500|/opt/qq-farm-2500-current|" \ --target "10.31.2.242|smdk000|QQ_FARM_CLUSTER_PASSWORD|update|qq-farm-2600|/opt/qq-farm-2600-current|"
1. 环境准备
bash# 检查 Docker 和 Buildx docker --version docker buildx version # 登录 Docker Hub docker login # 登录 GitHub Container Registry echo $GH_PAT | docker login ghcr.io -u smdk000 --password-stdin
2. 构建多平台镜像
使用脚本构建(推荐):
bashchmod +x scripts/docker/docker-build-multiarch.sh ./scripts/docker/docker-build-multiarch.sh --version 4.5.61
手动构建:
bash# 构建并推送到 Docker Hub docker buildx build \ --platform linux/amd64,linux/arm64 \ -t smdk000/qq-farm-bot-ui:4.5.61 \ -t smdk000/qq-farm-bot-ui:latest \ -f core/Dockerfile . \ --push # 构建并推送到 GitHub Container Registry docker buildx build \ --platform linux/amd64,linux/arm64 \ -t ghcr.io/smdk000/qq-farm-ui-pro-max:4.5.61 \ -t ghcr.io/smdk000/qq-farm-ui-pro-max:latest \ -f core/Dockerfile . \ --push
3. 输出 GitHub Release 同款二进制与部署包
bashchmod +x scripts/release/build-release-assets.sh ./scripts/release/build-release-assets.sh --version v4.5.61 # 产物默认输出到 ./release-assets ls release-assets
4. 验证构建
bash# 查看镜像信息 docker buildx imagetools inspect smdk000/qq-farm-bot-ui:4.5.61 # Docker Hub 查看 # https://hub.docker.com/r/smdk000/qq-farm-bot-ui/tags # GitHub Packages 查看 # https://github.com/users/smdk000/packages/container/package/qq-farm-ui-pro-max
bash# 巡检历史 GitHub Release 对象与标准 11 件附件 pnpm check:release-assets # 也可以只检查指定版本 node scripts/utils/check-release-assets.js v4.5.54 v4.5.61
bash# 1. 进入现有部署目录 cd /opt/YYYY_MM_DD/qq-farm-bot # 2. 先备份当前数据(推荐) docker compose exec qq-farm-mysql sh -lc 'mysqldump -u root -p"$MYSQL_ROOT_PASSWORD" "$MYSQL_DATABASE"' > backup-$(date +%Y%m%d).sql # 3. 只更新主程序 ./update-app.sh
| 宿主机路径 | 容器内路径 | 说明 |
|---|---|---|
./data | /app/core/data | 核心数据库(账号配置、用户数据) |
./logs | /app/logs | 日志文件(运行日志、操作日志) |
./backup | /app/core/backup | 备份文件目录 |
定期备份:
bash# 每天凌晨 2 点备份 0 2 * * * tar -czf /backup/farm-bot-$(date +\%Y\%m\%d).tar.gz ./data
升级前备份:
bashtar -czf farm-bot-backup-$(date +%Y%m%d).tar.gz ./data
从备份恢复:
bashtar -xzf farm-bot-backup-20260301.tar.gz -C ./data
./data 目录,否则所有数据将丢失错误信息:
Error response from daemon: pull access denied
原因:
解决方案:
bash# ✅ 正确的镜像名称 docker pull smdk000/qq-farm-bot-ui:latest # ❌ 错误的镜像名称 docker pull qq-farm-bot-ui:latest # 缺少用户名 # 如果需要登录 docker login
错误信息:
Error starting userland proxy: listen tcp 0.0.0.0:3080: bind: address already in use
解决方案:
bash# 检查端口占用 lsof -i :3080 # 使用不同端口 export WEB_PORT=3081 bash <(curl --http1.1 --retry 4 --retry-delay 1 --retry-all-errors --connect-timeout 10 --max-time 90 -fsSL https://raw.githubusercontent.com/smdk000/qq-farm-ui-pro-max/main/scripts/deploy/install-or-update.sh) --action install
错误信息:
permission denied while trying to connect to the Docker daemon socket
解决方案:
bash# 使用 sudo sudo bash <(curl --http1.1 --retry 4 --retry-delay 1 --retry-all-errors --connect-timeout 10 --max-time 90 -fsSL https://raw.githubusercontent.com/smdk000/qq-farm-ui-pro-max/main/scripts/deploy/install-or-update.sh) --action install # 或将用户添加到 docker 组 sudo usermod -aG docker $USER newgrp docker
Docker 会自动选择适合您系统架构的镜像版本。
| 变量名 | 说明 | 默认值 |
|---|---|---|
ADMIN_PASSWORD | 管理员密码 | qq007qq008 |
TZ | 时区 | Asia/Shanghai |
LOG_LEVEL | 日志级别 | info |
NODE_ENV | 运行环境 | production |
| 容器端口 | 宿主机端口 | 说明 |
|---|---|---|
| 3000 | 3080 | Web 界面访问端口 |
支持多模式验证、Token安全保护、体验卡自助领取与一键全自动登录入驻。
!登录控制台1 !登录控制台2 !登录控制台3
内置多种玻璃态 (Glassmorphism) 梦幻色彩主题,全面适配深浅双模与性能自适应。
![主题
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务