Categorygithub.com/go-atomci/atomci
module
1.5.3
Repository: https://github.com/go-atomci/atomci.git
Documentation: pkg.go.dev

# README

介绍

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

在线体验

在线体验, 非常感谢@liuzilong提供的kubernetes环境(:

账号密码
atomci123456

:

  • 体验帐户为授权用户,不显示“系统管理”的配置页面, 可本地安装完整体验。
  • 因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::appnameatomci应用名
default::httpport8080应用侦听端口
default::runmodedev运行模式dev|prod
default::copyrequestbodytrue是否允许在 HTTP 请求时,返回原始请求体数据字节
日志配置
log::logfilelog/atomci.log日志文件
log::level7日志级别
log::separate["error"]分隔error独立一个文件, 默认是atomci.error.log
DB配置信息
DB::urlroot:root@tcp(127.0.0.1:3306)/atomci?charset=utf8mb4数据库的链接信息
DB::debugfalse是否开启debug
DB::rowsLimit5000
DB::maxIdelConns100
DB::maxOpenConns200
LDAP 配置信息
ldap::hostldap.xxx.com
ldap::port389
ldap::bindDN[email protected]
ldap::bindPasswordXxx..,
ldap::userFilter(samaccountname=%s)
ldap::baseDNOU=Xxx,DC=xx,DC=com
JWT 配置
jwt::secretchangemeforsecurity jwt的加密使用的字段,建议修改

atomci::urlhttp://localhost:8080AtomCI 回调地址 

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author