在VPS上使用Git部署Hexo博客
搭建步骤
- 在本地完成 hexo 博客的初始化
- 在服务端完成 git 仓库的初始化
- 使用 git 一键部署
在本地搭建 hexo
- 安装 hexo-cli
yarn gload add hexo-cli
- 初始化 hexo 博客
hexo init blog
- 安装 git 部署插件
yarn add hexo-deployer-git
至此 hexo 的本地初始化已完成,使用hexo server
可在本地启动一个服务,用于测试预览博客。
在服务端建立 git 仓库
- 安装 git
sudo apt-get install git
- 建立 git 裸库
sudo mkdir /var/repo
cd /var/repo
sudo git init --bare blog.git
- 添加 git hook 用于同步网站根目录
cd /var/repo/blog.git/hooks
sudo vim post-receive
输入以下内容
#!/bin/sh
git --work-tree=/var/www/hexo --git-dir=/var/repo/blog.git checkout -f
注意修改 work-tree 的路径
添加权限
sudo chmod +x post-receive
- 创建 git 账户
此处我使用了Ansible
来快速自动化完成创建
关键代码如下
- 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
- 修改 git 库的权限
sudo chown -R git:git blog.git
修改本地_config.yml
在_config.yml 找到 deploy,加入以下代码
deploy:
type: git
repo: [email protected]:/var/repo/blog.git
branch: master
部署
在本地执行
hexo g
hexo d
至此,已完成博客的部署