一個(gè)使用 Python Flask + SQLAchemy + Celery + Redis + React 開發(fā)的用于迅速搭建并使用 WebHook 進(jìn)行自動(dòng)化部署和運(yùn)維系統(tǒng)谣沸,支持: Github / GitLab / GitOsc 虾啦。
- 技術(shù)棧簡(jiǎn)單务豺,部署容易稿蹲;
- 代碼簡(jiǎn)潔易懂瀑焦,二次開發(fā)毫無壓力剪菱;
- 支持 Github / GitLab / GitOsc 浪耘;
- 使用 SSH 方式症汹,支持多服務(wù)配置宾肺;
一溯饵、如何使用 ?
-
下載本項(xiàng)目代碼:
git clone git@github.com:NetEaseGame/git-webhook.git
-
安裝 Python & Javascript 依賴
pip install -r requirements.txtnpm install
-
配置 config.py
拷貝一份 config_example.py 到同目錄 config.py锨用, 然后對(duì)應(yīng)修改配置內(nèi)容丰刊。主要需要配置三點(diǎn):
- DATABASE_URI: 數(shù)據(jù)庫地址,理論上可以使用任何關(guān)系數(shù)據(jù)庫增拥;推薦使用 sqlite 和 mysql (經(jīng)過測(cè)試)啄巧;
- CELERY REDIS: Redis URI 配置寻歧,主要用于 Celery 后臺(tái)任務(wù);
- GITHUB: GitHub 登陸配置棵帽,可以到 OAuth applications 自行申請(qǐng)熄求,登陸 Callback 地址為:
your_domain/github/callback
.
4.初始化數(shù)據(jù)庫結(jié)構(gòu)
```shell
python scripts.py build_db
```
5.運(yùn)行應(yīng)用
```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
```
運(yùn)行之后,打開 http://127.0.0.1:18340 (一巴扇死你)即可訪問逗概。使用 GitHub 賬號(hào)登陸弟晚。
添加WebHook在工具中添加 Git 項(xiàng)目,獲得 WebHook URL逾苫,并填寫到 Github / GitLab / OscGit 的 WebHook 配置中卿城。
二、效果預(yù)覽
三铅搓、部署
代碼使用 Flask 框架開發(fā)瑟押,線上部署使用 gunicorn + gevent + nginx 已經(jīng)是比較成熟的方案了,本應(yīng)用當(dāng)然也可以使用這種方式部署星掰。
主要的服務(wù)器依賴環(huán)境:
- 數(shù)據(jù)庫環(huán)境(自行選擇多望,推薦 mysql 和 sqlite)解愤;
- Redis腮出,利用 Celery 做后臺(tái)任務(wù);
當(dāng)然也支持 docker 部署扔仓,參考:docker 安裝部署 git-webhook