Hexo 使用 Webhook 自动部署
准备
- 需要两个 github 仓库:
- 一个用于发布页面: shenbo.github.io
- 一个用于放源码: hexo-source
- 已配置好 hexo 的 VPS 服务器
1. 创建 hexo-source 仓库
- 在hexo的source目录下( ~/hexo/source)运行:
1
2
3
4
5
6
7
8cd hexo/source
git init
git add .
git commit -m "first commit"
git remote add origin https://github.com/shenbo/hexo-source.git
git push -u origin master
2. 搭建Webhook 服务
2.1 编写 hexo 部署命令
新建文件 hexo-d.sh ,内容如下:
1 | cd ~/hexo/source |
2.2 方案1:用 Python 接收 webhook
- 新建文件 webhook.py ,内容如下:
1 | from wsgiref.simple_server import make_server |
- 运行webhook.py服务
1
nohup python3 webhook.py &
2.3 方案二:直接安装 webhook 应用
安装 webhook, https://github.com/adnanh/webhook 应用
1
sudo apt-get install webhook
新建配置文件 hexo-hooks.json,内容为:
1
2
3
4
5
6
7[
{
"id": "blog",
"execute-command": "hexo-d.sh",
"response-message": "job done!"
}
]启动 webhook 服务,默认端口为9000
1
nohup webhook -hooks hexo-hook.json -verbose &
PS: 查看端口占用情况
1
sudo netstat -peanut
3. 配置 github 仓库的 webhook
进入 github.com -> repository -> hexo-source -> settings -> webhook
填写 webhook配置信息.
Payload URL : http://xxx.xxx.xxx.xxx:9000/- Payload URL : http://xxx.xxx.xxx.xxx:9000/hooks/blog
- Content type : aplacation/json
— ok!
4. 测试
在笔记本上 git clone
hexo-source 仓库,然后 push 一下。