# webhook **Repository Path**: YMeng-self/webhook ## Basic Information - **Project Name**: webhook - **Description**: 简单的自建webhook服务,实现自动化部署 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-06 - **Last Updated**: 2026-07-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Webhook 自动部署服务 多项目 Webhook 路由器。接收 Git 推送事件,按 token 路由到对应项目的 deploy.sh。 ## 架构 ``` Gitee Push → Webhook (宿主机:9000) → /opt/project-A/deploy.sh → /opt/project-B/deploy.sh ``` Webhook 运行在宿主机上,直接调用各项目的 deploy.sh,无容器嵌套。 ## 部署 ```bash # 1. 安装依赖 pip3 install flask # 2. 部署文件 mkdir -p /home/www/webhook cp webhook.py config.json deploy-webhook.service /home/www/webhook/ # 3. 注册 systemd 服务 cp deploy-webhook.service /etc/systemd/system/ systemctl daemon-reload systemctl enable --now deploy-webhook # 4. 查看 token journalctl -u deploy-webhook -f # 5. 防火墙 firewall-cmd --add-port=9000/tcp --permanent && firewall-cmd --reload ``` ## 常用命令 ```bash systemctl status deploy-webhook # 状态 systemctl restart deploy-webhook # 重启 journalctl -u deploy-webhook -f # 日志 git fetch --all --tags # 拉取 tag ``` ## 配置 Webhook 启动后查看日志获取 Token,在 Gitee 仓库设置中填入: ``` http://<服务器IP>:9000/deploy?token= ``` ## 管理页面 打开 `http://<服务器IP>:9000` 可视化配置多项目。 ## 测试 ```bash curl http://localhost:9000/deploy?token= # {"project":"xxx","status":"ok"} ``` ## 文件说明 | 文件 | 用途 | |------|------| | `webhook.py` | Flask 路由服务 | | `config.json` | 项目配置:token → 部署脚本映射 | | `deploy-webhook.service` | systemd 服务文件 | | `deploy.sh.example` | 各项目 deploy.sh 模板 |