自建支持hexo的git服务器

我们一般使用github的pages功能来搭建我们的hexo blog,确实挺方便的,直接使用hexo d命令就可以提交文件到github,然后刷新一下就看到新页面了。还可以绑定我们的域名,甚至顶级域名。github还提供了CDN,所以访问速度也不错。
但是用别人总有不爽的地方,比如github有时候会被墙,提交速度很慢或者提交失败,虽然有了CDN,但是节点在澳大利亚,访问速度在晚上高峰时间不尽人意,不爽就折腾一下,于是就尝试使用国内的VPS来架设和github pages一样功能的服务器。

1.安装git server

手头有台百度云的vps,访问速度还不错,装的系统是ubuntu14 64位,先来安装git server。

1
2
3
4
apt-get update
apt-get upgrade
apt-get install git-core
git --verison

看到git version x.x.x,git server就装好了。

2.增加用户,初始化git仓库

不建议直接使用root用户,所以我们新增加一个用户和用户组,并为新用户建立home文件夹。

1
2
3
4
5
6
7
8
9
groupadd git
mkdir /home/blog
useradd -g git -d /home/blog blog
chown -R blog:git blog
su blog
cd /home/blog
git init --bare blog.git
su root
chown -R blog:git blog.git

当我们看到“Initialized empty Git repository in /home/blog/blog.git/”的时候,一个名为blog.git的裸库就建好了。

总结一下使用hexo遇到的一些问题

1.每次执行hexo d需要输入github的账号和密码

在根目录_config.yml配置deploy信息的时候,repo项使用了以”https:”开头的地址
换成git@github.com开头的地址以后就可以SSH登录不用输入账号密码了,例如

1
repo: git@github.com:username/username.github.io.git
2.绑定顶级域名之后每次push都会收到邮件提醒和没有使用CDN访问速度变慢

这篇官方教程上面说要使用A记录绑定,不要使用CNAME,因为可能会带来邮件服务无法使用等问题。
但是绑定后之后会出现两个问题:
1.domain解析到本源,就是github的美国IP,没有使用CDN,访问速度很慢;
2.每次PUSH文件都会收到一个标题“[yourusername.github.io] Page build warning”的邮件,邮件中把顶级域名认定为了subdomain,建议使用CNAME做转发,与教程自相矛盾;
折腾了好久,在account setting里面关了email通知也不行,最后就依了邮件,做了CNAME转发,结果一切正常了。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×