利用GitHook持续部署Hexo博客

作者: 16643f454ce8 | 来源:发表于2017-07-17 15:25 被阅读157次

    博客原文:https://nmchgx.com/githook-for-hexo-deployment/

    Hexo博客是一款基于Node.js的静态博客框架。

    安装Hexo

    首先确保本地已经安装Node.js

    安装并创建hexo博客

    cd ~
    npm install hexo-cli -g
    hexo init blog
    cd blog
    npm install
    

    安装发布插件

    npm install hexo-deployer-git --save
    

    服务器创建静态博客存储Git仓库

    示例服务器环境:

    • Centos 6.8
    • Git 1.7.1

    创建git用户

    sudo useradd git
    

    创建仓库并附权限

    sudo git init --bare /home/git/hexo-server.git
    sudo chown -R git:git /home/git/hexo-server.git
    

    给git用户附sudo权限

    visudo
    

    在文件最后一行加上

    git ALL=(ALL) NOPASSWD: ALL
    

    给root用户创建ssh-key

    sudo mkdir ~/.ssh
    sudo ssh-keygen
    

    给git用户创建ssh-key

    sudo mkdir /home/git/.ssh
    su git
    cd ~
    ssh-keygen
    

    多用户免密使用Git

    将多用户的ssh-key添加到服务器git用户的authorized_keys

    本地:

    cat ~/.ssh/id_rsa.pub | ssh root@your_host "cat - >> /home/git/.ssh/authorized_keys"
    

    服务器:

    cat ~/.ssh/id_rsa.pub >> /home/git/.ssh/authorized_keys
    cat /home/git/.ssh/id_rsa.pub >> /home/git/.ssh/authorized_keys
    

    创建GitHook

    cd /home/git/hexo-server.git/hooks
    vim post-receive
    

    创建 post-receive

    #!/bin/sh
    cd /var/www/hexo-server
    unset GIT_DIR
    sudo git pull origin master
    

    附权限:

    chmod +x post-receive
    

    服务器克隆部署仓库

    cd /var/www
    su git
    sudo git clone git@localhost:/home/git/hexo-server.git
    

    nginx配置(https协议):

    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配置远程部署仓库

    cd ~/blog
    vim _config.yml
    

    修改 _config.yml :

    deploy:
      type: git
      repository: git@your_host:/home/git/hexo-server.git
      branch: master
    

    发布博客

    hexo generate && hexo deploy
    

    至此可以在实现本地一键发布Hexo博客在私有的服务器了。

    相关文章

      网友评论

        本文标题:利用GitHook持续部署Hexo博客

        本文链接:https://www.haomeiwen.com/subject/lpzfkxtx.html