Gitlab搭建个人博客Hexo
为什么选择Gitlab
之前使用的 Github+Hexo 搭建的个人博客,但是github目前不允许百度蜘蛛的爬取。为了能被百度正常收录,将博客迁移至Gitlab上,Gitlab pages搭建的个人博客可以被百度正常收录。
安装环境
安装Node.js
从 Node.js 官网:https://nodejs.org/en/ 下载软件,按默认选项安装即可。完成安装后打开 cmd ,输入 node -v ,查看版本号。
初始化 hexo 博客
在本地新建一个目录,在该目录下打开cmd 或 git bash ,命令如下:
1 | npm install hexo-cli -g #安装hexo命令行工具 |
初始化安装完成,可以通过本地预览看到博客界面。
部署 hexo 博客到 Gitlab Pages
新建 Gitlab Pages 仓库
注册或登录自己的 Gitlab,新建一个名为 username.gitlab.io 的项目,username 就是用户名,这里与 Github 基本一样。
Gitlab 账号提添加 SSH Key
在 Gitlab 账号设置中,添加本地 ssh 公钥,本地 ssh 密钥对位置:C 盘用户目录下。添加完后设置相应的gitlab信息:
1 | git config --global user.name "your_name" |
对ssh登录进行测试:
1 | ssh -T gitlab@gitlab.com |
hexo 博客源码目录下添加 .gitlab-ci.yml
Github 与Gitlab 不同的一点是:Github上部署博客,是在本地生成静态网页及文件,再推送到github仓库中。Gitlab上部署博客,网页的生成和部署都需要再Gitlab服务器端完成,这里就需要用到 .gitlab-ci.yml 文件来指导 Gitlab 服务器如何处理你提交的源文件。
最新的.gitlab-ci.yml文件官方版本可以从这个仓库中获取:https://gitlab.com/pages/hexo/blob/master/.gitlab-ci.yml
.gitlab-ci.yml 文件如下:
1 | image: node:10.15.3 |
本地源码推送到 Gitlab 仓库
本地 hexo 源码目录:如果不能强制 push 源码,需要到 gitlab 项目设置中关闭分支保护。
1 | git init |
源码推送完成后,Gitlab 会检查 .gitlab-ci.yml 检查通过后,会自动执行脚本生成网页及发布博客。在 CI/CD 选项中可以查看自动化构建的进度。由于 Gitlab 服务器构建速度较慢,所以马上访问可能会出现404错误页面,一般等待几分钟之后重新访问即可。
绑定个人域名
如果自己有域名的话,还以将自己的域名解析到 Gitlab 博客上。因为 Gitlab 提供的是 https 访问,所以需要为自己的域名申请一个 ssl 证书,对于单个域名可以申请免费的证书。腾讯云对单个域名申请有效期1年的免费证书,证书由 亚洲诚信 颁发。
申请方式:登录腾讯云 https://cloud.tencent.com/ ,进入控制台选择产品 ssl证书,按照说明 添加一条TXT解析 即可申请免费证书。
申请到证书后下载并解压,到 Gitlab 仓库中选择左侧面板 settings->pages->new domain。Domain 项填入我们的个人域名,certificate 和 key 分别填写申请到的证书 .crt 和 .key 文件内容,然后点击create new domain。
最后到域名解析控制台添加一条 CNAME 记录,解析指向 username.gitlab.io ,待解析生效后即可使用个人域名访问博客了。