前言

Caddy 是一个跟 Nginx 类似的 web 服务器,拥有很多强大的特性,这篇文章是关于如何使用 Caddy 的 http.git 插件配合代码托管平台的 webhook 进行自动发布 Web 应用。

Webhook 就是在代码仓库发生某些事件时(如 push, pull, fork等),向所配置的地址发送 post 请求,并带上这次事件的信息。

Github 设置

首先在 Github 上新建一个仓库,在本地新建一个 Vue 项目,将代码提交到 Github,在仓库的 Settings 里面配置 webhook。需要配置一个用于接受 Github 发送 post 请求的地址,一个 secret 以及设置在什么事件的情况下发送请求,默认 push 事件就可以了。

另外需要在 Github 上添加一个服务器的 ssh key,用于在服务器上克隆项目。

服务器配置

首先在服务器上安装 Caddy 下载地址,选择 http.git 插件,其它插件按需即可,然后使用网站上提供的命令安装。

然后为 Caddy 创建一个配置文件,在 /etc 目录下创建 Caddyfile 配置文档, 需要配置两个服务,一个用来接受 Github 发送的 post 请求,一个用来运行打包之后的 web 项目。

http://justcodeit.fun:3001 {root /root/github/vue-caddy-test/dist                     # 打包后应用位置
}http://justcodeit.fun:3002 {git {repo ssh://git@github.com:xrr2016/vue-caddy-test.git  # 仓库地址path /root/github/vue-caddy-test                      # 源码位置hook /webhook vue-caddy-test                          # webhook 配置then npm install                                      # 要执行的命令then npm run build                                    # 要执行的命令then echo done                                        # 要执行的命令}
}
复制代码

使用 Caddy

使用命令启动 caddy,启动后会自动 clone 项目到配置的 path 目录,一切顺利的话,在配置的应用运行地址就可以访问页面了。

然后在本地修改代码提交到 Github,触发 push 事件,Github 向我们配置的地址发送一个 post请求, 服务器接受到这个请求开始执行定义的命令。

caddy --conf /etc/Caddyfile
复制代码

control + c 关闭 Caddy,使用 pm2 就可以将 Caddy 在后台运行了。

pm2 start caddy -n caddy -- -conf /etc/Caddyfile
复制代码

参考

caddy-git

caddy-service

使用 Caddy 自动化发布 Web 应用相关推荐

  1. 使用Ant自动化发布web工程

    <?xml version="1.0" encoding="UTF-8"?> <project name="oprmonitor-u ...

  2. 使用Grunt搭建自动化的web前端开发环境-完整教程

    jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学.不用! AD: jQuery在使用grunt,bootstrap在使用grunt, ...

  3. netcore使用 jenkins + supervisor 实现standalone下多副本自动化发布

    前面的文章聊过用 jenkins 做了一个简单的自动化发布,在shell中采用的是 BUILD_ID=dontKillMe nohup dotnet xxx.dll &  这种简单的后台承载, ...

  4. Maven发布web项目到tomcat

    在java开发中经常要引入很多第三方jar包:然而无论是java web开发还是其他java项目的开发经常会由于缺少依赖包引来一些不必要的异常.常常也是因为这样的原因导致许多简单的缺包和版本问题耗费大 ...

  5. Forefront_TMG_2010-TMG发布Web服务器

    1.环境拓扑图: 2.准备DMZ区域的Web服务器: 安装Web服务器: 在DMZ区域的Web服务器进行测试: 3.TMG发布Web服务器: 打开TMG管理控制台,新建"网站发布规则&quo ...

  6. 在tomcat下创建和发布WEB应用

    在tomcat下创建和发布web应用,对于单纯的jsp程序来说,在apache-tomcat-6.0.016/webapps文件夹下建立一个程序目录,然后将jsp程序放在该目录下即可.比如,在apac ...

  7. 详解VS2012发布web api流程

    VS2012虽然已经十分久远了,但是仍然有一些系统是使用2012开发的. 使用Visual Studio发布系统是一件非常轻松的事情,尤其是使用VS2017,都是一键发布.不过在VS2012下发布we ...

  8. Web Service (二) CXF自动发布Web Service(No Spring)

    Web Service实现目前流行的框架主要有两种,cxf和axis这两个框架,下面是这两个框架的优缺点,我们这个项目中使用的是cxf这个框架,首先看一下没有集成spring的时候是怎么实现远程调用的 ...

  9. Linux上部署web服务器并发布web项目

    近在学习如何在linux上搭建web服务器来发布web项目,由于本人是linux新手,所以中间入了不少坑,搞了好久才搞出点成果. 以下是具体的详细步骤以及我对此做的一些总结和个人的一些见解,希望对跟我 ...

最新文章

  1. 华中农大津田賢一组招植物微生物组、生物信息方向博士后
  2. codevs 1002 搭桥
  3. 转载 http://blog.csdn.net/dengta_snowwhite/article/details/6418384
  4. 股票有风险!切莫因为赚了几百亏了几万
  5. post提交参数过多时,取消Tomcat对 post长度限制
  6. selenium的安装实操-0223
  7. html让一行文字在两行,css单行两行文本自适应问题
  8. Tapestry5之页面显示
  9. 云数据库和本地数据库有什么区别?
  10. plc和计算机语言,PLC的编程语言具体有哪些
  11. 文件及文件夹删除失败的解决方法
  12. 测试一拳多少公斤的软件,李小龙一拳能打出400公斤,手里双节棍有多少力量,测试后难以置信...
  13. 复杂领域的Cynefin模型和Stacey模型
  14. 微信小程序页面跳转失效原因
  15. C#笔试面试宝典值得收藏1
  16. elementui树形组件默认点击第一个字节点
  17. 不同波特率传输时间计算
  18. vulnhub:THOTH TECH:1靶机
  19. plc做45度的正弦值
  20. 磁带机的几种状态??

热门文章

  1. Python学习之使用Python生成PDF报告
  2. 帝国cms调用缩略图和具体文章的方法
  3. 深度解析ASP.NET2.0中的Callback机制
  4. 基于SSM实现保健院管理系统
  5. codevs 1376 帕秋莉•诺蕾姬
  6. 【Vue】component学习笔记
  7. c#_关键字base
  8. opencv 阈值分割 — threshold()
  9. 新浪php面试题目,新浪php的面试题 收集
  10. python中如何创建类的对象_python面向对象中如何建立具体的对象?