Hexo安装
npm install -g hexo //安装完成后,进入到Hexo文件夹目录, 即会自动在目标文件夹建立网站所需要的所有文件。
hexo init //初始化
npm install //安装依赖包
hexo g //生成静态的网页
hexo s //开启本地服务,可以在本地预览
Hexo d //上传生产的文件到配置的服务仓库(见_config.yml)
同时部署到Coding和Github平台
Coding Pages
Coding Pages 是一个免费的静态网页托管和演示服务。
在Coding创建一个和你用户相同项目用来部署你的Hexo 。
同时在代码选项开启的你的 pages服务。分支填写master(这里的分支要和部署时的对应)。
用户 Pages 可以通过{user_name}.coding.me 形式的 URL 直接访问。
官方文档 https://coding.net/help/doc/pages/index.html
Github pages
同样Gtihub也提供了一个 Pages免费服务。 同样你在Github创建一个名为username.github.io的仓库 。用来部署你的Hexo代码。
官方文档 https://pages.github.com/
_config.yml配置
同时部署到2个平台,就要修改博客根目录下面的_config.yml文件中的deploy如下
deploy:
type: git
repo:
github: <repository url>,[branch]
coding: <repository url>,[branch]
Daocloud 自动构建
项目主页:http://daocloud.io
注册账户,选择代码构建,创建应用。选择同步代码来源,我用的是coding平台。
在Blog项目的跟目录添加
Dockerfile
FROM node:slim
MAINTAINER Janrone <[email protected]>
# instal basic tool
RUN apt-get update && apt-get install -y git ssh-client ca-certificates --no-install-recommends && rm -r /var/lib/apt/lists/*
# set time zone
RUN echo "Asia/Shanghai" > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata
RUN npm install
# install hexo
RUN npm install hexo-cli -g
# install hexo server
RUN npm install hexo-server
# set base dir
#RUN mkdir /hexo
# set home dir
#WORKDIR /hexo
EXPOSE 4000
#CMD ["/bin/bash"]
daocloud.yml 注意yml文件的格。
image: daocloud.io/janrone/blog:latest #daocloud/ci-node:0.12
before_script:
- npm config set user 0
- npm config set unsafe-perm true
# 避免出现权限问题
#- npm install hexo-cli -g
# --registry=http://registry.npm.taobao.org 使用淘宝的npm源安装 更快捷
#- npm install
# - git clone https://github.com/luodaoyi/hexo-theme-next.git themes/next
# 克隆主题到主题目录 这里的主题Git地址和目录替换成你自己的主题地址和目录
- mkdir ~/.ssh
# 新建私钥文件夹
- mv .daocloud/id_rsa ~/.ssh/id_rsa
# 移动私钥到私钥文件夹
- mv .daocloud/ssh_config ~/.ssh/config
# 移动ssh配置文件
- chmod 600 ~/.ssh/id_rsa
- chmod 600 ~/.ssh/config
# 赋予可读权限
- eval $(ssh-agent)
# 启用ssh-agent进程
- ssh-add ~/.ssh/id_rsa
# 添加密钥
- rm -rf .daocloud
# 删除项目里面的私钥存放目录
- git config --global user.name "janrone"
- git config --global user.email [email protected]
# 配置git
script:
- hexo clean
- hexo g
- hexo g
# 生成html
- hexo d
# 发布html代码,根据你hexo的设置可以发布到多个平台
- rm -rf ~/.ssh/
# 删除私钥文件夹
大概说一下Dockefile文件和daocloud.yml文件。
Dockerfile是构建docker的配置文件,我选的node环境的基础镜像,并且在构建docker镜像的时候配置好Hexo环境。 所以在之后的持续集成的配置用可以省去hexo环境配置,缩短自动构建的时间。
daocloud.yml是代码持续集成的配置文件,直接使用之前我构建的docker镜像,daocloud.io/janrone/blog:latest ,这样每次集成的时候速度会快很多。 之后是配置ssh,我把私钥放到了项目的.daocloud文件下,并添加了ssh _config,
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
还有我创建Git SSH Key的时候没有没输入密码,这样解决了自动构建的时候提示要输入密码的问题。公钥记得加到coding 和 github 的deploye key里。
根据SSH私钥(private key)计算SSH公钥(public key)
ssh-keygen -y -f ./id_rsa
不然肯定是发布不成功的。
接下来就是正常的 hexo g ,(生成静态文件) ,hexo d (发布静态文件)。我用hexo clean ,是清空了之前生成文件,防止再次生产部分文件是以前的问题。
域名绑定
国内的走coding,海外的走github,只要配置2个CNAME就行。域名解析如下: 注意后边的的小点
ps:不要忘了在项目的跟目录创建一个名字为CNAME的文件,里边就写一行你的域名即可。
不过要放在你的source目录,不然hexo g 重新生成静态文件的时候CNAME会消失。
绑定生效之后可以从这查询下域名解析的结果
http://ping.chinaz.com/
Hexo系列文章,写的很不错,大家可以按着一步一步来。
http://tengj.top/categories/hexo/
参考:hexo干货系列:(四)将hexo博客同时托管到github和coding[](http://tengj.top/2016/03/06/hexo%E5%B9%B2%E8%B4%A7%E7%B3%BB%E5%88%97%EF%BC%9A%EF%BC%88%E5%9B%9B%EF%BC%89%E5%B0%86hexo%E5%8D%9A%E5%AE%A2%E5%90%8C%E6%97%B6%E6%89%98%E7%AE%A1%E5%88%B0github%E5%92%8Ccoding/)
利用coding.和daocloud打造全自动发布的hexo博客[](http://luody.info/post/2016/06/21/coding-daocloud-hexo)