如何在GitHub、GitLab、Gitee、Coding上部署Hexo | 沐雨浥尘

如何在GitHub、GitLab、Gitee、Coding上部署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修改为简体中文,可以默认显示中文哟

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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    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
  5. 稍等片刻(几分钟),就可以在https://username.gitlab.io/页面看到Hexo的Hello World,如果你的Project name跟Path不是username.gitlab.io,那么请打开https://username.gitlab.io/project_name,同时要把站点_config.yml中的root修改为Project name

  6. 最后把其他平台的内容直接搬运过来即可。将项目git clone到本地,拷贝sourcethemes文件夹以及站点_config.yml进去,再push上去
  7. 由于是源码直接放在GitLab上,可能存在隐私数据,最好将项目设置为私密
  8. 在项目左侧Settings->Pages中点击New Domain配置个性化域名,根据提示在域名提供商的DNS解析中配置CNAMETXT,这都是老生常谈了。如果勾选了Force domains with SSL certificates to use HTTPS则需提供域名证书,方法与上文的Gitee相同

总结

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

4.19更新

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

Buy me a cup of coffee