Awesome
<div align="center"><a href="https://go-atomci.github.io/atomci-press/" target="_blank" rel="noopener noreferrer">AtomCI</a>
<a href="https://goreportcard.com/report/github.com/go-atomci/atomci"><img src="https://goreportcard.com/badge/github.com/go-atomci/atomci" alt="A+"></a>
</div>介绍
AtomCI 一款云原生CICD平台,致力于让中小企业快速落地Kubernetes,支持k8s/reigstry/jenkins/代码源的轻松集成,高并发的流水线,云原生yaml支持,多环境灵活管理,权限控制等, 代码均已开源, 您的star 是我们开源的动力,非常感谢(:
为什么选择 atomci
- 多代码源轻松集成( gitlab/gihub/gitee/gitea/gogs )
- 强大的服务集成(不论是阿里云 /腾讯云,还是自建 k8s ;不管是自建 harbor 还是公有镜像仓库;均可以轻松集成)
- 流水线灵活自定义
- 支持原生的 yaml 应用编排
- 环境灵活新增 /删除
- 部署方式简单
- 更多期待你的体验...
架构图
┌─────────┐
│ │
│ Git Scm ├──────┐ ┌───────────────────────┐ ┌──────────┐ ┌───────────────────────┐
│ │ │ │ AtomCI │ │ │ │ │
└─────────┘ │ │ │ │ │ │ ┌────────────────┐ │
│ │ Frontend (Vue) │ │ │ │ │ jnlp-agent pod1│ │
├──────► ├────► │ │ └────────────────┘ │
┌──────────┐ │ │ │ │ ├───► │
│ │ │ │ Backend (Go) ◄────┤ Jenkins │ │ ┌────────────────┐ │
│ Registry ├─────┤ │ │ │ │ │ │ jnlp-agent pod2│ │
│ │ │ │ │ │ │ │ └────────────────┘ │
└──────────┘ │ └──────────┬────────────┘ │ │ │ .... │
│ │ │ │ │ ┌────────────────┐ │
┌───────────┐ │ ┌──────────┴────────────┐ ├──────────┤ │ │ jnlp-agent podn│ │
│ │ │ │ │ │k8s/docker│ │ └────────────────┘ │
│ Kubernetes│ │ │ MySQL │ │ or │ │ │
│ ├────┘ │ │ │ warfile │ │ agent on kubernetes │
└───────────┘ └───────────────────────┘ └──────────┘ └───────────────────────┘
在线体验
在线体验:
账号 | 密码 | 备注 |
---|---|---|
atomci | atomci123456 | 角色为developer, 已移除admin的体验权限 |
注:
- 体验帐户为授权用户,不显示“系统管理”的配置页面(且当前环境未配置k8s资源及jenkins资源),
- 想体验管理员角色可 本地docker安装 完整体验,也可参看视频链接
视频演示
快速开始
一键部署最新版本
- 准备一台可以正常运行的linux服务器(支持MacOS)
- 安装Docker 和 Docker Compose
curl -sSL https://raw.githubusercontent.com/go-atomci/atomci/master/deploy/docker-compose/quick_start.sh | bash
如何本地运行
前置条件
- go
1.18
+ - node
v14.20.0
- yarn
v1.22.5
- mysql
5.7
创建数据库
> create database atomci character set utf8mb4;
修改配置
# conf/app.conf
[DB]
url = root:root@tcp(127.0.0.1:3306)/atomci?charset=utf8mb4
[notification]
dingEnable = 1 # 启用钉钉通知;0:不启用,1:启用
ding = 钉钉机器人
mailEnable = 1 # 启用邮件通知;0:不启用,1:启用
smtpHost = SMTP服务器
smtpPort = 465
smtpAccount = 邮件账号
smtpPassword = 邮件密码
注: 对于
[ldap]
,[jwt]
,[atomci]
可以参照附录-『配置说明』进行修改
启动后端
# linux/mac环境
$ make run
# windowns环境,或是没有make命令
$ go build -o atomci cmd/atomci/main.go; ./atomci
启动前端
$ cd web
# 安装依赖
$ yarn install #仅首次运行时需要执行
# 运行
$ yarn run dev
访问
# 默认用户名/密码 admin/123456
http://your-ip:8081
如何构建镜像
前端
$ cd web
$ pwd
# ./atomci/web/
$ cd web ; docker build .
后端
$ pwd
# ./atomci
$ docker build .
如果你使用
docker-compsoe
方式部署的话,可以通过替换镜像地址的方式,即可使用master
分支的最新代码.
贡献代码
可查阅AtomCI
的项目计划,在对应issues中回复认领,或者直接提交PR,感谢你对AtomCI的贡献
贡献包括但不限于以下方式:
- 帮助文档
- Bug修复
- 新功能提交
- 代码优化
- 测试用例完善
请参阅Contribution Guide 获取更多的信息.
互动交流
AtomCI开发者
<a href="https://github.com/go-atomci/atomci/graphs/contributors"> <img src="https://contrib.rocks/image?repo=go-atomci/atomci" /> </a>已知问题
Issues是本项目唯一的沟通渠道,如果在使用过程中遇到问题,请先查阅文档,如果仍无法解决,请查看相关日志,保存截图信息,给我们提交 issue,我们会及时标记、修复。
AtomCI 因你而变。
AtomCI 用户交流群
可添加 微信 邀请入群
给我鼓励
附录
配置说明
配置项 | 默认值 | 说明 |
---|---|---|
default::appname | atomci | 应用名 |
default::httpport | 8080 | 应用侦听端口 |
default::runmode | dev | 运行模式dev |prod |
default::copyrequestbody | true | 是否允许在 HTTP 请求时,返回原始请求体数据字节 |
日志配置 <br/> | ||
log::logfile | log/atomci.log | 日志文件 |
log::level | 7 | 日志级别 |
log::separate | ["error"] | 分隔error独立一个文件, 默认是atomci.error.log |
DB配置信息 <br/> | ||
DB::url | root:root@tcp(127.0.0.1:3306)/atomci?charset=utf8mb4 | 数据库的链接信息 |
DB::debug | false | 是否开启debug |
DB::rowsLimit | 5000 | |
DB::maxIdelConns | 100 | |
DB::maxOpenConns | 200 | |
LDAP 配置信息 <br/> | ||
ldap::host | ldap.xxx.com | |
ldap::port | 389 | |
ldap::bindDN | ldap@xx.com | |
ldap::bindPassword | Xxx.., | |
ldap::userFilter | (samaccountname=%s) | |
ldap::baseDN | OU=Xxx,DC=xx,DC=com | |
JWT 配置 <br/> | ||
jwt::secret | changemeforsecurity | jwt的加密使用的字段,建议修改 |
<br/> | ||
atomci::url | http://localhost:8080 | AtomCI 回调地址 |