将hexo部署到自己的服务器(WebHook实现)

写在开头

总对GitHub、Coding的Page服务不满意,考虑要不要把博客部署到自己的服务器上,于是就有了下面的简单的部署方法。

  • 注:通过宝塔面板实现,不喜勿用。

服务器配置

安装宝塔Linux面板

注:宝塔linux6.0版本是基于centos7开发的,务必使用centos7.x 系统

  • CentOS7.x:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
  • Ubuntu/Deepin:
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
  • Debian:
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh
  • Fedora:
wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh

安装后,请务必记录面板的用户名和密码,登录后进行默认配置,不再阐述。


安装WebHook

软件管理中,安装WebHook 1.0。

生成部署公钥

使用ssh链接到你的服务器。Windows可开启OpenSSH或者xshell软件。

开启OpenSSH

Windows10下,在设置--应用和功能--可选功能--添加功能中,安装openSSH客户端

通过以下命令链接服务器:

ssh [email protected]服务器ip地址

生成公钥

ssh-keygen

默认回车即可。

生成的公钥在服务器的/root/.ssh中。可通过宝塔面板文件较为方便的下载。

这里我们仅需id_ras.pub文件,下载并打开,然后将内容完全复制。

添加WebHook

在宝塔面板的软件管理中,找到WebHook并点击设置--添加。

名称自拟,执行脚本先随便填写,后面会修改。然后点击提交。

点击编辑,将下面的脚本粘贴到框内。第16行为你的GitHub项目

#!/bin/bashecho ""# 输出当前时间date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"echo "Start"# 判断宝塔WebHook参数是否存在if [ ! -n "$1" ];then echo "param参数错误" echo "End" exitfi# git项目路径gitPath="/www/wwwroot/$1"# git 网址gitHttp="http://git.xxxxx.com/$1.git"echo "Web站点路径:$gitPath"# 判断项目路径是否存在if [ -d "$gitPath" ]; then cd $gitPath # 判断是否存在git目录 if [ ! -d ".git" ]; then echo "在该目录下克隆 git" git clone $gitHttp gittemp mv gittemp/.git . rm -rf gittemp fi # 拉取最新的项目文件 git reset --hard origin/master git pull # 设置目录权限 chown -R www:www $gitPath echo "End" exitelse echo "该项目路径不存在" echo "End" exitfi

添加后,查看密钥。


GitHub配置

添加公钥

注:这里就有个前提了,你需要先把hexo部署到github上[手动滑稽]

在你的博客项目中,打开设置,并点击Deploy Keys

然后点击右上角Add deploy key

题目自拟,然后把刚才复制的key粘贴到下面的key中,勾选Allow write access


设置WebHooks

点击WebHooks,添加Webhook。

在URL处填写

http://面板Ip:端口号/hook?access_key=密钥&param=博客网站目录

其中,密钥部分为宝塔配置添加WebHook后的密钥。param为你在面板中创建的博客网站目录。默认在/www/wwwroot/xxxxxx中。

Secret可不填,其他保持默认即可。点击Add webhook


完成

如此配置之后,再部署即能够实时发送到你的服务器上。

hexo g && hexo d

参考:宝塔面板实现Hexo博客自动部署

0
发表评论

相关文章