初始化

This commit is contained in:
Weiming
2026-06-11 15:27:52 +08:00
commit 19d0df4fa9
10 changed files with 5332 additions and 0 deletions

173
README.md Normal file
View File

@@ -0,0 +1,173 @@
# 飞书审批配置服务
内网 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
```