# wh-handler-pro **Repository Path**: guojongg/wh-handler-pro ## Basic Information - **Project Name**: wh-handler-pro - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-20 - **Last Updated**: 2026-05-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Webhook Handler Pro 一个功能强大的通用 Webhook 处理器系统,支持多种触发器和处理器类型,提供可视化的任务管理和执行结果查看。 ## ✨ 功能特性 ### 触发器类型 - **Webhook 触发器** - 接收外部 HTTP 请求并触发任务执行 - **定时任务触发器** - 基于 Cron 表达式定时执行任务 - **手动触发** - 手动触发任务执行 ### 处理器类型 - **HTTP 请求处理器** - 发送 HTTP 请求到外部服务 - **本地命令处理器** - 执行本地脚本或命令 - **自定义处理器** - 可扩展的处理器架构 ### 核心功能 - 📊 **可视化任务管理** - 直观的任务列表和执行历史 - 🔍 **详细执行结果** - 查看请求/响应详情、状态码、耗时等 - 🔄 **任务重试机制** - 支持失败任务自动重试 - 📝 **完整日志记录** - 记录任务执行的详细日志 - 🎨 **现代 UI 界面** - 基于 Vue 3 + Element Plus 的响应式界面 - 📡 **实时更新** - WebSocket 实时推送任务状态 ## 🏗️ 项目结构 ``` wh-handler-pro/ ├── server/ # 后端服务 (Node.js + Express) │ ├── src/ │ │ ├── controllers/ # 控制器 │ │ ├── models/ # 数据模型 │ │ ├── processors/ # 处理器实现 │ │ ├── triggers/ # 触发器实现 │ │ └── utils/ # 工具函数 │ ├── Dockerfile │ └── package.json ├── web/ # 前端界面 (Vue 3) │ ├── src/ │ │ ├── views/ # 页面组件 │ │ ├── components/ # 通用组件 │ │ └── api/ # API 接口 │ ├── Dockerfile │ └── package.json ├── docker/ # Docker 部署配置 │ └── docker-compose.yml ├── helm-chart/ # Helm Chart (Kubernetes 部署) │ ├── Chart.yaml │ ├── values.yaml │ └── templates/ └── README.md ``` ## 🚀 快速开始 ### 方式一:Docker Compose(推荐) 1. 克隆仓库 ```bash git clone https://gitee.com/guojongg/wh-handler-pro.git cd wh-handler-pro ``` 2. 启动服务 ```bash cd docker docker-compose up -d ``` 3. 访问应用 - 前端界面:http://localhost - 后端 API:http://localhost:3000 ### 方式二:手动运行 #### 后端服务 ```bash cd server npm install npm run dev # 开发模式 # 或 npm start # 生产模式 ``` #### 前端界面 ```bash cd web npm install npm run dev ``` ### 方式三:Kubernetes (Helm) 1. 构建并推送 Docker 镜像 ```bash # 构建 API 镜像 docker build -t your-registry/wh-handler-api:latest ./server # 构建 Web 镜像 docker build -t your-registry/wh-handler-web:latest ./web # 推送镜像 docker push your-registry/wh-handler-api:latest docker push your-registry/wh-handler-web:latest ``` 2. 部署到 Kubernetes ```bash helm install wh-handler-pro ./helm-chart \ --set global.imageRegistry=your-registry/ \ -n wh-handler --create-namespace ``` 3. 访问应用 ```bash kubectl port-forward -n wh-handler svc/wh-handler-pro-web 8080:80 # 访问 http://localhost:8080 ``` ## 🔧 配置说明 ### 环境变量(后端) | 变量名 | 说明 | 默认值 | |--------|------|--------| | `NODE_ENV` | 运行环境 | `production` | | `PORT` | 服务端口 | `3000` | | `DB_HOST` | 数据库主机 | `localhost` | | `DB_PORT` | 数据库端口 | `3306` | | `DB_USER` | 数据库用户 | `root` | | `DB_PASSWORD` | 数据库密码 | - | | `DB_NAME` | 数据库名称 | `wh_handler_pro` | | `REDIS_HOST` | Redis 主机 | `localhost` | | `REDIS_PORT` | Redis 端口 | `6379` | | `JWT_SECRET` | JWT 密钥 | - | ### 数据库配置 项目使用 MySQL 8.0,需要创建数据库: ```sql CREATE DATABASE wh_handler_pro CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` ## 📖 API 文档 ### Webhook 端点 接收 Webhook 请求并触发任务执行。 ``` POST /webhook/:webhookId Content-Type: application/json { "key1": "value1", "key2": "value2" } ``` ### 任务管理 API - `GET /api/tasks` - 获取任务列表 - `GET /api/tasks/:id` - 获取任务详情 - `POST /api/tasks/:id/execute` - 手动执行任务 - `POST /api/tasks/:id/retry` - 重试失败任务 ## 🛠️ 开发指南 ### 技术栈 **后端** - Node.js 22 - Express.js 4 - MySQL2 - Redis - WebSocket **前端** - Vue 3 (Composition API) - Element Plus UI - Axios - ECharts ### 添加新的触发器 在 `server/src/triggers/` 目录下创建新的触发器类: ```javascript class MyTrigger { static type = 'my_trigger'; static name = '我的触发器'; async start(config, callback) { // 实现触发逻辑 } async stop() { // 停止触发器 } } module.exports = MyTrigger; ``` ### 添加新的处理器 在 `server/src/processors/` 目录下创建新的处理器类: ```javascript class MyProcessor { static type = 'my_processor'; static name = '我的处理器'; async execute(config, data) { // 实现处理逻辑 return { success: true, data: { result: '处理结果' } }; } } module.exports = MyProcessor; ``` ## 🐳 Docker 部署 ### 构建镜像 ```bash # 构建后端镜像 docker build -t wh-handler-api:latest ./server # 构建前端镜像 docker build -t wh-handler-web:latest ./web ``` ### 运行容器 ```bash # 运行 MySQL docker run -d --name mysql \ -e MYSQL_ROOT_PASSWORD=root \ -e MYSQL_DATABASE=wh_handler_pro \ -p 3306:3306 \ mysql:8.0 # 运行 Redis docker run -d --name redis \ -p 6379:6379 \ redis:7-alpine # 运行 API docker run -d --name wh-handler-api \ --link mysql:mysql \ --link redis:redis \ -e DB_HOST=mysql \ -e REDIS_HOST=redis \ -e JWT_SECRET=your-secret-key \ -p 3000:3000 \ wh-handler-api:latest # 运行 Web docker run -d --name wh-handler-web \ --link wh-handler-api:api \ -p 80:80 \ wh-handler-web:latest ``` ## 🚢 Kubernetes 部署 使用 Helm Chart 一键部署: ```bash # 添加 Bitnami 仓库(如果需要) helm repo add bitnami https://charts.bitnami.com/bitnami helm repo update # 部署 helm install wh-handler-pro ./helm-chart \ -n wh-handler --create-namespace # 查看状态 helm status wh-handler-pro -n wh-handler # 卸载 helm uninstall wh-handler-pro -n wh-handler ``` 详细配置请参考 `helm-chart/README.md`。 ## 📊 监控与日志 ### 查看日志 ```bash # 后端日志 docker logs wh-handler-api # 或 kubectl logs -n wh-handler deployment/wh-handler-pro-api # 前端日志 docker logs wh-handler-web # 或 kubectl logs -n wh-handler deployment/wh-handler-pro-web ``` ### 性能监控 - **API 响应时间** - 查看任务执行耗时 - **任务成功率** - 监控任务执行状态 - **系统资源** - CPU、内存使用情况 ## 🔒 安全建议 1. **修改默认密码** - 生产环境中务必修改数据库和 JWT 密钥 2. **使用 HTTPS** - 配置 SSL 证书保护 Webhook 端点 3. **访问控制** - 配置防火墙和网络策略 4. **定期备份** - 定期备份数据库和配置 ## 🤝 贡献指南 1. Fork 项目 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 创建 Pull Request ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 📞 联系方式 - 项目地址:https://gitee.com/guojongg/wh-handler-pro - 问题反馈:请在 GitHub/Gitee Issues 中提交 ## 🙏 致谢 - [Vue.js](https://vuejs.org/) - 前端框架 - [Element Plus](https://element-plus.org/) - UI 组件库 - [Express.js](https://expressjs.com/) - 后端框架 - [MySQL](https://www.mysql.com/) - 数据库 - [Redis](https://redis.io/) - 缓存和消息队列