README.md

    介绍

    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 回调地址 

    项目简介

    🐳 为中国企业而来,以应用为中心的云原生cicd平台

    发行版本

    当前项目没有发行版本

    贡献者 16

    全部贡献者

    开发语言

    • Go 50.0 %
    • Vue 31.9 %
    • JavaScript 12.8 %
    • CSS 4.2 %
    • SCSS 0.6 %