vps折腾日记
折腾进行时ing
博主纯小白, 所以大部分时候都在和ai对话执行操作
纯记录向
同步更新博客
饺子醋这一块
因为买了vps自然就要买域名,所以听友人的去spaceship淘了一个数字域名和icu,
一个用来内部七七八八的服务, 一个用来对外的博客和以后瞎折腾的小东西
总之想和别人一样把博客绑定到自己的域名上,虽然github提供了直接自定义域名的方法, 反正不酷.jpg, 最后搜了下有个利用github的webhook的方式, 效果就是本地hexo d后github检测到push和vps说一声, 然后那边自动拉取最新的博客
总之先是安装下webhook
后面的脚本基本是和ai问的了 1
2sudo apt update
sudo apt install -y webhook
因为用的是面板一键操作的, 建站证书都一键了, 没学到啥
接着去网站根目录下git init一下, 顺便设置remote
origin为自己的博客仓库
在写两个脚本, 分别对应监听github的hook和执行脚本
执行脚本deploy-blog.sh 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26#!/bin/bash
# ===== 博客自动部署脚本 =====
# 作用:当 GitHub 推送代码后,自动更新服务器上的博客文件
# 定义变量(请根据你的实际情况修改)
BLOG_DIR="博客存放目录" # 你的博客静态文件存放目录(重要!)
LOG_FILE="log存放目录"
# 开始部署
echo "$(date): 博客部署开始" >> $LOG_FILE
# 进入博客目录
cd $BLOG_DIR || {
echo "$(date): 错误:无法进入目录 $BLOG_DIR" >> $LOG_FILE
exit 1
}
# 拉取最新代码(假设你的博客是通过 Git 管理的)
git pull origin main>> $LOG_FILE 2>&1
# 如果你的博客需要生成(比如 Hexo 在服务器端生成),取消下面两行的注释
# npm install >> $LOG_FILE 2>&1
# npx hexo generate >> $LOG_FILE 2>&1
echo "$(date): 博客部署完成" >> $LOG_FILE
监听配置文件webhook.json 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18[
{
"id": "deploy-blog",
"execute-command": "/opt/webhook-scripts/deploy-blog.sh",
"command-working-directory": "/opt/webhook-scripts",
"response-message": "博客部署任务已触发",
"trigger-rule": {
"match": {
"type": "payload-hmac-sha256",
"secret": "一个密码,在github webhook要用到",
"parameter": {
"source": "header",
"name": "X-Hub-Signature-256"
}
}
}
}
]
接着创建一个service作为系统服务一直运行 1
sudo nano /etc/systemd/system/webhook.service
1 | |
然后启动服务四件套 1
2
3
4sudo systemctl daemon-reload
sudo systemctl enable webhook
sudo systemctl start webhook
sudo systemctl status webhook
然后反代下webhook的服务,
接着去github对应的仓库的setting里找webhook
Payload填自己的webhook地址
xxxxx/hooks/xxxx.sh(对应仓库的执行sh)
密码填之前json里对应的密码
type博主用的是x-www, 反正ai是这么说的
这样一般就好了, 首次设置好github的部分会自动ping一下, 左边打勾了就行,
如果没有就看下github的日志是不是url写错了
或者去vps上看看log sudo tail -f 前面写的log地址,
一般都是没有设置好git或者是没有设置remote origin
博主踩坑的点就是没有设置好git和remote origin, 一般这样就好了 反正是问的ai脚本还在学习
之后同步更新其他仓库就是复制下执行脚本,
然后json里也复制一遍改下id和密码就好了
不过应该不局限于更新博客, 以后再折腾别的