Files
feishu_approval_design/README.md
Weiming 4e924327ab
Some checks are pending
continuous-integration/drone/push Build is running
测试触发
2026-06-11 17:56:16 +08:00

174 lines
3.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 飞书审批配置服务
内网 Web 服务:用户在浏览器中设计审批表单与流程,保存时**下载包含全部配置的独立 HTML 文件**,可离线打开或分发给他人。
## 功能
- 在线编辑:基础信息、表单设计、流程设计
- **保存并下载 HTML**:配置写入 HTML 文件,无需本地 bat / data 文件夹
- **导入 HTML**:继续编辑之前导出的配置文件
## 环境要求
- **Node.js 16.x**CentOS 7 推荐 16.20 LTS
- 无需 `npm install`(零第三方依赖,仅使用 Node 内置模块)
## 快速启动
```bash
cd Approval_of_design
node server.js
```
浏览器访问:`http://服务器IP:8080`
端口与监听地址可在 `project.config.json` 中修改:
```json
{
"projectId": "approval_of_design",
"port": 8080,
"host": "0.0.0.0",
"label": "飞书审批配置服务"
}
```
## CentOS 7 部署
### 1. 安装 Node.js 16.x
CentOS 7 自带 glibc 较旧,建议使用 NodeSource 16.x 或 nvm
**方式 ANodeSource推荐**
```bash
curl -fsSL https://rpm.nodesource.com/setup_16.x | sudo bash -
sudo yum install -y nodejs
node -v # 应显示 v16.x.x
```
**方式 Bnvm**
```bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install 16
nvm use 16
```
### 2. 上传并启动
```bash
sudo mkdir -p /opt/feishu-approval
# 将项目文件上传到 /opt/feishu-approval
cd /opt/feishu-approval
node server.js
```
或使用项目自带脚本:
```bash
chmod +x deploy/start.sh
./deploy/start.sh
```
### 3. systemd 开机自启(推荐)
```bash
# 修改 deploy/feishu-approval.service 中 WorkingDirectory、User 后:
sudo cp deploy/feishu-approval.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable feishu-approval
sudo systemctl start feishu-approval
sudo systemctl status feishu-approval
```
### 4. 防火墙
```bash
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
```
### 5. 验证
```bash
curl http://127.0.0.1:8080/api/health
```
## 部署到其他环境
### 1. 上传项目
将整个 `Approval_of_design` 目录复制到内网服务器。
### 2. 启动服务
**方式 A直接运行**
```bash
node server.js
```
**方式 B使用 pm2 守护进程(推荐)**
```bash
npm install -g pm2
pm2 start server.js --name feishu-approval
pm2 save
pm2 startup
```
**方式 CWindows 服务**
使用 [nssm](https://nssm.cc/) 将 `node server.js` 注册为 Windows 服务,开机自启。
### 3. 反向代理(可选)
若需通过 80 端口或 HTTPS 访问,可在 Nginx 中配置:
```nginx
location / {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
```
### 4. 防火墙
在内网服务器开放 `project.config.json` 中配置的端口(默认 8080
## API
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/` | 在线编辑器 |
| GET | `/api/health` | 健康检查 |
| POST | `/api/export` | 提交 JSON 配置,返回 HTML 文件下载 |
| POST | `/api/import` | 提交 HTML 文本,解析其中的配置 JSON |
## 文件说明
| 文件 | 说明 |
|------|------|
| `server.js` | Web 服务主程序 |
| `飞书审批配置文件_V1.0.html` | 编辑器模板(服务与导出共用) |
| `project.config.json` | 端口、服务名称等配置 |
| `deploy/start.sh` | CentOS 7 启动脚本 |
| `deploy/feishu-approval.service` | systemd 服务单元示例 |
## 使用流程
1. 访问服务地址,开始新建或导入已有 HTML
2. 完成表单与流程设计
3. 点击 **「保存并下载 HTML」**,获得独立配置文件
4. 下载的 HTML 可双击离线打开;再次编辑可导入回在线服务
## 健康检查
```bash
curl http://localhost:8080/api/health
```