23 Star 213 Fork 97

GVPgo-atomci / atomci

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
Apache-2.0

介绍

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   │
└───────────┘           └───────────────────────┘    └──────────┘   └───────────────────────┘

在线体验

在线体验

账号 密码
admin 123456

:

  • 体验帐户为授权用户,不显示“系统管理”的配置页面, 可本地安装完整体验。
  • 因k8s资源有限,部署的服务会定时清理,避免资源过分占用

视频演示

  1. 概述及如何安装部署 视频链接
  2. 介绍及快速开始 视频链接
  3. 5分钟全流程体验 视频链接

快速开始

一键部署最新版本

  1. 准备一台可以正常运行的linux服务器(支持MacOS)
  2. 安装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开发者


已知问题

Issues是本项目唯一的沟通渠道,如果在使用过程中遇到问题,请先查阅文档,如果仍无法解决,请查看相关日志,保存截图信息,给我们提交 issue,我们会及时标记、修复。

AtomCI 因你而变。


AtomCI 用户交流群

可添加 微信Wechat 邀请入群

附录

配置说明

配置项 默认值 说明
default::appname atomci 应用名
default::httpport 8080 应用侦听端口
default::runmode dev 运行模式dev|prod
default::copyrequestbody true 是否允许在 HTTP 请求时,返回原始请求体数据字节
日志配置
log::logfile log/atomci.log 日志文件
log::level 7 日志级别
log::separate ["error"] 分隔error独立一个文件, 默认是atomci.error.log
DB配置信息
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 配置信息
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 配置
jwt::secret changemeforsecurity  jwt的加密使用的字段,建议修改

atomci::url http://localhost:8080 AtomCI 回调地址 
#!/bin/bash # license header added for current workdir for i in $(find ./* -not -path "./vendor/*" -name "*.go"); do file $i |grep -q "symbolic link" isLinkFile=$? if [ $isLinkFile -eq 0 ]; then echo "$i is link file, skip..." fi grep -q "Copyright 2021 The AtomCI Group Authors." $i existLicenseHeader=$? if [ $existLicenseHeader -eq 0 ]; then echo "$i already have license header, skip..."; echo continue fi sed -i '1i \ /*\ Copyright 2021 The AtomCI Group Authors.\ \ Licensed under the Apache License, Version 2.0 (the "License");\ you may not use this file except in compliance with the License.\ You may obtain a copy of the License at\ \ http://www.apache.org/licenses/LICENSE-2.0\ \ Unless required by applicable law or agreed to in writing, software\ distributed under the License is distributed on an "AS IS" BASIS,\ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\ See the License for the specific language governing permissions and\ limitations under the License.\ */\ ' $i; done

简介

为中国企业而来,以应用为中心的云原生cicd平台 - 流水线模板/并行构建/多环境管理/权限控制 - 致力于让中小企业快速落地Kubernetes 展开 收起
取消

发行版 (9)

全部

贡献者

全部

近期动态

加载更多
不能加载更多了
Go
1
https://gitee.com/goatom/atomci.git
git@gitee.com:goatom/atomci.git
goatom
atomci
atomci
master

搜索帮助

14c37bed 8189591 565d56ea 8189591