Hexo的自动化部署折腾记录
Hexo作为一个静态博客系统,一般都是部署到Github或Coding等平台,零成本就能搭建起一个博客,利用插件就可以直接推送到Github,但是如果利用这个插件推送到自己的服务器就需要折腾一下了
在服务器上建立远程仓库
需要在服务器上建立一个中心仓库,本地生成的静态文件会推送到这个仓库
首先需要安装git,pacman -S git
即可
建立一个文件夹来保存仓库
1 | cd /home |
为了安全,需要新建一个用户git并禁用shell权限来管理仓库,由于Archlinux自动建立好了我也就不赘述了,只需要更改一下用户的主目录即可,usermod -d /home/git -m git
建立一个空仓库
1 | git init --bare /home/git/hexo.git |
由于中心仓库是无法直接看到代码的,所以需要再clone一遍仓库才能看到推送上来的静态文件
1 | git clone /home/git/hexo.git |
为了方便也可以设置用公钥登录,免得每次都要输密码
设置远程仓库的hooks
git的服务端有个hook可以在收到推送之后执行一个脚本,可以利用这个来自动更新静态文件
编辑/home/git/hexo.git/hooks/post-receive
,没有就新建一个,加入以下内容
1 |
|
赋予执行权限
1 | chmod +x /home/git/hexo.git/hooks/post-receive |
最后更改所有者,避免权限问题
1 | chown git:git -R /home/git |
这样在客户端推送更新到服务器时就会自动拉取新的静态文件
配置Nginx
建立软连接
1 | ln -s /home/git/hexo /srv/http/hexo |
将Nginx虚拟主机的的根目录设置为/srv/http/hexo
即可
本地Hexo配置
编辑Hexo的_config.yml
配置文件,修改为
1 | deploy: |
注意把域名(或IP)修改为自己的
这样本地执行hexo d
就会触发自动部署流程
Hexo的自动化部署折腾记录