Hexo博客是一款基于Node.js的静态博客框架。
安装Hexo
首先确保本地已经安装Node.js。
安装并创建hexo博客
1 2 3 4 5
| cd ~ npm install hexo-cli -g hexo init blog cd blog npm install
|
安装发布插件
1
| npm install hexo-deployer-git --save
|
服务器创建静态博客存储Git仓库
示例服务器环境:
创建git用户
创建仓库并附权限
1 2
| sudo git init --bare /home/git/hexo-server.git sudo chown -R git:git /home/git/hexo-server.git
|
给git用户附sudo权限
在文件最后一行加上
1
| git ALL=(ALL) NOPASSWD: ALL
|
给root用户创建ssh-key
1 2
| sudo mkdir ~/.ssh sudo ssh-keygen
|
给git用户创建ssh-key
1 2 3 4
| sudo mkdir /home/git/.ssh su git cd ~ ssh-keygen
|
多用户免密使用Git
将多用户的ssh-key添加到服务器git用户的authorized_keys
本地:
1
| cat ~/.ssh/id_rsa.pub | ssh root@your_host "cat - >> /home/git/.ssh/authorized_keys"
|
服务器:
1 2
| cat ~/.ssh/id_rsa.pub >> /home/git/.ssh/authorized_keys cat /home/git/.ssh/id_rsa.pub >> /home/git/.ssh/authorized_keys
|
创建GitHook
1 2
| cd /home/git/hexo-server.git/hooks vim post-receive
|
创建 post-receive
:
1 2 3 4
| #!/bin/sh cd /var/www/hexo-server unset GIT_DIR sudo git pull origin master
|
附权限:
服务器克隆部署仓库
1 2 3
| cd /var/www su git sudo git clone git@localhost:/home/git/hexo-server.git
|
nginx配置(https协议):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| server { listen 443 ssl http2;
server_name your_host; server_tokens off;
ssl_certificate /var/www/ssl/chained.pem; ssl_dhparam /var/www/ssl/dhparams.pem;
location / { root /var/www/hexo-server/; index index.html index.htm; } }
server { listen 80; server_name your_host;
return 301 https://$host$request_uri; }
|
本地Hexo配置远程部署仓库
1 2
| cd ~/blog vim _config.yml
|
修改 _config.yml
:
1 2 3 4
| deploy: type: git repository: git@your_host:/home/git/hexo-server.git branch: master
|
发布博客
1
| hexo generate && hexo deploy
|
至此可以在实现本地一键发布Hexo博客在私有的服务器了。