在VPS上使用Git部署Hexo博客

搭建步骤

  1. 在本地完成 hexo 博客的初始化
  2. 在服务端完成 git 仓库的初始化
  3. 使用 git 一键部署

在本地搭建 hexo

  1. 安装 hexo-cli
1
yarn gload add hexo-cli
  1. 初始化 hexo 博客
1
hexo init blog
  1. 安装 git 部署插件
1
yarn add hexo-deployer-git

至此 hexo 的本地初始化已完成,使用hexo server可在本地启动一个服务,用于测试预览博客。

在服务端建立 git 仓库

  1. 安装 git
1
sudo apt-get install git
  1. 建立 git 裸库
1
2
3
sudo mkdir /var/repo
cd /var/repo
sudo git init --bare blog.git
  1. 添加 git hook 用于同步网站根目录
1
2
cd /var/repo/blog.git/hooks
sudo vim post-receive

输入以下内容

1
2
#!/bin/sh
git --work-tree=/var/www/hexo --git-dir=/var/repo/blog.git checkout -f

注意修改 work-tree 的路径

添加权限

1
sudo chmod +x post-receive
  1. 创建 git 账户

此处我使用了Ansible来快速自动化完成创建

关键代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
- name: add git user
become: yes
user:
name: git
shell: /usr/bin/git-shell
group: git
- name: add ssh key
become: yes
authorized_key:
user: git
key: "{{ item }}"
with_file:
- ~/.ssh/id_rsa.pub

出于安全考虑,建议将 git 账户的shell设置为git-shell

  1. 修改 git 库的权限
1
sudo chown -R git:git blog.git

修改本地_config.yml

在_config.yml 找到 deploy,加入以下代码

1
2
3
4
deploy:
type: git
repo: git@serverip:/var/repo/blog.git
branch: master

部署

在本地执行

1
2
hexo g
hexo d

至此,已完成博客的部署