hexo
- Hexo是一个快速,简单和强大的博客框架
架构
本地部分
- 负责博客的建站
安装 git
- 略
安装 node
- 略
安装 hexo
1 | npm install hexo -g # 全局安装 |
建站
1 | hexo init blog # 在当前目录创建blog项目 |
测试
生成一篇文章
1 | hexo new "Hello Hexo" |
在根目录下的 source/_posts 目录中创建”Hello Hexo.md”文件,打开文件并添加内容
编辑完毕后, 使用hexo generate
将 .md
文件渲染成静态文件,然后通过 hexo server
启动服务
1 | hexo g |
打开 http://localhost:4000 预览
配置
- 参考下一篇《hexo配置》
相关命令
FAQ
自动化部署
安装hexo-deployer-git
1 | npm install --save hexo-deployer-git |
修改 hexo 目录下的 _config.yml,找到 deploy,修改为:
1 | deploy: |
服务器部分
- 负责博客静态页面的托管和博客的访问
安装git
- 略
创建裸仓库
- 在 root 账户下创建一个git用户用来管理git仓库
创建git用户
1 | useradd git # 添加一个新用户 |
创建git裸仓库
1 | su git # 切换用户进行后续操作 |
1 | # 在本地试一下能不能把空仓库拉下来,如果能拉下来,说明配置成功。 |
这里需要输入git账户的密码才能拉取成功。如果服务器sshd已经禁止密码登录,这里会拉取失败,需要先开启密码登录,重启sshd服务。
如果服务器修改了 sshd 的默认端口,则本地ssh的config文件中需要给该服务器配置相应的端口
添加 git hooks
1 | # 创建博客静态页面部署目录 |
post-receive 钩子
git用户建立密钥登录
在允许密码登录前提下,在本地执行如下命令
1 | ssh-copy-id git@server_ip # 建立信任关系 |
ssh-copy-id 会自动在git用户的HOME目录
/home/git
下创建.ssh
目录和authorized_keys
文件,设置合适的权限,并把本地的公钥添加进去git 用户的密钥登录成功后,可以退回root账户,修改sshd,禁止密码登录并重启sshd服务
配置 git 用户权限
1 | # root用户下操作 |
禁止 git 用户远程登录
1 | # root用户下操作 |
如果本地 ssh key 发生改变,修改git的 authorized_keys 时会因为上面的改动,导致无法执行shell命令。需按以下步骤修改
将
git
用户的 shell 更改回/bin/bash
:
1 sudo chsh -s /bin/bash git使用
ssh-copy-id
将本地公钥复制到git
用户:
1 ssh-copy-id git@remote_host将
git
用户的 shell 再次更改为/usr/bin/git-shell
:
1 sudo chsh -s /usr/bin/git-shell git
安装nginx
- 安全组要开启 80 和 443 端口
域名解析
- 添加公网IP的A记录,指向博客域名