Caddy+Hexo部署博客

近在学习使用博客系统,部署了WordPress之后发现数据库之类的占用系统的内存太多而自己有并没有什么别的太多的要求,所以就选择了Hexo这个使用内存较少的静态博客框架,而且nginx申请SSL证书也是有时效的,到时候手动更新觉得很麻烦,所以就选择了Caddy来代替,对于基本上没几个人访问的个人博客而言,我觉得应该也够用了。本文主要参照了这篇文章,另外因为我的本地系统是Linux,所以根据自己的需要做了修改。

本地安装

提前需要安装的软件

根据各发行版的包管理器或从软件官网安装好git和node.js ps:遇事不决,谷歌度娘。。。

安装Hexo

打开终端,输入以下命令进行安装:

npm install -g hexo-cli

如果失败的话加上sudo试试,或许有奇效(手动滑稽)。 接下来在本地创建一个Hexo站点:

hexo init blog   // blog可以换成你想要的名字,这就是你的hexo站点所在  
cd blog             //  进入站点目录操作
npm install       // 安装依赖,同样,若是失败的话加上sudo试试

到这里一个hexo站点就安装完成了,接下来我们进行一下预览:

hexo server   // 或 hexo s

这样本地服务器就已经启动了。 打开浏览器输入localhost:4000进行预览,就可以看到页面了。若是对主题不满意的话,可以到官网寻找喜欢的主题更换。 再说几个常用的操作:

hexo clean          // 清除缓存
hexo generate    // 或 hexo g 生成页面
hexo deploy       // 或 hexo d  部署页面

更多的操作还是要去Hexo的官方网站去查询。 另外注意:所有的相关操作是要在hexo生成的博客目录下完成的!

远程部署

准备工作

软件准备

确保sudo、curl、git 和openssh已经安装。

创建git用户

1
2
adduser git
passwd git     // 输入新建用户的登录密码

为了赋予git用户root权限, 编辑/etc/sudoers文件,在

root        ALL=(ALL)      ALL

下面添加

git           ALL=(ALL)       ALL

保存关闭文件。

安装Caddy

进入Caddy官网后,进入Download,选择需要的插件后下载 一般都是使用一键安装的,个人比较推荐这种

1
curl https://getcaddy.com | bash

安装好后,创建文件夹和配置文件:

1
2
mkdir  /etc/caddy
touch /etc/caddy/Caddyfile

然后编辑配置文件:

https://yoursite.com {
    root /path/to/your/blog
    gzip
    tls mail@youremail.com
}

将其中的https://yoursite.com换成你自己的网址,root换成你的博客文件夹的路径(没有就自己建一个)mail@youremail.com换成你自己的邮箱,关闭保存。 对于将Caddy设为启动项,参看这篇文章

配置git

作为git用户登录,初始化git仓库:

1
2
3
4
cd ~
mkdir blog
cd blog
git init --bare

接下来配置hooks钩子,目的是实现本地与云端同步:

1
2
3
cd hooks
touch post-receive
chmod 755 post-receive

编辑post-receive

1
2
3
4
5
6
7
8
#!/bin/bash
GIT_REPO=/home/git/blog
TMP_GIT_CLONE=/tmp/blog
PUBLIC_WWW=/home/www/hexo  # 这个即虚拟主机网站根目录
rm -rf ${TMP_GIT_CLONE}
git clone $GIT_REPO $TMP_GIT_CLONE
rm -rf ${PUBLIC_WWW}/*
cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW}

开始部署

安装部署模块

在本地执行

npm install hexo-deployer-git --save

修改_config.yml文件

相应的配置

url: https://example.com    # 你的博客网址
root: /

hexo部署方式修改

deploy:
    type: git 
    repo: git@example.com:/home/git/blog  # @后面改成你的vps地址ip
    branch: master

正式部署hexo到远程主机

hexo clean
hexo g -d

用浏览器打开你的网址就可以看得到你的hexo博客了,若是出现问题,请根据相应的情况自己排查。。。 ps:还是那句话,遇事不决,谷歌度娘。。。

updatedupdated2021-06-072021-06-07