Aitter's Blog

部署Hexo博客到Coding

记录一下在搭建博客中的经验和爬过的坑
个人博客一般部署在Github、Coding或GitFace这样的代码托管平台中,这里使用国内正火的Coding.net平台,以确保博客的访问速度,避免被墙。
在阅读本篇之前,假如你已经掌握了hexo的本地环境搭建、git版本管理工具、coding代码托管平台的基本使用。

Coding准备

新建项目

登陆 Coding ,创建一个新的项目 blog ,获取 SSH 地址

SSH、HTTPS、GIT 三种地址的区别 详情参考官方DOC

  • HTTPS:一般用于自己对他人的项目进行Clone,在进行fetch和push的时候都要输入登陆账号和密码。
  • SSH:用于项目拥有者管理项目,需要在本地预先配置好SSH Key,在fetch和push时不需要输入账号和密码。
  • GIT:用于clone项目,下载速度快,不能进行fetch和push操作。

添加SSH Key

在第一次本地与Coding.net建立关系时,需要设置SHH公钥,生成方法参考 Coding官网教程
生成成功后在Coding的设置里添加新公钥

验证SSH Key 是否添加成功
ssh -T git@coding.net
坑:这种方式不能验证成功,错误提示为:
ssh: connect to host coding.net port 22: Bad file number
解决:很多教程上就是上面的写法,原因是coding最近更改了域名导致以前的方式验证失败,正确的验证命令是
ssh -T git@git.coding.net
成功提示:Coding.net Tips : [Hello coderlt! You've connected to Coding.net by SSH successfully! ]

这样下来,本地的博客代码就可以正常推送到Coding中了,下面做一下hexo的相关配置

Hexo部署

安装插件

使用git推送代码到管理平台,必须先安装hexo的git发布插件
hexo-deployer-git:

npm install hexo-deployer-git --save

修改_config.yml的deploy配置

deploy:
type: git //此处为git,不用修改
repository: https://git.coding.net/codert/blog.git //填入从coding项目中获得的项目SSH地址
branch: master //一般为master

Hexo发布

配置好以上环境后,就可以使用Hexo一键部署了

hexo deploy -g #生成加部署

编译项目文件到 public 文件夹中,并提交到Coding项目blog的mastrer分支中

Coding 演示模式

开启演示Coding演示平台手册
设置好访问域名、应用内存,点击 一键部署,稍等片刻就可以访问自己的博客了
部署成功后,界面如下:

注意:我们部署到Coding上的博客文件,是Hexo编译生成的静态文件,而Coding上对静态文件的项目开启演示有必要条件,项目根目录下必需有StaticFile文件,我们在Hexo博客项目themes\next\source\目录下添加文件StaticFileREADME.MDOWN

部署后自动更新

webhook 介绍

Webhook 允许第三方应用监听 Coding.net 上的特定事件,在这些事件发生时通过 HTTP POST 方式通知( 超时5秒) 到第三方应用指定的 Web URL。 例如项目有新的内容 Push,或是 Merge Request 有更新等。 WebHook 可方便用户实现自动部署,自动测试,自动打包,监控项目变化等。

webhook 配置

在项目中打开设置,菜单选择 webhook, 新建webhook

地址填写blog的演示地址,最后以 /_ 结尾,值可以随意设置一个值hexo

在项目中打开演示,菜单选择 环境变量,添加环境变量, 将刚刚设置的webhook添加上去

重启演示,就可以在本地编译 hexo deploy -g ,Coding中就能自动更新了

我的博客项目演示: http://toggle.coding.io/

Over