# 飞书审批配置服务 内网 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: **方式 A:NodeSource(推荐)** ```bash curl -fsSL https://rpm.nodesource.com/setup_16.x | sudo bash - sudo yum install -y nodejs node -v # 应显示 v16.x.x ``` **方式 B:nvm** ```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 ``` **方式 C:Windows 服务** 使用 [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 ```