部署与拓扑

一套现役拓扑,
不画不存在的东西。

伊尔萨当前不是 ARM / X86 / Cloud 三条产品线,而是一套 Linux 生产栈 + 店员端 / 会员端 / 报表 / 只读 MCP。以下只描述现役。

Linux 现役 .NET 10 LTS SQL Server 2022 Express 无 ARM / Cloud 交付

应用层

API + 静态站

现役
Nginx · HTTPS
.NET 10 API
管理后台静态站
店员 Pad 静态站
会员小程序:微信平台
  • API 以 systemd 常驻
  • 管理后台同源反向代理
  • 店员端独立静态站
  • 会员端不走自有服务器

数据层

交易 + 缓存 + 对象存储

现役
SQL Server 2022 Express
Redis
OSS:图片 / 报表
只读快照
  • 订单、会员、支付、退款、审计同库
  • Redis 承担缓存与登录态辅助
  • 图片上传与报表归档进 OSS
  • 报表只读快照,不直写生产库

自动化层

报表 + 只读 MCP

现役
只读采集 → HMAC
报表服务
邮件 / OSS
只读 MCP
Bearer 鉴权
  • 日报 / 周报 / 月报定时生成
  • 现金对账、员工业绩/提成
  • MCP 只读,不封装写接口
  • 手机号打码 + 审计日志

应用层与数据层可以拆机部署,也可以同机部署;当前生产是“API/数据库/缓存 + 独立静态站 + 报表/MCP”的混合拓扑。图中不写 IP,避免把内部网络细节当产品参数。

组件清单

上线前,
逐项对一遍。

组件现役实现说明
API.NET 10 LTS + Furion + SqlSugaryes.jiangxiaopeng.com;systemd 常驻;JWT 鉴权
管理后台Vue 3 + Element Plusadmin.jiangxiaopeng.com;Nginx 静态站 + /api 反代
店员 PadVue 3.5 + Vite 6staff.jiangxiaopeng.com;独立 Nginx 静态站;/mcp 只读端点
会员小程序uni-app 3 / Vue 3.4微信小程序平台;支付宝构建脚本保留
数据库SQL Server 2022 Express容器运行;生产库备份与还原按变更执行
缓存Redis本机 127.0.0.1:6379
报表Python 3.11+ / report-service接收快照、聚合、对账、邮件、OSS;44 项离线测试
只读 MCPPython 3.11+ / 官方 MCP SDK生产 Linux systemd;仓库保留 macOS launchd 单机运行手册
对象存储阿里云 OSS衣物图片、报表归档;非交易主库
外部服务微信支付 / 支付宝 / 阿里云短信 / 百炼 / CloudAuth按能力启用;密钥只存生产环境

环境要求

不依赖 macOS,
也不依赖某个云。

后端与报表都可以跑在 Linux;数据库用 SQL Server;对象存储可选阿里云 OSS。MCP 可同机或单独一台机器。

Ubuntu 24.04.NET 10SQL Server 2022RedisNginxPython 3.11+Node 18+

构建与发布

后端 dotnet publish -c Release -r linux-x64;前端 npm run build;静态产物上传 OSS 或落到 Nginx 目录;报表/MCP 按 systemd 单元发布。

证书与域名

API / 管理后台 / 店员端分别配置 HTTPS;证书续期用 acme.sh 或 certbot;到期前由哨兵检查。官网本身也走独立 OSS 桶 + 独立证书。

备份

数据库变更前做全库备份并 RESTORE VERIFYONLY;静态站发布保留上一版目录;报表产物与快照按保留策略归档。

上线步骤

七步,
从备份到公网探针。

  1. 冻结变更确认发布窗口;数据库、支付回调、证书不在同一分钟切换。
  2. 备份数据库全库备份 + RESTORE VERIFYONLY;记录备份路径与校验结果。
  3. 构建产物后端 Release、前端 dist、报表/MCP 代码;记录 sha256。
  4. 发布 API 与静态站API 原子切换 + systemd 重启;静态站新目录 → 原子 mv;保留上一版。
  5. 发布报表 / MCP报表先干跑再开定时;MCP 先本地探针,再开公网入口。
  6. 公网探针验证码 200、登录、订单、支付回调、报表产物、MCP tools/list;旧资源 404。
  7. 记录与回滚写 CHANGE:产物 sha256、备份路径、InvokeId/命令、验收结果、回滚步骤。

上线顺序:数据库 → 后端 → 前端(店员端 / 管理端)→ 报表 / MCP。支付回调域名变更需单独预留窗口。

多门店

3 家门店,
一套会员账。

会员全连锁共享;门店账号默认只看本店;跨店/轮岗角色显式开启全连锁数据范围。跨店账号的储值扫码按 Pad 当前所选门店落账。

门店数量以 2026-10 生产为准;新门店接入需要门店、格架、服务/价格、账号与权限一起配置。

本店账号

订单、支付、退款、统计、充值流水、格架默认按所属门店过滤;会员查询不受门店过滤。

跨店角色

DataScope=1(或角色名含跨店/轮岗)可看全连锁;账号类型仍是店员/店长,不是超管。分配后重新登录生效。

报表按门店

日报/周报/月报支持全门店与按门店视图;跨店勾稽、退款双源互校,未归因残差必须 0.00。

回滚

先想好怎么退,
再决定怎么上。

API

保留上一版发布目录与 DLL/产物哈希;停服务 → 换回备份 → 启服务 → 公网探针。数据库变更需按 SQL 回滚脚本执行。

静态站

发布前保留上一版目录;回滚用原子 mv 恢复。旧 JS/CSS 资源必须可 404,避免浏览器继续命中旧缓存。

报表 / MCP

报表保留上一版代码与定时器配置;MCP 保留上一版 systemd 单元与令牌。回滚后先本地探针,再开公网入口。

官网本身是独立 OSS 桶:内容回滚只需重传上一版静态文件;域名/证书回滚见交付文档,不影响业务系统。

边界

这一页只讲现役。
规划不写成交付。

ARM / X86 / Cloud 多形态、U衣库寄存、被扫收款都不在本页承诺范围内。需要时再单独立项。