当前位置: 首页 > 科技观察

WebHook自动化部署运维工具git-webhook

时间:2023-03-13 16:30:08 科技观察

GitWebHook是一个使用PythonFlask+SQLAchemy+Celery+Redis+React开发的快速搭建和使用WebHook进行自动部署运维的系统,支持:Github/GitLab/GitOsc。技术栈简单易部署;代码简洁易懂,二次开发无压力;支持Github/GitLab/GitOsc;SSH用于支持多服务配置;在线DEMO网址:http://webhook.hust.cc/,使用gunicorn+gevent+ngxin部署。1.如何使用?1、下载本项目代码:gitclonegit@github.com:NetEaseGame/git-webhook.git2、安装Python并依赖pipinstall-rrequirements.txt3、配置config.py复制一份config_example.py到同一个目录配置。py,然后相应修改配置内容。主要配置三个点:DATABASE_URI:数据库地址,理论上任何关系型数据库都可以;推荐使用sqlite和mysql(已测试);CELERYREDIS:RedisURI配置,主要用于Celery后台任务;GITHUB:GitHub登录配置,可自行前往OAuth应用申请,登录回调地址为:your_domain/github/callback。4.初始化数据库结构pythonscripts.pybuild_db5.运行应用程序pythonrun_webhook.py后,打开http://127.0.0.1:18340访问。使用您的GitHub帐户登录。添加WebHook在工具中添加Git项目,获取WebHookURL,填写在Github/GitLab/OscGit的WebHook配置中。3.效果预览首页WebHook列表服务器列表WebHook历史4.部署代码使用Flask框架开发。使用gunicorn+gevent+nginx在线部署已经是比较成熟的方案。当然这个应用也可以这样部署。主服务器依赖环境:数据库环境(自行选择,推荐mysql和sqlite);Redis,使用Celery做后台任务;5、使用SSH私钥贡献项目,直接登录Linux服务器,执行部署或运维Shell命令,安全可靠。当然,因为涉及到私钥,为了安全起见,还是建议在内网搭建使用(这些是我们的使用场景)。后端开发使用:PythonFlask+SQLAchemy+Celery+Redis,常规技术栈;前端开发使用React+Webpack,没有使用其他消息通信框架。所以整体项目代码很简单,大部分可以修改更新代码,提交PullRequest,当前系统TODO包括,我也会注意完善:Celery进程状态显示(当Celery进程没有运行,会在页面提示,类似哨兵);系统状态统计(任务队列实时状态,WebHook执行统计图表);发布为pip包,安装部署更简单;文档使用文档&帮助文档;