# Goal-Piplin
这是一款基于 Go 和 Goal Framework 开发的前后端分离的部署工具。
前端: https://github.com/qbhy/goal-piplin-views
后端: https://github.com/qbhy/goal-piplin
> 疯狂求 star ✨✨✨
## 前言
以前部署工具一直用的都是基于 laravel 开发的 [Piplin]( https://github.com/piplin/piplin) ,但是由于它已经好久没更新了,甚至 PR 也没有处理,显然已经被荒废了,而 PHP 生态一直在更新,最终导致我放弃了 Piplin 。而且我自己开发了一个 Golang 框架,刚好可以写一个 Go 版本的 Piplin 来丰富 Goal 的生态,于是乎我写了个这个项目。
## 有啥功能
一般的部署工具有的功能都有,项目分组、自定义脚本、配置文件、共享文件等都是支持的。
* 一键部署(调用 POST 接口部署)
* 服务器组(服务器组和项目是多对多的关系)
* 支持协作(就是项目和分组可以邀请别人一起操作和部署)
## 安装
克隆代码
````bash
git clone https://github.com/qbhy/goal-piplin.git
````
使用 docker compose 启动服务(包括 mysql 、redis 、views 和 server )
````bash
docker compose up -d
````
执行迁移
````bash
docker compose exec server /var/www/piplin migrate
````
初始化用户和密钥
````bash
docker compose exec server /var/www/piplin init
````
> 默认账号为 piplin ,密码为 password
nginx 配置
````bash
cp nginx.conf /etc/nginx/site-enabled/piplin.conf
````
> 这一步可以根据自己的需要修改路径和 piplin.conf
## 更新
如果 Goal-Piplin 有更新,会自动打包和推送最新镜像到 docker 仓库中,此时您只需要在你的 Goal-Piplin 目录执行以下命令即可
```bash
make update
```
## 使用
#### 创建项目
可以选择已有密钥或者新建密钥
![]( https://cdn.learnku.com/uploads/images/202405/05/6822/gH8hKzIlwC.png!large)
### 将公钥上传到 git 仓库中
通常添加到部署公钥中即可
![五一没事做,用 Go 写了个简单实用的部署工具,大伙来看看吧]( https://cdn.learnku.com/uploads/images/202405/05/6822/OtboVqcorc.png!large)
github 举例
![五一没事做,用 Go 写了个简单实用的部署工具,大伙来看看吧]( https://cdn.learnku.com/uploads/images/202405/05/6822/L4BJ4lyfea.png!large)
### 添加环境
![五一没事做,用 Go 写了个简单实用的部署工具,大伙来看看吧]( https://cdn.learnku.com/uploads/images/202405/05/6822/sqWMdZwysW.png!large)
添加环境后需要配置环境对应的服务器或者机柜
![五一没事做,用 Go 写了个简单实用的部署工具,大伙来看看吧]( https://cdn.learnku.com/uploads/images/202405/05/6822/dF5UYJi1sZ.png!large)
### 将公钥添加到对应的服务器中
配置好服务器后,要把项目公钥添加到所有服务器的 `~/.ssh/authorized_keys` 中
```bash
echo '公钥' >> ~/.ssh/authorized_keys
```
### 其他配置
根据需求配置脚本、配置文件、共享目录等配置。
![五一没事做,用 Go 写了个简单实用的部署工具,大伙来看看吧]( https://cdn.learnku.com/uploads/images/202405/05/6822/Y0XCcfmgBV.png!large)
![五一没事做,用 Go 写了个简单实用的部署工具,大伙来看看吧]( https://cdn.learnku.com/uploads/images/202405/05/6822/pleseHyA2g.png!large)
![五一没事做,用 Go 写了个简单实用的部署工具,大伙来看看吧]( https://cdn.learnku.com/uploads/images/202405/05/6822/SDWJbduX9y.png!large)
### 开始部署
选择环境和分支(或者 tag 、commit )即可进行部署,还可以一键复制 curl 命令进行部署
![五一没事做,用 Go 写了个简单实用的部署工具,大伙来看看吧]( https://cdn.learnku.com/uploads/images/202405/05/6822/LQ6YzVg59i.png!large)
## 参与项目
您可以直接给项目提交 PR 或者 issue 参与到项目中来,也可以直接 QQ 扫码加入到交流群中提出你宝贵的建议或者意见。
![五一没事做,用 Go 写了个简单实用的部署工具,大伙来看看吧]( https://cdn.learnku.com/uploads/images/202405/05/6822/gxDxNjwknZ.png!large)
> 如果加群失败可以加我微信 qbhy0715 拉你进群
有疑问加站长微信联系(非本文作者))