暴走皮皮虾之代码发布系统,是现代的持续集成发布系统,由后台管理系统和agent两部分组成,一个运行着的agent就是一个节点,本系统并不是造轮子,是"鸟枪"到"大炮"的创新,对"前朝遗老"的革命.

Overview

brand
暴走皮皮虾之代码发布系统,是现代的持续集成发布系统,由后台管理系统和agent两部分组成,一个运行着的agent就是一个节点,本系统并不是造轮子,是"鸟枪"到"大炮"的创新,对"前朝遗老"的革命.

stable license download_count download

特点

  • 基于golang编写,站在巨人肩膀上,充分利用golang的协程,channel还有高并发的特点,甩其它基于虚拟机或者解释性语言编写的发布系统几条街.
  • 极速部署,其实部署是不存在的,本系统只需要下载二进制文件执行即可,想用立刻就能用.
  • GIT仓库支持,可以远程拉取GIT代码发布到集群节点上.
  • 集群发布,一个GIT仓库可以配置发布到N个节点的集群.
  • 命令支持,发布代码的前后,都可以自己定义执行一段系统命令,比如:重启程序.
  • 构建发布,java,c,c++,golang等编写的程序需要先编译"发布包",然后分发"发布包"到节点集群.
  • 封版管理,特有的封版本功能,同时具备封版白名单.公司在一些特殊时期,比如电商公司在某些促销或其它节日活动的时候,为了保证线上服务,往往需要对整个发布代码功能暂停,那么封版功能就十分好用了.
  • 高性能,发布代码的速度极快,对系统环境的要求很低.
  • 跨平台,Linux,windows,mac,树莓派,路由器等等...
  • 人性化的权限控制,一般一个部门的老大是超级管理员角色,老大只需要管理谁是管理员即可,管理员只需要管理用户即可,用户能发布代码.每层的权限系统都做控制.
  • 界面优美,交互简单,更符合现在的大众web审美.
  • 公告功能,有时候有些重要事情需要告知使用发布系统的开发者,那么公告功能就很好的解决了这个问题.
  • 集成外部登录,本系统支持通过外部系统认证用户,比如与公司的LDAP登录融合,只需要根据我们的开发文档花费几十分钟写个HTTP API接口即可.

安装

1. codepub 安装

打开 https://github.com/bzppx/bzppx-codepub/releases 找到对应平台的版本下载编译好的压缩包

# 创建目录
$ mkdir codepub
$ cd codepub
# 以 linux amd64 为例,下载版本 0.8 压缩包
$ wget https://github.com/bzppx/bzppx-codepub/releases/download/v0.8/bzppx-codepub-linux-amd64.tar.gz
# 解压到当前目录
$ tar -zxvf bzppx-codepub-linux-amd64.tar.gz
# 进入程序安装目录
$ cd install
# 执行安装程序,默认端口为 8090,指定其他端口加参数 --port=8087
$ ./install
# 浏览器访问 http://ip:8090 进入安装界面,完成安装配置
# Ctrl + C 停止 install 程序, 启动 codepub 管理后台
$ cd ..
$ ./codepub --conf conf/codepub.conf

2. codepub-agent 安装

请查看 https://github.com/bzppx/bzppx-agent-codepub

3. nginx 配置反向代理

upstream frontends {
    server 127.0.0.1:8088; # codepub 监听的ip:port
}
server {
    listen      80;
    server_name codepub.com www.codepub.com;
    location / {
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_pass http://frontends;
    }
    # 静态资源交由nginx管理
    location /static {
        root        /www/bzppx-codepub; # codepub 的根目录
        expires     1d;
        add_header  Cache-Control public;
        access_log  off;
    }
}

详细文档

系统介绍

1.用户功能

- 用户管理 设置管理员 发布代码 回滚代码 封版 公告管理 项目管理 节点管理
超级管理员
管理员 ×
普通用户 × × × × × ×

2.系统界面,先睹为快

2.1 安装

install

2.2 登录

login

2.2 面板

login

2.3 添加节点

login

2.4 添加项目

login

2.5 发布代码

login

2.6 节点进度

login

开发

环境要求:go 1.8

$ git clone https://github.com/bzppx/bzppx-codepub.git
$ cd bzppx-codepub
$ go build ./

反馈

欢迎提交意见和代码 https://github.com/bzppx/bzppx-codepub/issues 官方交流 QQ 群:547481058

License

MIT

谢谢

Create By BZPPX

Issues
  • 安装失败

    安装失败

    Request Method: GET Request URL: / RemoteAddr: 127.0.0.1 Stack

    /usr/local/go/src/runtime/asm_amd64.s:514 /usr/local/go/src/runtime/panic.go:489 /home/phachon/code/github-go/src/bzppx-codepub/vendor/github.com/astaxie/beego/template.go:73 /home/phachon/code/github-go/src/bzppx-codepub/vendor/github.com/astaxie/beego/controller.go:256 /home/phachon/code/github-go/src/bzppx-codepub/vendor/github.com/astaxie/beego/controller.go:207 /home/phachon/code/github-go/src/bzppx-codepub/vendor/github.com/astaxie/beego/controller.go:187 /home/phachon/code/github-go/src/bzppx-codepub/install/controllers/base.go:53 /home/phachon/code/github-go/src/bzppx-codepub/install/controllers/install.go:21 /usr/local/go/src/runtime/asm_amd64.s:514 /usr/local/go/src/reflect/value.go:434 /usr/local/go/src/reflect/value.go:302 /home/phachon/code/github-go/src/bzppx-codepub/vendor/github.com/astaxie/beego/router.go:816 /usr/local/go/src/net/http/server.go:2568 /usr/local/go/src/net/http/server.go:1825 /usr/local/go/src/runtime/asm_amd64.s:2197

    beego 1.8.3 (beego framework)

    golang version: go1.8.3

    opened by zhang-hang 1
  • 登录后 30分钟就超时退出

    登录后 30分钟就超时退出

    启动: nohup /home/codepub/codepub --conf conf/codepub.conf &

    配置: sessionprovider="file" sessionproviderconfig=".sessions.cp" sessiongcmaxlifetime=72000

    72000 根本不起作用,一边操作 一边过期,并不是等 30 分钟无操作才过期。

    跟 Nginx 反向代理 有关系吗?

    opened by feige2018 0
  • git 仓库过大的问题

    git 仓库过大的问题

    【问题】 经过测试,agent客户端每次部署都是git clone xxxx (不了解具体实现方法,但效果等同),相当于将整个仓库都下载下来,但实际使用到的仅仅是最后一个commit版本,白白浪费了许多空间。

    【改进建议】 git clone --depth=1 xxx 这样可以大大减少部署量,加快部署速度。

    TODO 
    opened by purplegrape 2
  • go build ./  报错

    go build ./ 报错

    ~/go/src/bzppx-codepub (master ✔) ᐅ go build ./

    bzppx-codepub

    ld: warning: text-based stub file /System/Library/Frameworks//IOKit.framework/IOKit.tbd and library file /System/Library/Frameworks//IOKit.framework/IOKit are out of sync. Falling back to library file for linking. ld: warning: text-based stub file /System/Library/Frameworks//Security.framework/Security.tbd and library file /System/Library/Frameworks//Security.framework/Security are out of sync. Falling back to library file for linking.

    opened by chenyongze 1
  • gofmt

    gofmt

    Just ran

    gofmt -w .
    

    on the project root. That's all.

    https://blog.golang.org/go-fmt-your-code


    I made this PR with a project going on over at https://github.com/rotblauer/gofmt-att, and it's definitely a work in progress. So if I got something wrong, or this is annoying at all, please file an issue over there and we'll sort it out.

    opened by whilei 0
Releases(v0.8.4)
Owner
暴走皮皮虾
暴走皮皮虾