Files
past-go/past-go/deploy/windows
CodeBuddy bf99e52937 feat: 存储空间管理、虚拟支付接入与容量守卫
- 新增存储空间管理:会员套餐配置、用户容量/到期管理、后台支付记录查询
- 接入个人主体小程序虚拟支付:下单/发货推送/兜底查单(query_order)
- 修复 adminStorageUsers 等接口鉴权、out_trade_no 长度、前端 requestVirtualPayment 参数
- 前端上传前容量预检,超容引导升级无限空间
- 我的页会员卡片展示「无限空间」与已用容量/到期时间
- 后台「存储空间管理」新增支付记录标签页
2026-10-30 23:45:39 +08:00
..

Windows (amd64) 部署说明

后端 Go 服务通过 //go:embed 把 React 管理后台(web/admin/dist)一并打进 past-server.exe, 是单体可执行文件:无需单独部署前端、无需安装 Node.js 运行环境,管理后台从 https://你的域名/backend/admin/ 直接访问。

部署包内容

windows/
├── past-server.exe          # 单体服务(API + 管理后台)
├── config.yaml              # 服务配置(由 config.example.yaml 复制,需填写真实值)
├── install-service.ps1      # 安装 / 卸载 Windows 服务脚本
└── README.md

部署步骤

  1. 准备数据库:MySQL 建库 past、创建用户,确保服务所在机器可连接。
  2. 填写配置:编辑 config.yaml(数据库、微信、虚拟支付等)。
    • 首次安装:复制 config.example.yaml 为 config.yaml 后填写。
    • 确认 listen 端口与 Nginx 转发端口一致(config.example.yaml 示例为 :8080, ../nginx-api.conf 按 127.0.0.1:8081 转发,二者需保持一致)。
  3. 安装为 Windows 服务(以管理员身份运行 PowerShell):
    cd C:\path\to\windows
    .\install-service.ps1
    
    脚本会执行 past-server.exe -service install -config <绝对路径>\config.yaml 并启动服务, 同时配置异常退出自动重启(3s / 3s / 10s)。
  4. 配置 Nginx:把 /api/、/backend/、/backend/uploads/ 转发到后端端口(参考 ../nginx-api.conf), 并配置已备案域名与 HTTPS 证书。
  5. 验证:
    • https://你的域名/api 返回 API 名称与版本;
    • https://你的域名/backend/admin/ 打开管理后台;
    • 本机 curl http://127.0.0.1:8081/healthz 返回 ok。

服务管理

.\install-service.ps1 -Status      # 查看服务状态
.\install-service.ps1 -Restart     # 重启服务
.\install-service.ps1 -Uninstall   # 停止并卸载服务

等价命令行(不经过脚本):

.\past-server.exe -service install -config C:\path\config.yaml
.\past-server.exe -service start
.\past-server.exe -service stop
.\past-server.exe -service uninstall

升级(替换新版本)

  1. 备份数据库与 uploads/、data/ 目录;
  2. .\install-service.ps1 -Uninstall(或先停止服务);
  3. 用新的 past-server.exe 覆盖旧文件,保留现有 config.yaml(不要用 config.example.yaml 覆盖);
  4. .\install-service.ps1 重新安装并启动。

说明

  • 服务以 LocalSystem 身份运行,工作目录为 System32;程序已按「可执行文件所在目录」解析 config.yaml 与 data_dir,因此部署目录可任意放置。
  • 数据库表结构由程序启动时自动迁移,无需手工执行 SQL。
  • 二进制内嵌 tzdata,Windows 无系统时区库也能正确使用 Asia/Shanghai 时区。