GitHub自动部署HEXO个人博客
使用GitHub白嫖搭建一个个人博客,并且使用GitHub Action自动的部署,省去自己hexo clean | hexo g | hexo d等繁琐操作,直接提交git即可
Note:本教程在Windows下使用
建立仓库
我这里分了两个仓库,一个 username.github.io,用来部署自己的个人博客,这里是hexo生成的,且需要是一个public仓库
另一个仓库MyBlogSource,用来存放hexo init出来的博客源码,可以是private的
也可以在一个仓库里用不同分支来做
GitHub仓库SSH密钥配置这里不赘述,属于git配置的范畴
HEXO安装和配置
如果已经有自己配置过HEXO可以直接跳过这部分
此处默认git已安装
下载安装node.js
安装HEXO
假设已经创建好了上一步的两个仓库并clone到了本地
设源码存放的仓库路径为:C:/Users/Documents/GitHub/MyBlogSource
设hexo部署仓库本地路径为:C:/Users/Documents/GitHub/username.github.io
打开git bash并把路径定位到源码仓库
这个语句用来安装HEXO
npm install -g hexo-cli
这个语句在这个文件夹下初始化HEXO
hexo init
下面这个语句install一些依赖
npm install
到这里就初始化完成HEXO了
HEXO配置可以参考官网修改配置文件_config.yml,官网文档是 https://hexo.io/zh-cn/docs/configuration
此处不介绍如何修改主题,需要的话推荐一个本站使用的开源主题项目Melody
此时的文件夹结构应该大致是如下情况:
- MyBlogSource
- Source
- _posts 文章在这个文件夹下
- _config.yml 配置文件
- Source
HEXO推送配置
将推送配置单独说一下
这里会使用gitconfig全局设置的ssh key
使用HEXO部署
在hexo init时候的根目录下可以使用命令来生成博客
hexo clean – 会清除掉生成的public文件夹
hexo g – 重新生成public文件夹
hexo d – 将仓库推送到配置的路径
hexo s – 本地localhost:4000 查看部署出来的网站
推送到git后就可以访问username.github.io查看自己的网站了
使用个人域名
不需要使用个人域名的可以跳过
域名注册申请备案和DNS解析购买这里不介绍
在网页上打开GitHub的 username.github.io
选择Settings,选择Pages,填上自己的域名
然后到DNS解析服务商添加解析规则,我用的阿里云
红框里面的四个都加上
最后一个加上后,需要在博客源码仓库本地路径的Source文件夹里添加一个CNAME文件,不要任何后缀,用记事本打开添加上网址,比如我的就是 muchenhen.com
然后重新部署,等待dns解析生效之后就可以通过域名访问自己的博客
用GitHub Action自动部署
因为每次写完之后都要手动部署很烦
而且更烦的是多设备同步问题,都要重新弄hexo的环境,不如干脆买个轻量应用服务器一键搭建WordPress随便哪个设备都能写博客……(不是
用HEXO+GitHub主要是想白嫖(不是
所以用GitHub Action减少上述的麻烦
这里不介绍GitHub Action相关的知识,直接写如何使用来自动化部署hexo
前往本地的博客源码仓库C:/Users/Documents/GitHub/MyBlogSource
添加推送用的key
在本地用git bash生成一堆新的密钥,我这里取的名字是github-deploy-key
将pub的key添加到HEXO部署仓库,在网页上打开 username.github.io,来到settings,打开Deploy keys,添加一个新的key,将刚生成的pub复制粘贴进来
然后到博客源码仓库,在网页上打开,settings,secrets,将私钥复制粘贴到这里面,记住你添加的这个secret的名字
配置Action
在.github文件夹下添加一个文件夹workflows,在这个文件夹里添加一个文件HEXO_CI.yml
这里可以参考我的来改一下,我把源码贴在这里并写上注释,注意需要修改的地方:git设置,secret名
1 |
|
这样就会在每次push的时候触发这个Action,自己生成并部署hexo了~