标签:简单 mail ubuntu VID 权限 check extend word 博客
记录我的博客这次搬家过程。我的博客之前经历过:
现在写博客一直采用?markdown
?语法,所以也是本次可以顺利迁移的一大前提。 最近两年一直用的是?Bitcron?,非常顺滑。每次写完 md 文件,直接保存即可(博客立即更新可见)。不过一直搜索引擎的收录不是很好,如我直接搜索 "Bob Jiang" 我的博客始终排不到第一个。很奇怪......
索性现在申请了一年免费的 google cloud,就做个搬迁。
搬迁之后的博客存储在?google cloud storage?上,DNS也顺便切换到?Cloudfare?上了。 博客系统使用的是?hugo?,主题用的是?Ezhil。博客整体存放于 github上,每次提交到github会自动出发一次 github action,推送到谷歌存储。
博客的工作机制如下:
hugo server
)安装 hugo 可以参考我朋友的博客,免费搭建一个静态博客。搭建完成后,关于主题,这里我采用的?hugo?主题是?Ezhil,可以直接用 github fork一份 hugo 主题。具体操作参考?Ezhil。
hugo和主题都准备好后,目录结构如下:
github上需要创建一个新的仓库 (假设你已经有了github账号)。然后把本地的博客目录中,除了?public/
?目录的内容推送到代码仓库中。
New Repository
README
?文件,如下图:下一步需要创建并配置?谷歌存储 - Google Cloud Storage,然后再回来配置 github secrets
这里我用的谷歌存储,也可以选择国内的阿里云,腾讯云的OSS服务。
谷歌存储 - Google Cloud Storage,需要创建一个存储。 访问 Console 如下图
创建存储,注意:名字必-须是 www.yourdomain.com
?不能设置为根域名(即这里需要是 CNAME 的名字设置bucket名字)。 根域名可以通过 DNS 的设置来实现。
注意存储分区(bucket)名字必须是 CNAME 域名的名字(必须是完全一致),如我的分区名字是?www.bobjiang.com。存储分区不支持直接改名,可以先创建新名字的存储分区,然后把数据转移过去来实现。
访问权限,可以修改为"统一"方式,这样可以简单操作。
下面是为新建的存储分区(bucket)增加访问权限,点击"修改存储分区权限"点击"添加成员"输入 新成员:allUsers, 角色:Storage Object Viewer (要严格检查这里的角色权限)
最后可以检查一下权限的设置,这里应该提示如下:"在互联网上公开"
这里主要设置 服务账号 (service account),为了给其他的第三方进行服务(如接下来我们用 github action 连接)授权。
下一步配置 github secrets
如图创建如下的两个 github secrets:
cat your-json-key.json | base64
Github action的作用是:
新建 github action ,并点击 "set up workflow yourself"
我的 github action 代码如下:
# github action的名字,可以随意改
name: build hugo and deploy to google cloud platform (storage)
# 什么时候调用 action,这里是当 master 上有代码 push 或者 pull request 会触发 github action
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
# 环境变量的设置,下面会用到
env:
GCP_SA_EMAIL: ${{ secrets.GCP_SA_EMAIL }}
GCP_SA_KEY: ${{ secrets.GCP_SA_KEY }}
GCP_BUCKET: www.bobjiang.com
# 任务的准备,用 ubuntu最新的环境
jobs:
setup-deploy:
name: Setup and Deploy
runs-on: ubuntu-latest
steps:
# 检出master分支的代码 checkout
- name: Checkout
uses: actions/checkout@v2
# 准备hugo环境
# hugo ready & build
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2
with:
hugo-version: ‘0.62.2‘
# extended: true
# hugo 编译生成静态网页 public目录内的内容
- run: hugo --minify
# deploy to google storage
# 准备 连接到 google 云
- uses: GoogleCloudPlatform/github-actions/setup-gcloud@master
with:
version: ‘285.0.0‘
project_id: ${{ secrets.GCP_PROJECT_ID }}
service_account_email: ${{ secrets.GCP_SA_EMAIL }}
service_account_key: ${{ secrets.GCP_SA_KEY }}
export_default_credentials: true
# 检查 google 云的连接结果
- run: gcloud info
# 用 gsutil 推送 public 目录内容到谷歌云存储
- run: gsutil -m rsync -d -c -r public gs://$GCP_BUCKET
- run: gsutil -m setmeta -h "Cache-Control:public, max-age=3600" gs://$GCP_BUCKET/**/*.html
- run: gsutil -m setmeta -h "Cache-Control:public, max-age=31536000" gs://$GCP_BUCKET/js/*.js
- run: gsutil -m setmeta -h "Cache-Control:public, max-age=31536000" gs://$GCP_BUCKET/css/*.css
经过本次梳理后,写博客完全是本地操作且可以本地调试。 写博客在 hugo 项目的 content 目录内写 markdown 文件 调试可以用 hugo server 本地访问 http://localhost:1313/
效果满意后,可以把 content 目录内的改动 推送到 github 仓库 后面就是自动化准备环境编译、部署(github action)到谷歌云存储。
所以作为一个业余写手,需要更加关注的是内容产出。
自动化啦......
本文首发于 Bob Jiang的博客 ,转载请联系 Bob Jiang
标签:简单 mail ubuntu VID 权限 check extend word 博客
原文地址:https://www.cnblogs.com/bobjiang/p/12766693.html