Hexo的自动化部署折腾记录

请注意,本文编写于 122 天前,最后修改于 122 天前,其中某些信息可能已经过时。

Hexo作为一个静态博客系统,一般都是部署到Github或Coding等平台,零成本就能搭建起一个博客,利用插件就可以直接推送到Github,但是如果利用这个插件推送到自己的服务器就需要折腾一下了

在服务器上建立远程仓库

需要在服务器上建立一个中心仓库,本地生成的静态文件会推送到这个仓库

首先需要安装git,pacman -S git即可

建立一个文件夹来保存仓库

cd /home
mkdir git

为了安全,需要新建一个用户git并禁用shell权限来管理仓库,由于Archlinux自动建立好了我也就不赘述了,只需要更改一下用户的主目录即可,usermod -d /home/git -m git

建立一个空仓库

git init --bare /home/git/hexo.git

由于中心仓库是无法直接看到代码的,所以需要再clone一遍仓库才能看到推送上来的静态文件

git clone /home/git/hexo.git

为了方便也可以设置用公钥登录,免得每次都要输密码

设置远程仓库的hooks

git的服务端有个hook可以在收到推送之后执行一个脚本,可以利用这个来自动更新静态文件

编辑/home/git/hexo.git/hooks/post-receive,没有就新建一个,加入以下内容

#!/usr/bin/bash
unset GIT_DIR
cd /home/git/hexo
git pull

赋予执行权限

chmod +x /home/git/hexo.git/hooks/post-receive

最后更改所有者,避免权限问题

chown git:git -R /home/git

这样在客户端推送更新到服务器时就会自动拉取新的静态文件

配置Nginx

建立软连接

ln -s /home/git/hexo /srv/http/hexo

将Nginx虚拟主机的的根目录设置为/srv/http/hexo即可

本地Hexo配置

编辑Hexo的_config.yml配置文件,修改为

deploy:
  type: git
  repo: git@yooomu.com:/home/git/hexo.git
  branch: master

注意把域名(或IP)修改为自己的

这样本地执行hexo d就会触发自动部署流程

添加新评论

已有 4 条评论

wordpress路过瑟瑟发抖

怎么?你也想用hexo啦? ∠( ᐛ 」∠)_

尝试了一下,发现评论系统不好搞就放弃了

LingC LingC 回复 @半吊子的静树
0 0

是的,目前我是用valine,但感觉如果后端leancloud一倒闭我岂不是凉凉,其实还是有点想用github lssue的那个评论系统