博客部署教程

本文记录了使用 Hexo 搭建博客的主要过程,利用 Github Pages 以及 Github Action 实现了网站的自动部署。

1 创建仓库

1.1 网页端创建

建立两个 Github 空仓库,一个设为private,一个设为public。例如,私有仓库命名为blog,公开仓库命名为Username.github.io

1.2 本地创建密钥对

1
2
3
4
git config --global user.name "你的GitHub用户名"
git config --global user.email "你的GitHub注册邮箱"

ssh-keygen -t rsa -f github_deploy_key

1.3 密钥配置

为了避免博客系统更新过程中的密码输入,需要配置使用密钥进行更新。

私有仓库需要添加私钥,私钥设置方式如下:

Settings → Security → Secrets → Actions → New repository secret

Name 设置为 HEXO_DEPLOY_PRI

Value 为上一步中生成的 github-deploy-key 文件的全部内容

公开仓库需要添加公钥,公钥设置方式如下:

Settings → Security → Deploy keys → Add deploy key

Title 设置为 HEXO_DEPLOY_PUB

Key 为上一步中生成的 github-deploy-key.pub 文件的全部内容

2 搭建环境

2.1 安装 Node.js

1
sudo apt install -y nodejs npm

2.2 安装 Hexo

1
sudo npm install hexo-cli -g

3 初始化 Hexo

创建一个名为blog的文件夹,用于保存博客系统文件,可以通过以下命令初始化。

1
2
3
4
5
6
hexo init blog
cd blog
npm install
npm install hexo-deployer-git --save

hexo server

初始化完成后可访问http://localhost:4000预览页面。

4 上传远端

为了实现自动化部署,需要配置 hexo 并新建 Workflow。

修改_config.yml有关部署的配置如下:

1
2
3
4
deploy:
type: git
repository: git@github.com:Username/Username.github.io.git
branch: master

博客根目录下创建.github/workflows/deploy.yml文件,目录结构如下:

1
2
3
4
blog (repository)
└── .github
└── workflows
└── deploy.yml

deploy.yml的内容如下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
name: CI

on:
push:
branches:
- master

jobs:
build:
name: Build on node 12.x and ubuntu-18.04
runs-on: ubuntu-18.04
if: github.event.repository.owner.id == github.event.sender.id

steps:
- name: Checkout
uses: actions/checkout@v2
with:
ref: master

- name: Use Node.js
uses: actions/setup-node@v1
with:
node-version: "12"

- name: Configuration environment
env:
HEXO_DEPLOY_PRI: ${{secrets.HEXO_DEPLOY_PRI}}
run: |
sudo timedatectl set-timezone "Asia/Shanghai"
mkdir -p ~/.ssh/
echo "$HEXO_DEPLOY_PRI" > ~/.ssh/id_rsa
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
ssh-keyscan github.com >> ~/.ssh/known_hosts
git config --global user.name "你的GitHub用户名"
git config --global user.email "你的GitHub注册邮箱"
npm install hexo-cli -g
npm install

- name: Deploy hexo
run: |
hexo clean
hexo deploy

设置完成后,将本地仓库上传到私有仓库blog

1
2
3
4
5
git init
git add .
git commit -m "first commit"
git remote add origin https://github.com/Username/blog.git
git push -u origin main

配置无误的情况下即可在公开仓库中看到静态网页代码。

后续对博客更新时将待更新的文件放在source/_post目录下,然后将更新推送到远程分支即可。


博客部署教程
https://zdawng.github.io/posts/69b496a5/
作者
ZDawnG
发布于
2023年7月1日
许可协议