Hugo 自动部署
文章目录
若是我们将 Hugo 部署/托管到自己的云服务器中的话,每次更新一篇文章或者对自己的博客修改一点点内容之后,我们需要提交代码到 Github,然后登录云服务器,在服务器中从 Github 同步代码,之后手动执行 hugo --baseURL URL
命令来生成静态页面。
这样的一系列操作显得比较复杂、繁琐,而且逼格也不够高,为了简化这些操作,可以参照下面的操作来实现 Hugo 的自动部署。
配置域名解析
首先,你需要拥有一个域名,可以到阿里云、腾讯云等云服务提供商进行购买,然后将域名解析到你需要操作的服务器 IP,关于这方面的知识可以直接在阿里云/腾讯云的域名购买页面中查看到,或自行 Google。
Add SSH key to GitHub
由于后续操作需要下载我们保存在 Github 上的 Hugo 博客源码,所以我们需要将服务器的 SSH key 添加到自己的 Github 账号中,若是托管到 BitBucket 或者 Gitee 等其他地方的,同样需要添加 SSH key。
执行如下命令显示 SSH 公玥并复制到 Github – Settings – SSH and GPS keys – SSH keys – New SSH key 中添加即可,若是提示文件不存在,先执行 ssh-keygen
命令生成一个 SSH key 即可(若提示输入内容,可不管,一路回车使用默认配置)
|
|
Add webhook
在我们的 Github 博客项目当中,选择 Settings -> Webhooks -> Add webhook,其中的 https://gxuamethyst.ink
即为自己博客的域名,这样我们每次提交新的代码/内容之后,都会触发到 https://gxuamethyst.ink/webhook
,若想了解更多关于 Webhook 的知识请自行 Google。
服务器端安装 Hugo
参考本人前一篇博文 Hugo 快速入门
下载安装 Caddy
Caddy服务器(或称Caddy Web)是一个开源的,使用 Golang 编写,支持 HTTP/2 的 Web 服务端。 Caddy 一个显著的特性是默认启用 HTTPS。它是第一个无需额外配置即可提供 HTTPS 特性的 Web 服务器。 Caddy - 维基百科
要下载 Caddy 可以到其官方网站 https://caddyserver.com/download 上进行下载,下载的时候需要选择根据自己的操作系统类别,所需要的插件进行下载,对于插件,我们用到了 http.git, http.hugo, http.minify,以 Ubuntu 16.04 为例,选择完成之后可执行如下命令进行下载安装
|
|
配置 Caddyfile
关于 Caddy 的更多使用介绍这里不多说,可以参考 Caddy 的官方文档或 Google 查找相关内容,下载完成之后我们需要新建一个 Caddy 配置文件供我们的博客网站运行使用。
执行如下命令新建 Caddyfile
文件
|
|
然后根据自己的实际情况,添加如下内容并保存(其中的 hugo@webhook
为添加 Webhook 时填写的 secret key)
|
|
运行 Caddy
执行如下命令运行 Caddy,若无误,此时使用浏览器即可进行访问,否则请根据错误提示到 Google 查找相关内容并解决。
|
|
注意,执行成功之后可能会提示如下的警告
|
|
为了解决这个问题,我们可以执行如下操作修改文件句柄限制
|
|
在 /etc/security/limits.conf
文件中追加如下内容并保存
|
|
Caddy 后台运行/开机自启
在前面的内容中可发现执行 sudo caddy -conf /ect/caddy/Caddyfile
之后无法后台运行,为了将 Caddy 放入后台运行且开机自动启动,我们可以将 Caddy 加入到 systemd
首先,新建 /etc/systemd/system/caddy.service
文件
|
|
添加如下内容并保存
|
|
然后执行如下命令使其生效
|
|
查看 Caddy 是否已在正常运行
|
|
总结
执行完如上的一系列操作配置完成之后,以后每次修改完博客内容并提交到 Github,将会触发 Caddy 自动更新 Github 代码,并使用 Hugo 自动生成静态页面并更新 Web 服务器内容,再也不需要手动进行操作了。
参考
https://gohugo.io/getting-started/installing/
https://github.com/gohugoio/hugo/releases
https://caddyserver.com/download
https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/
https://github.com/Unknwon/wuwen.org/issues/11
文章作者 Gxuamethyst
上次更新 2018-08-13