Github 自动构建 Hexo, 并通过 Webhook 同步到宝塔指定目录
1. 配置Hexo博客
确保你的Hexo博客已经安装并配置好。如果你还没有设置,可以通过以下命令安装Hexo:
npm install -g hexo-cli
hexo init blog
cd blog
npm install
2. 创建GitHub仓库
- 登录到你的GitHub账户。
- 点击右上角的 "+" 号,选择 "New repository"。
- 填写仓库的名称,可以是
hexo-blog
或者其他你喜欢的名字。 - 选择 "Public" 或 "Private",根据你的需求。
- 点击 "Create repository"。
3. 初始化本地Git仓库并关联GitHub仓库
在你的Hexo项目目录下,执行以下命令:
cd blog
git init
git remote add origin https://github.com/your-username/hexo-blog.git
将 your-username
替换为你的GitHub用户名,将 hexo-blog.git
替换为你的仓库名。
4. 提交本地更改到GitHub
将本地的Hexo源码提交到GitHub:
git add .
git commit -m "Initial commit of Hexo blog"
git push -u origin master
5. 配置Webhooks
- 在GitHub仓库的页面,点击 "Settings" > "Webhooks" > "Add webhook"。
- 在 "Payload URL" 输入框中,输入你的宝塔面板中的Webhook触发地址。
- "Content type" 选择 "application/json"。
- "Which events would you like to trigger this webhook?" 选择 "Just the push event"。
- 点击 "Add webhook"。
6. 编写触发脚本
在服务器上,创建一个脚本文件,例如 trigger-build.sh
:
#!/bin/bash
cd /path/to/your/hexo/blog
git pull origin master
hexo generate
# 同步到网站目录的命令,例如使用rsync
rsync -avz /path/to/your/hexo/blog/public/ /path/to/your/webserver/directory
确保替换 /path/to/your/hexo/blog
和 /path/to/your/webserver/directory
为你的实际路径。
给这个脚本执行权限:
chmod +x trigger-build.sh
7. 设置宝塔面板
- 登录到宝塔面板。
- 找到 "安全" 相关的设置,确保允许外部POST请求。
- 如果你的Webhook触发地址是自定义的,确保宝塔面板的防火墙规则允许该地址的请求。
8. 测试流程
- 在本地Hexo项目中做一些更改,例如添加一篇新的博客文章。
提交更改到GitHub:
git add . git commit -m "Add a new blog post" git push origin master
- 检查宝塔面板中的脚本是否被触发,并且是否成功生成了静态文件并同步到了网站目录。
注意事项
- 确保你的服务器安全设置允许GitHub的Webhook请求触发脚本。
- 根据你的服务器环境和宝塔面板的具体配置,可能需要调整脚本和Webhook的设置。
- 如果你在操作过程中遇到任何问题,可以参考Hexo和GitHub的官方文档,或者寻求社区的帮助。