博客原文——如何在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的搭建与其他平台均不相同,因其独有的CI/CD,我们会把博客源码直接托管在GitLab上,由GitLab Pages启动Hexo服务,这样的好处就是当你在多台设备上更新博客时,每台电脑上仅需配置Git即可;缺点是对插件的定制化要麻烦些
最好的教程当然是官方文档GitLab Pages,下面是我一些简单折腾记录
- fork hexo项目(GitLab Pages examples还有其他examples)
- 在项目左侧
Settings->General->Advanced
删除fork关系
将GitLab设置
Settings->Profile->Main settings->Preferred language
修改为简体中文
,可以默认显示中文哟
- 修改项目信息,最好将Project name跟Path均设置为
username.gitlab.io
,不然后续有坑(被坑过,搞了我一晚上原来是这个问题...) - 修改
.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
- 稍等片刻(几分钟),就可以在
https://username.gitlab.io/
页面看到Hexo的Hello World,如果你的Project name跟Path不是username.gitlab.io
,那么请打开https://username.gitlab.io/project_name
,同时要把站点_config.yml
中的root
修改为Project name - 最后把其他平台的内容直接搬运过来即可。将项目
git clone
到本地,拷贝source
和themes
文件夹以及站点_config.yml
进去,再push上去 - 由于是源码直接放在GitLab上,可能存在隐私数据,最好将项目设置为私密
- 在项目左侧
Settings->Pages
中点击New Domain
配置个性化域名,根据提示在域名提供商的DNS解析中配置CNAME
与TXT
,这都是老生常谈了。如果勾选了Force domains with SSL certificates to use HTTPS
则需提供域名证书,方法与上文的Gitee相同
总结
目前用GitLab因其独有的CI/CD,国内外访问速度均可,下一步有精(jin)力(qian)再来搞服务器
博客地址
【2019.04更新】使用CDN加速
折腾了一番后发现,GitLab的访问速度还是不尽人意,而最近(2019.04)GitHub反而更好了,coding也挺快了,但由于在博客中会有一些短视频打开速度超级慢(出于某些原因,不想放B站),所以又折腾了CDN加速...
使用CDN加速你的博客