应用层
API + 静态站
- API 以 systemd 常驻
- 管理后台同源反向代理
- 店员端独立静态站
- 会员端不走自有服务器
部署与拓扑
伊尔萨当前不是 ARM / X86 / Cloud 三条产品线,而是一套 Linux 生产栈 + 店员端 / 会员端 / 报表 / 只读 MCP。以下只描述现役。
API + 静态站
交易 + 缓存 + 对象存储
报表 + 只读 MCP
应用层与数据层可以拆机部署,也可以同机部署;当前生产是“API/数据库/缓存 + 独立静态站 + 报表/MCP”的混合拓扑。图中不写 IP,避免把内部网络细节当产品参数。
组件清单
| 组件 | 现役实现 | 说明 |
|---|---|---|
| API | .NET 10 LTS + Furion + SqlSugar | yes.jiangxiaopeng.com;systemd 常驻;JWT 鉴权 |
| 管理后台 | Vue 3 + Element Plus | admin.jiangxiaopeng.com;Nginx 静态站 + /api 反代 |
| 店员 Pad | Vue 3.5 + Vite 6 | staff.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 项离线测试 |
| 只读 MCP | Python 3.11+ / 官方 MCP SDK | 生产 Linux systemd;仓库保留 macOS launchd 单机运行手册 |
| 对象存储 | 阿里云 OSS | 衣物图片、报表归档;非交易主库 |
| 外部服务 | 微信支付 / 支付宝 / 阿里云短信 / 百炼 / CloudAuth | 按能力启用;密钥只存生产环境 |
环境要求
后端与报表都可以跑在 Linux;数据库用 SQL Server;对象存储可选阿里云 OSS。MCP 可同机或单独一台机器。
后端 dotnet publish -c Release -r linux-x64;前端 npm run build;静态产物上传 OSS 或落到 Nginx 目录;报表/MCP 按 systemd 单元发布。
API / 管理后台 / 店员端分别配置 HTTPS;证书续期用 acme.sh 或 certbot;到期前由哨兵检查。官网本身也走独立 OSS 桶 + 独立证书。
数据库变更前做全库备份并 RESTORE VERIFYONLY;静态站发布保留上一版目录;报表产物与快照按保留策略归档。
上线步骤
RESTORE VERIFYONLY;记录备份路径与校验结果。mv;保留上一版。tools/list;旧资源 404。上线顺序:数据库 → 后端 → 前端(店员端 / 管理端)→ 报表 / MCP。支付回调域名变更需单独预留窗口。
多门店
会员全连锁共享;门店账号默认只看本店;跨店/轮岗角色显式开启全连锁数据范围。跨店账号的储值扫码按 Pad 当前所选门店落账。
门店数量以 2026-10 生产为准;新门店接入需要门店、格架、服务/价格、账号与权限一起配置。
订单、支付、退款、统计、充值流水、格架默认按所属门店过滤;会员查询不受门店过滤。
DataScope=1(或角色名含跨店/轮岗)可看全连锁;账号类型仍是店员/店长,不是超管。分配后重新登录生效。
日报/周报/月报支持全门店与按门店视图;跨店勾稽、退款双源互校,未归因残差必须 0.00。
回滚
保留上一版发布目录与 DLL/产物哈希;停服务 → 换回备份 → 启服务 → 公网探针。数据库变更需按 SQL 回滚脚本执行。
发布前保留上一版目录;回滚用原子 mv 恢复。旧 JS/CSS 资源必须可 404,避免浏览器继续命中旧缓存。
报表保留上一版代码与定时器配置;MCP 保留上一版 systemd 单元与令牌。回滚后先本地探针,再开公网入口。
官网本身是独立 OSS 桶:内容回滚只需重传上一版静态文件;域名/证书回滚见交付文档,不影响业务系统。