← 返回官网首页

🛠️ 狐糯糯管家系统使用说明书

狐糯糯管家系统 · 运维说明书

版本:v9.9.9 生成日期:2026-08-27 适用对象:超级管理员 / 运维人员 服务器:124.222.143.14(root 登录凭据不公开,请联系管理员获取)

一、系统概览

管家系统是一套多机器人 QQ 群管理系统:一个后台面板集中管理多个 QQ 机器人(NapCat 实例)加入的所有群聊与功能开关。

1.1 组件与位置

组件说明位置 / 端口
前端管理面板(nginx 托管静态文件)/guanjia/
高级管理页入群审核 / 邀请码 / 管理层级独立入口/guanjia/manage.html
后端Node.js 服务(pm2 进程 guanjia-backend代码 /opt/hunono/hunuanguanjia/backend,监听 127.0.0.1:3456
主数据库SQLite(管家自己的业务库)/opt/hunono/hunuanguanjia/backend/data/hunuanguanjia.db
机器人本体库SQLite(机器人真正支持的功能清单)docker 卷 hunono-qq-bot-platform_backend-data/_data/hunono.db
机器人接入层NapCat 容器(每个 QQ 一个),OneBot HTTP 端口3000–3099
机器人本体平台hunono-qq-bot-platform(真正执行机器人逻辑)docker 容器,仅托管主 bot 2971723646

1.2 数据流

QQ 群  ──(NapCat 3000-3099)──►  guanjia 后端  ──►  hunono.db(功能真相源)
   ▲                                │  ▲
   └──── 机器人收发消息 ◄──────────┘  └── 每5分钟 AutoSync(发现+群+功能)

二、三大自动同步(核心能力)

系统做到:机器人自己同步上来、QQ 群自己同步上来、功能也自己同步上来。三者均在后端每 5 分钟 AutoSync 自动完成,无需人工干预。

2.1 机器人自动同步(发现并入库)

2.2 QQ 群自动同步

2.3 功能自动同步(只显示机器人有的功能)


三、机器人分配模式(重点)

「分配」指把机器人实例分配给哪个用户使用,以及谁是这个 QQ 的主人、何时到期

3.1 关键字段(bot_instances 表)

字段含义
assigned_to分配给的用户 ID(0 = 未分配 / 平台公有)
owner_qq该机器人对应 QQ 的「主人」QQ 号
expire_at使用到期时间(Unix 时间戳,0 = 永久)
created_by创建者用户 ID
notes备注

3.2 分配操作(仅超级管理员)

POST /api/bots/:id/assign
{ "user_id": 12, "expire_at": 0, "notes": "分配给张三" }

3.3 主人绑定 / 到期设置

POST /api/bots/:id/owner    { "owner_qq": "2971723646" }   # 绑定 QQ 主人
POST /api/bots/:id/expire   { "expire_at": 0 }              # 0=永久
POST /api/bots/:id/expire   { "extend_days": 30 }           # 在原到期日上顺延

3.4 权限层级(谁能看/管哪些机器人)

角色可见范围
super_admin(超管)全部机器人,可分配 / 解绑 / 设到期
admin(管理员)自己被分配的、或自己创建的机器人
user(普通用户)assigned_to = 自己 的机器人
普通用户对其他机器人调用 GET /api/bots/:id/groups 会返回 403 无权限

3.5 当前机器人实例清单(4 个,全部在线)

ID名称(库内)实际 QQ 昵称QQ 号端口群数来源
1狐糯糯Bot狐绵绵2971723646300040平台主 bot(hunono.db 托管)
3二号Bot只愿伴你身边3065425710302444NapCat 容器
4三号Bot代梦琳1951957282302832NapCat 容器
5狐糯糯狐糯糯3833675805303622NapCat 容器(新 bot)

合计去重群 93 个。


四、群权限 & 功能权限分配

除「机器人→用户」分配外,系统还支持细粒度授权:

POST /api/users/:id/group-permission(仅超管;目标须为普通用户;只能授自己有权限的群)

POST /api/users/:id/function-permission(仅超管;目标须为普通用户)

两类授权均带权限校验,越权返回 403


五、新机器人接入流程

5.1 标准接入(推荐)

  1. 在服务器上新建一个 NapCat 容器,监听某个 3000–3099 段内空闲端口,登录目标 QQ。
  2. 无需手动在面板建实例——后端每 5 分钟自动发现会扫到它并自动入库。
  3. 其功能会自动从机器人本体库对齐(全局 22 个功能目录),即「功能从旧 bot 弄过来」由系统保证。

5.2 端口检查决策(关键)

新 bot 接入时务必检查端口是否冗余

5.3 验证新 bot 生效

# 在 guanjia 后端目录运行,确认自动发现无误删、无重复
node -e "require('./src/utils/bot-sync.js').discoverAndApplyBots({dryRun:false,noRemove:true}).then(r=>console.log('added',r.added,'removed',r.removed))"
# 检查群数
sqlite3 data/hunuanguanjia.db "SELECT COUNT(*) FROM bot_group_relations WHERE bot_qq=3833675805;"

六、运维与排障

6.1 重启后端

pm2 restart guanjia-backend
pm2 logs guanjia-backend --lines 30   # 查看启动日志,确认 [AutoSync] 正常

6.2 手动触发同步(按需)

# 机器人发现(默认安全:不删除,仅标记离线)
curl -X POST http://127.0.0.1:3456/api/bots/discover   # 需鉴权 token
# 仅当确实要清理已死机器人时,才加 forceRemove:true
# { "forceRemove": true }

# 功能同步(按机器人本体库重算 is_active)
curl -X POST http://127.0.0.1:3456/api/bots/sync-functions

6.3 日志限流

已装 pm2-logrotatemax_size=50M / retain=7 / compress,防止磁盘被日志打爆(曾因日志占用导致磁盘 86%)。

6.4 安全开关 noRemove(防误删)

6.5 常见坑速查

现象原因 / 处理
机器人加了群却不显示旧 bug 已修;现每次同步重建归属关系。若仍异常,手动 POST /api/bots/discover
功能列表出现没实现的功能桩功能已被 is_active=0 屏蔽;若仍显示,跑 POST /api/bots/sync-functions 重算
调接口返回 401需带有效登录 token;不是功能故障
调云端 API 返回 429触发频率限制,稍等重置后再调用,或减少调用次数
文档/COS 链接下载失败签名链接有时效,过期需重新生成

七、本期新增能力(2026-08-27 第二轮 · 全部已上线并验证)

入口:登录后在 /guanjia/manage.html 使用「高级管理」页(自动入群审核 / 邀请码 / 管理层级三个标签页)。

7.1 自动入群审核(自动同意/拒绝新人入群)

7.2 网页安全加固

7.3 机器人稳定性加固(防腐控/防掉线)

7.4 注册 / 绑定 / 注销

7.5 管理层级(多超管 / 上下级可见性)

7.6 邀请码(发展下级)

7.7 v4 条款落地

条款状态说明
8.4 冲突策略批量继承支持 replace(覆盖) / merge(合并) / add_only(仅新增,绝不关已有功能)
8.5 安全闸门批量继承支持 dry_run 预览;replace 覆盖 ≥11 个群需 confirm:true 二次确认
9.5 两层分配链用户生效权限 = 直接分配 ∪ 可见群已开启功能(两层继承)
9.11 全局功能共享global_function_config + GET/PUT /api/functions/global 管理
9.12 冲突裁决GET /api/users/:id/functions/effective 取最宽(任一来源允许即允许)

7.8 运维备注


八、v5 新增能力(2026-08-27 第二轮)

8.1 9.6 临时跨组授权

为某个用户临时开放一个其原本无权访问的群(带有效期、可撤销),到期自动失效,不污染常驻权限。

8.2 三角色独立后台(各登各的)

新增三个独立入口页面,按角色拆分管理视角的独立地址,用户无需挤在一个地址切换:

后台地址适用角色可见模块
超管后台/guanjia/superadmin.htmlsuper_admin全部:概览/群聊/成员/入群审核/邀请码/临时授权/管理层级/资料
管理后台/guanjia/admin.htmladmin概览/群聊/成员(仅下级)/入群审核/邀请码/临时授权/管理层级/资料
用户后台/guanjia/user.htmluser概览/群聊(含临时授权群)/我的上级/我的临时授权/资料
管理发展下级:超管/管理在「成员管理 → +添加下级」创建用户,自动归入自己名下(parent_id 指向当前用户),形成上下级树。

本说明书由运维整理,覆盖截至 2026-08-27 的实际运行状态。如后续代码变更,以代码与数据库为准。


九、本期新增能力(2026-08-27 第三轮 · 全部已上线并验证)

实际访问地址说明:管理面板经 nginx 反代,对外入口为 https://hunuonuo.fun:8443/(HTTP 站点 /guanjia/ 仍可用,二者指向同一前端)。本期新增的子路径均挂在 8443 站点下。

9.1 统一扫码绑定页(自助接入新机器人)

9.2 bot 级订阅到期模型 + 到期提醒

9.3 系统监控(Prometheus + Grafana · 已上线)

组件镜像端口作用
node_exporterprom/node-exporter9100(host 网络)主机 CPU / 内存 / 磁盘 / 网络
prometheusprom/prometheus9090抓取并存储指标,路由前缀 /prometheus
grafanagrafana/grafana3100→3000可视化面板,子路径 /grafana

9.4 账号体系补全(双端已上线)

9.5 双机器人守卫(狐糯糯 + 诺诺)

主人,陌生人(3065425710)拉我强行进入「三号云端」群,已自动退群\n时间:2026-08-26 22:57:50

狐糯糯走 notify_masters、诺诺走 notify_owners_and_group,双脑一致;无法判定时保守不误退。


十、本期新增能力(2026-08-27 第四轮 · 全部已上线并验证)

本轮目标:在既有 QQ 通知之外,补齐「邮件」这条兜底通道,让掉线 / 到期 / 临时主人三类事件都能同时通知系统主人;并为监控栈补齐报警规则与邮件报警

10.1 掉线邮箱提醒(独立周期检测)

10.2 到期提醒补邮件通道

10.3 临时主人提醒补邮件通道

10.4 Prometheus + Grafana 报警规则(已上线)

规则触发条件
HostCpuHigh主机 CPU > 80% 持续 2m
HostMemoryHigh主机内存 > 85% 持续 2m
HostDiskHigh主机磁盘 > 85% 持续 2m
NodeExporterDownnode_exporter 失联 1m
GuanjiaBackendDownguanjia 后端 /metrics 失联 1m

10.5 KZY 邮箱整改说明(已解决 + 优化建议)