# 线上部署记录

部署时间：2026-05-30 20:24–20:28 +08:00

## 线上地址

- 财务看板：https://wwyl.yipeng.online/finance/
- 健康检查：https://wwyl.yipeng.online/finance/health
- 原表数据 API：https://wwyl.yipeng.online/finance/api/workbook
- 原表 Excel 导出：https://wwyl.yipeng.online/finance/api/export/original.xlsx
- 工作流导出接口：`POST https://wwyl.yipeng.online/finance/api/workflow/export`

## 当前版本能力

1. 云端 Node.js 服务已部署在一鹏服务器。
2. Nginx 已将 `/finance/` 反代到本地服务端口 `127.0.0.1:8891`。
3. 首页看板展示：
   - 源表文件名；
   - sheet 数；
   - 非空单元格数量；
   - 公式单元格数量；
   - 原表全部 sheet 标签页；
   - 每个 sheet 的全部非空内容表格；
   - 搜索框；
   - 公式单元格高亮。
4. 当前数据来自项目内源表：
   `source/万物有灵项目利润分配表2026_原始参考.xlsx`
5. 已新增原表格式 Excel 导出接口：
   - `GET /finance/api/export/original.xlsx`：直接下载一份原表格式 Excel。
   - `POST /finance/api/workflow/export`：供飞书工作流调用，生成导出文件并返回 `downloadUrl`。
6. 通过 `scripts/extract-workbook-data.py` 抽取为：
   `data/workbook-data.json`

## 原表抽取范围

```json
{
  "totalSheets": 13,
  "totalNonEmptyCells": 1950,
  "totalFormulaCells": 1323
}
```

Sheet 列表：

1. 收入分配表
2. 公共组收入支配情况（实际扣款时间）
3. 公共组收入支配情况（应支付时间）
4. 苏薇提成支取表
5. 小蒋提成支取表
6. 木雨提成支取表
7. 妹妹项目组
8. 自研产品组
9. AIGC组
10. 电商渠道组
11. 元浪公共账户
12. 个体户账户
13. Sheet1

说明：线上看板隐藏了 Excel 中大量只有格式、没有内容的空白列；所有非空单元格均进入 `workbook-data.json` 和线上 `/api/workbook`。

## 服务器部署位置

```text
/srv/studio-finance/releases/<release>
/srv/studio-finance/current -> 当前 release
```

Systemd 服务：

```text
/etc/systemd/system/studio-finance.service
```

服务配置：

```text
HOST=127.0.0.1
PORT=8891
WORKBOOK_DATA_PATH=/srv/studio-finance/current/data/workbook-data.json
PUBLIC_BASE_URL=https://wwyl.yipeng.online/finance
TEMPLATE_WORKBOOK_PATH=/srv/studio-finance/current/source/万物有灵项目利润分配表2026_原始参考.xlsx
EXPORT_DIR=/srv/studio-finance/current/exports
EXPORT_WORKFLOW_TOKEN=<已配置在 systemd drop-in，不写入文档>
ExecStart=/usr/bin/node /srv/studio-finance/current/dist/apps/api/src/cli.js
```

Nginx 配置位置：

```text
/etc/nginx/sites-available/wwyl.yipeng.online-ssl
```

新增 location：

```nginx
location /finance/ {
    proxy_pass http://127.0.0.1:8891/;
    proxy_http_version 1.1;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    add_header Cache-Control "no-cache" always;
}
```

## 验证结果

本地项目验证：

```text
npm test        -> 4 files / 15 tests passed
npm run typecheck -> passed
npm run build     -> passed
```

公网验证：

```text
https://wwyl.yipeng.online/finance/health -> 200
https://wwyl.yipeng.online/finance/api/workbook -> 200
首页 HTML 包含 “财务管理平台” 和 “原表全部内容”
```

API 验证摘要：

```json
{
  "sheets": 13,
  "cells": 1950,
  "formulas": 1323,
  "first": "收入分配表",
  "last": "Sheet1"
}
```

## 当前边界

- 已部署的是第一版可检查线上看板。
- 目前主要展示原 Excel 全部非空内容；还不是完整可录入/可审批/可月结的生产财务系统。
- 尚未创建新的 PostgreSQL 财务库，避免在未验收口径前写入真实业务数据。
- 服务器 `npm ci --omit=dev` 提示 2 个 moderate vulnerabilities，当前未执行 `npm audit fix --force`，避免自动升级破坏运行版本。
