Git WebHook:用于迅速搭建并使用 WebHook 进行自动化部署 ( Python)

一个使用 Python Flask + SQLAchemy + Celery + Redis + React 开发的用于迅速搭建并使用 WebHook 进行自动化部署和运维系统,支持: Github / GitLab / GitOsc 。

  • 技术栈简单,部署容易;
  • 代码简洁易懂,二次开发毫无压力;
  • 支持 Github / GitLab / GitOsc ;
  • 使用 SSH 方式,支持多服务配置;

项目地址 | DEMO 示例

一、如何使用 ?

  1. 下载本项目代码:

    git clone git@github.com:NetEaseGame/git-webhook.git
    
  2. 安装 Python & Javascript 依赖

    pip install -r requirements.txtnpm install
    
  3. 配置 config.py

    拷贝一份 config_example.py 到同目录 config.py, 然后对应修改配置内容。主要需要配置三点:

    • DATABASE_URI: 数据库地址,理论上可以使用任何关系数据库;推荐使用 sqlite 和 mysql (经过测试);
    • CELERY REDIS: Redis URI 配置,主要用于 Celery 后台任务;
    • GITHUB: GitHub 登陆配置,可以到 OAuth applications 自行申请,登陆 Callback 地址为: your_domain/github/callback.

4.初始化数据库结构

```shell
python scripts.py build_db
```

5.运行应用

```shell
# 1. package static files
npm run js
# 2. run python web
python run_webhook.py
# 3. run celery
celery -A app.celeryInstance worker --loglevel=info
```

运行之后,打开 http://127.0.0.1:18340 (一巴扇死你)即可访问。使用 GitHub 账号登陆。

添加WebHook在工具中添加 Git 项目,获得 WebHook URL,并填写到 Github / GitLab / OscGit 的 WebHook 配置中。

二、效果预览

三、部署

代码使用 Flask 框架开发,线上部署使用 gunicorn + gevent + nginx 已经是比较成熟的方案了,本应用当然也可以使用这种方式部署。

主要的服务器依赖环境:

  • 数据库环境(自行选择,推荐 mysql 和 sqlite);
  • Redis,利用 Celery 做后台任务;

当然也支持 docker 部署,参考:docker 安装部署 git-webhook

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容