自动更新博客
自动更新博客
技术栈:Git、Github WebHook、JSch、Docker、Hexo
初衷
我的想法很简单,实现起来也不难。今晚上线。。。
博客是用Hexo搭得,刚好就用上了之前的笔记项目,里边都是.md文件。
之前新写的文章,都需要登上服务器,到Hexo服务下边,git pull,挺麻烦得。
昨天早上看到码云有个Gitee Jenkins Plugin的方案,通过WebHook 触发 Jenkins 进行自动化持续集成。就去Github翻了一遍,果然,项目设置里也有个WebHook ,就它啦,开搞。
基本思路
我们在WebHooks里边配置一个 URL,WebHooks 监听到代码提交时,会触发指定 URL。
我们要做的就是,起个服务,暴露一个 URL,收到请求后,去执行指定脚本即可,以此达到自动更新博客的目的。
本想用 golang 写呢,想到网络编程、Web接口调用不太熟,golang + docker也不熟,就放弃了,下个版本试试吧。
项目地址
Github地址:https://Github.com/AmosWang0626/auto
Java 项目,Spring Boot,WebFlux,Docker,调用脚本使用 JSch,代码很简单。
Docker镜像:
amos0626/autoDocker Hub地址:https://hub.docker.com/r/amos0626/auto
直接使用
- 创建一个
docker-compose.yml
version: '3.5'
services:
auto:
image: amos0626/auto
container_name: auto
ports:
- '8080:8080'
volumes:
- './logs:/root/logs'
environment:
- JSCH_HOST=127.0.0.1
- JSCH_USERNAME=root
- JSCH_PASSWORD=root
- COMMAND=./update.sh自定义参数
名字 备注 默认值 JSCH_HOST 服务器 IP / 域名 127.0.0.1 JSCH_PORT SSH 端口 22 JSCH_USERNAME 用户名 root JSCH_PASSWORD 密码 root COMMAND 要执行的命令 无 测试一哈
POST http://localhost:8080/pull
Content-Type: application/json
{
"ref": "1433233"
}效果图

