跳转至

NFarmsd 后端平台文档(docs)

NFarms 后端服务(nfarmsd)平台级说明。模块级文档按服务分类存放于本目录, 与本总览构成完整后端文档体系。

平台定位

nfarmsd 是 NFarms 生态的统一后端服务平台:一个可执行、三种运行形态(模块), 对外提供统一认证、统一消息、统一告警、统一数据、统一菜单(商城)、统一证书等 管理域,并通过 WebSocket 网关承载零信任 VPN 认证骨架。前端各平台 (console / online / store / hub / mcp / tools / index)与各客户端应用 (nfvpn / nfprinter / nf-agent / nflive)均统一接入 nfarmsd。

架构总览

nfarmsd.exe --module api      -> HTTP API   (规范端口 9990;本地默认 127.0.0.1:9600)
nfarmsd.exe --module gateway  -> VPN WS 网关 (规范端口 9991;本地默认 127.0.0.1:9994)
nfarmsd.exe --module worker   -> 后台任务     (订单超时/消息重投/证书巡检)
        │
        ├── SQLite(持久化主库:users/messages/menus/certs/orders/vpn_*)
        ├── NATS JetStream(消息总线,规范端口 9996;离线自动降级 SQLite 队列)
        └── Prometheus /metrics + /health

端口规划(9990-9999 段)与配置迁移见 ../nfos/NFarmsd后端规范文档.md §2。

  • API 模块:命令框架 + 六大统一管理域 REST API;
  • Gateway 模块:VPN WebSocket 认证骨架(JWT 校验 → 虚拟 IP 池分配 → 会话登记 → NATS 审计事件 → 30s 定时心跳),2.md §4.3;
  • Worker 模块:订单超时扫描、pending 消息重投(NATS 恢复后)、证书到期巡检。

服务模块地图(本目录)

服务分类 模块 说明 文档
代理服务 AI 代理 AI 模型接入 / MCP 网关路由 代理服务/ai-Modules.md
代理服务 菜单(商城) 统一菜单(商城)管理域 代理服务/menu-Modules.md
代理服务 打印代理 打印作业代理(nfprinter)接入 代理服务/print-Modules.md
安全服务 统一认证 JWT / 角色 / 口令散列(统一用户管理) 安全服务/auth-Modules.md
安全服务 零信任 VPN WS 网关 / 虚拟 IP 池 / 会话审计 安全服务/vpn-Modules.md
安全服务 WAF 防火墙规则(在线规则热加载) 安全服务/waf-Modules.md
通信服务 IoT 物联 端-边-云设备接入 通信服务/iot-Modules.md
通信服务 统一消息 NATS JetStream + SQLite 降级队列 通信服务/msg-Modules.md
通信服务 工单 工单流转引擎 通信服务/ticket-Modules.md
通信服务 告警陷阱 统一告警(飞书/邮件/SNMP trap) 通信服务/trap-Modules.md
交易服务 支付 订单支付通道(商城) pay-Modules.md

六大统一管理域(nfarmsd v2.3.0 已实现)

管理域 表 / 模块 说明
统一用户管理 users PBKDF2-SHA256 口令散列、角色白名单(admin/devops/service/auditor)、JWT HS256 签发/验证
统一消息管理 messages 先落 SQLite(审计+降级队列)再投递 NATS JetStream;GET /messages、POST /messages/publish
统一告警管理 alerts 告警登记/恢复/上报,飞书 webhook 推送(本地可禁用)
统一数据管理 data_backups VACUUM INTO 热备份、prune_backups(keep) 保留策略
统一菜单(商城)管理 menus 菜单树 upsert、父节点校验、子节点删除保护;种子 6 商城菜单
统一证书管理 certificates 注册(SHA-256 指纹 + PEM 落盘)、吊销、删除、到期巡检告警

命令框架与接口约定

  • 命令框架:/commands、/commands/{id}/execute、/commands/executions、/commands/policy;
  • 身份模型:客户端 → 网关(JWT 验证)→ 注入 X-User-ID / X-User-Roles → 后端命令级权限校验(零信任);
  • 遥测接入:POST /api/v1/telemetry(nf-agent / nfprinter 上报,主题 telemetry.agent.*);
  • 统一响应:错误 {code, message};时间戳统一 RFC3339 UTC。

与前端 / 客户端对应关系

后端能力 前端平台 客户端应用
命令框架 / 指标 / 零信任 console / online nf-agent(采集上报)
商城菜单 / 订单 store nflive(下单/生活服务)
VPN 网关 console(vpn 页) nfvpn
打印代理 tools nfprinter
消息 / 通知 hub / online(publish) 各端通知
AI / MCP 网关 mcp ai 客户端

部署布局(服务器,见仓库 scripts/deploy)

后端文件:/opt/Cy/services/system.d/nfarmsd     (三模块 systemd:api/gateway/worker)
日志:    /opt/Cy/logs/backend/                  (api.log / gateway.log / worker.log)
证书:    /opt/Cy/certs/backend/                 (nfarmsd TLS/JWT 相关)
配置:    config/nfarmsd.toml                    (环境变量 NATS_SERVER/JWT_SECRET/VPN_IP_POOL/
                                                    LISTEN_ADDR/READ_ONLY/MODULE 可覆盖)

运维与容灾(规范:../nfos/backup.md)

  • 备份:每日 02:00 数据库+日志 → 阿里云盘(token)上传(已弃用 NFS); 成功后清服务器缓存并重启;
  • 告警链:关机触发初始化系统告警 → 重启完成触发恢复完成初始化告警; 备份失败触发备份失败告警,每 30 分钟重试至 06:00,仍失败升级 CRITICAL 转人工;
  • 双机通道:主服务器只走 VPN 主通道;备通道与 WireGuard VPN 可视化走从服务器 (见 vpn-Modules 主备通道规划)。

文档体系

  • 本目录 docs.md:后端平台总览(本文档);
  • 子目录模块文档:代理服务 / 安全服务 / 通信服务 下各 *-Modules.md 为模块级说明;
  • 后端完整规范与字段约定另见 ../nfos/(变量字段统一规范表、依赖关系等)。