Morse's Site
760 字
4 分钟
自动化发布你的个人网站(一)
2021-11-14

一年期的服务器到期了, 需要迁移到之前购买的三年器的服务器上, 花了1个小时左右, 迁移完成. 于是我就想着应该总结下我是如何自动化发布我的个人blog的.

用到的技术和网站: “Hugo+Git+Github” , “Drone”, “Caddy”.

Hugo: 静态网站生成工具, 利用它将md文件转为静态网站. Git: 个人Blog的文章使用Git管理. Github: 作为Blog的server端存储. 并利用Github的hock. 触发push callback. Drone: CI/CD工具. 自搭建, 接收Github的hock事件后, pull仓库代码, 根据仓库中的.drone.yml(默认文件名, 可自定义文件名)文件中定义的内容执行. Caddy: http服务器. 优势开箱即用的https证书功能(利用Let’s Encrypt自动申请https证书)

下面说下细节.

Hogo+Git#

Hogo是Go编写的静态网站生成工具. 配合各种好看的Themes, 可以将你的MD文件, 生成各种好看的静态网站.

具体Hogo怎么用. 这里就不细说. 展开的话可以写好几节文章. 这里主要说下我自己怎么用的

基本上配置好Hogo后, 以后每次写文章, 只要把文章放在自己规划好的分类下. 并添加到git版本管理中就好了.

添加到本地git后并push到远端github. 在搭建好自动化的前提下, 就不需要在做什么了, 1分钟左右, 你的网站内容就更新了.

Drone#

Drone是Go编写的自动化发布平台. 个人觉得它的优势在于简单的声明式配置, 就可以完成CI/CD的功能.

这里贴下我的配置文件: .drone.yml.

kind: pipeline
type: docker
name: default

steps:
# CI第一步: 拉取git远端仓库后, 继续拉取git子模块代码. 即hugo的themes
- name: git_submodule
  image: alpine/git
  commands:
  - git submodule init
  - git submodule update
# CI第二步: hugo编译, 生成静态网站文件
- name: build
  image: plugins/hugo
  volumes:
  - name: blog
    path: /path/to/public
  settings:
    output: /path/to/public

# 这里将宿主机的目录挂载到第二步hugo镜像下
# 注意: 这里是挂在宿主机的磁盘路径, 此处将build好的静态文件放在/data/fuxiao.dev/blog下面
volumes:
- name: blog
  host:
    path: /data/fuxiao.dev/blog

可以看到简单声明后, 就完成了CI/CD的配置, 其他交给Drone来做就行了.

Caddy#

开箱即用的Https, 不要太简单…下面是我的Caddyfile文件配置.


fuxiao.dev {
	redir https://www.fuxiao.dev/{uri}
}

www.fuxiao.dev {
  encode gzip zstd
  root * /usr/share/caddy/blog
  file_server
  log {
    output file /data/log/caddy/fuxiao.dev.log {
      roll_size 30MiB
      roll_keep 20
      roll_keep_for 168h
    }
  }
}

drone.fuxiao.dev {
  log {
    output file /data/log/caddy/drone.fuxiao.dev.log {
      roll_size 30MiB
      roll_keep 20
      roll_keep_for 168h
    }
  }
  reverse_proxy 172.17.0.1:8080
}
  • www.fuxiao.dev: 开启fileServer模块, 配置了文件路径(root指令).
  • drone.fuxiao.dev: 开启反向代理功能(reverse_proxy指令)

https根本不用配置, 是不是非常简单, 在腾讯云上申请免费一年的证书还需要各种配置. 这里完全不需要你配置, 开箱即用.

先写到这里, 后面会详细介绍每个工具的使用.

自动化发布你的个人网站(一)
https://fuwari.vercel.app/posts/blogs/auto-delopy-site-1/
作者
Morse Hsiao
发布于
2021-11-14
许可协议
CC BY-NC-SA 4.0