Hugo
静态网站的部署方案
目标
Hugo
生成静态文件通过web服务器发布
- 实现自动签发
HTTPS
- 实现自动化部署
方案
- 使用
Caddy
作为Hugo
静态网站的服务器
- 通过
Caddy
实现自动签发HTTPS
- 通过
Github Action
实现自动化部署
部署命令的工作目录下结构
├── Caddyfile
├── config
├── data
└── public
Caddyfile
:Caddy
配置文件
config
:Caddy
根据Caddyfile
生成的文件
data
:生成的HTTPS
证书所在目录
public
:Hugo
生成的静态文件
第一步:进入工作目录
# 进入hugo目录内
export HUGO_WORK_DIR=/path/to/hugo-files
cd HUGO_WORK_DIR
第二步:命令行生成Hugo
静态网站内容
# 编译生成静态文件有两种方式,采用其中一个方式即可
# 第一种方式: Docker方式
docker run \
--rm \
-v $(pwd):/src \
-w /src \
klakegg/hugo:0.83.1-ubuntu \
-D
# 第二种方式: hugo命令行方式
hugo -D
第三步:使用Caddy作为静态网站的服务器
配置Caddyfile
:
tech.wychl.com {
root * /var/www
file_server
}
tech.wychl.com
:网站的域名,替换自己的域名即可
root * /var/www
:通过root
指令,配置静态文件存放位置
file_server
:file_server
指令,启动一个web server
部署Hugo静态文件
docker run \
--name tech \
-p 80:80 \
-p 443:443 \
-d \
-v ${PWD}/Caddyfile:/etc/caddy/Caddyfile \
-v ${PWD}/public:/var/www \
-v ${PWD}/config:/config \
-v ${PWD}/data:/data \
-e TZ=Asia/Shanghai \
caddy:2.4.1-alpine
参考文件