如何在GitHub、GitLab、Gitee、Coding上部署Hexo

博客原文: https://www.zydarchen.top/20190219/24_gitlab_hexo/

起因是近期(近几个月)Coding Pages服务的页面打开速度简直龟速,官方说是资源分配问题以及用户增加之后带宽不够。~~(总觉得是腾讯云的锅)~~以前博客部署在GitHub+Coding,默认线路是Coding,境外IP分配到GitHub,现在不得已另谋出路,就试试目前各大Pages服务提供商

结论先行

目前(2019.02)用GitLab,有条件的自己搭个服务器才是最终解决方案。

免费私有项目 自定义域名 CI/CD 国内访问速度 服务器 Ping
GitHub 是,但私有后无法开启Pages服务 ⭐⭐ 荷兰 167ms
GitLab ⭐⭐⭐ 美国 317ms
Gitee 99/年 ⭐⭐⭐⭐ 湖北 19ms
Coding 香港 3002ms

制表于2019.02.25,Ping数据存在比较大的波动

GitHub

网上教程很多,不用多说了

Coding

参考 hello_blog Q12
跟GitHub差不多,注意在 source/ 下放置空白文件 Staticfile

Gitee

  • 跟GitHub差不多,值得注意的是,项目中有html文件之后,才能在服务中找到 Gitee Pages
  • 一开始有一个月的Gitee Pages Pro试用版,可以个性化域名,到期之后需要支付99/年进行升级
  • 如需配置域名证书,请到域名提供商下载。我的域名在阿里云买的,这里提供阿里云的下载流程
    • 登陆阿里云,进入控制台,左侧选择域名
    • 点选域名,查看域名基本信息,可以看到有一项 免费开启SSL证书
    • 进去之后选择免费的Symantec申请
    • 几分钟之后在证书列表可以看到申请到的证书,下载 其他 得到一个zip文件,里面有后缀 .key 以及 .pem 的两个文件
    • 用文本编辑器打开这两个文件,并复制到Gitee Pages

GitLab

GitLab Pages 搭建Hexo教程

GitLab的搭建与其他平台均不相同,因其独有的CI/CD,我们会把博客源码直接托管在GitLab上,由GitLab Pages启动Hexo服务,这样的好处就是当你在多台设备上更新博客时,每台电脑上仅需配置Git即可;缺点是对插件的定制化要麻烦些
最好的教程当然是官方文档 GitLab Pages ,下面是我一些简单折腾记录

  1. fork hexo项目 GitLab Pages examples 还有其他examples)
  2. 在项目左侧 Settings->General->Advanced 删除fork关系

将GitLab设置 Settings->Profile->Main settings->Preferred language 修改为 简体中文 ,可以默认显示中文哟

  1. 修改项目信息,最好将Project name跟Path均设置为 username.gitlab.io ,不然后续有坑(被坑过,搞了我一晚上原来是这个问题…)
  2. 修改 .gitlab-ci.yml 文件,可以参考我安装的插件
image: node:8.11.2

pages:
cache:
  paths:
  - node_modules/

script:
- npm install hexo-cli -g
# 字数统计
- npm install hexo-symbols-count-time --save
# 搜索
- npm install hexo-generator-searchdb --save
# sitemap
- npm install hexo-generator-sitemap --save
- npm install hexo-generator-baidu-sitemap --save
# 置顶功能
- npm uninstall hexo-generator-index --save
- npm install hexo-generator-index-pin-top --save
# 加密功能
- npm install hexo-blog-encrypt --save
- hexo deploy
artifacts:
  paths:
  - public
only:
- master
  1. 稍等片刻(几分钟),就可以在 https://username.gitlab.io/ 页面看到Hexo的Hello World,如果你的Project name跟Path不是 username.gitlab.io ,那么请打开 https://username.gitlab.io/project_name ,同时要把站点 _config.yml 中的 root 修改为Project name
  2. 最后把其他平台的内容直接搬运过来即可。将项目 git clone 到本地,拷贝 source themes 文件夹以及站点 _config.yml 进去,再push上去
  3. 由于是源码直接放在GitLab上,可能存在隐私数据,最好将项目设置为私密
  4. 在项目左侧 Settings->Pages 中点击 New Domain 配置个性化域名,根据提示在域名提供商的DNS解析中配置 CNAME TXT ,这都是老生常谈了。如果勾选了 Force domains with SSL certificates to use HTTPS 则需提供域名证书,方法与上文的Gitee相同

总结

目前用GitLab因其独有的CI/CD,国内外访问速度均可,下一步有精(jin)力(qian)再来搞服务器
博客地址

4.19更新

折腾了一番后发现,GitLab的访问速度还是不尽人意,而最近(2019.04)GitHub反而更好了,~~coding也挺快了,~~但由于在博客中会有一些短视频打开速度超级慢(出于某些原因,不想放B站),所以又折腾了CDN加速…
使用CDN加速你的博客


版权声明:本文为zydarChen原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。