{"id":13820221,"url":"https://github.com/go-atomci/atomci","last_synced_at":"2025-04-12T15:38:13.677Z","repository":{"id":37959572,"uuid":"425725303","full_name":"go-atomci/atomci","owner":"go-atomci","description":"🐳 为中国企业而来，以应用为中心的云原生cicd平台","archived":false,"fork":false,"pushed_at":"2025-03-29T10:36:49.000Z","size":7161,"stargazers_count":217,"open_issues_count":41,"forks_count":52,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-03T15:11:52.052Z","etag":null,"topics":["cd","cicd","continous-deployment","continuous-delivery","continuous-integration","devops","golang","jenkins","jenkins-pipeline","kubernetes"],"latest_commit_sha":null,"homepage":"https://go-atomci.github.io/atomci-press/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/go-atomci.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-08T06:40:37.000Z","updated_at":"2025-03-29T10:36:54.000Z","dependencies_parsed_at":"2024-01-13T16:22:55.960Z","dependency_job_id":"a193e0cc-5343-43ce-81ba-e01f9fb53dab","html_url":"https://github.com/go-atomci/atomci","commit_stats":{"total_commits":245,"total_committers":15,"mean_commits":"16.333333333333332","dds":0.4571428571428572,"last_synced_commit":"206f8402ca9ddbf740abdf9275eeace77b4c93a4"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/go-atomci%2Fatomci","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/go-atomci%2Fatomci/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/go-atomci%2Fatomci/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/go-atomci%2Fatomci/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/go-atomci","download_url":"https://codeload.github.com/go-atomci/atomci/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248590568,"owners_count":21129849,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cd","cicd","continous-deployment","continuous-delivery","continuous-integration","devops","golang","jenkins","jenkins-pipeline","kubernetes"],"created_at":"2024-08-04T08:00:59.661Z","updated_at":"2025-04-12T15:38:13.639Z","avatar_url":"https://github.com/go-atomci.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# \u003ca href=\"https://go-atomci.github.io/atomci-press/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eAtomCI\u003c/a\u003e\n\n\u003ca href=\"https://goreportcard.com/report/github.com/go-atomci/atomci\"\u003e\u003cimg src=\"https://goreportcard.com/badge/github.com/go-atomci/atomci\" alt=\"A+\"\u003e\u003c/a\u003e\n[![Release](https://img.shields.io/github/release/go-atomci/atomci.svg)](https://github.com/go-atomci/atomci/releases/)\n[![codecov](https://codecov.io/gh/go-atomci/atomci/branch/master/graph/badge.svg?token=VPJGT3405P)](https://codecov.io/gh/go-atomci/atomci)\n[![docker_pulls](https://img.shields.io/docker/pulls/colynn/atomci.svg)](https://hub.docker.com/r/colynn/atomci/)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/go-atomci/atomci/blob/master/LICENSE)\n\n[文档](https://go-atomci.github.io/atomci-press) | [在线体验](http://106.15.124.155) | [Releases](https://github.com/go-atomci/atomci/releases/)\n\u003c/div\u003e\n\n# 介绍\n\nAtomCI 一款云原生CICD平台，致力于让中小企业快速落地Kubernetes，支持k8s/reigstry/jenkins/代码源的轻松集成，高并发的流水线，云原生yaml支持，多环境灵活管理，权限控制等, 代码均已开源, __您的star__ 是我们开源的动力，非常感谢（：\n\n* github: \u003chttps://github.com/go-atomci/atomci\u003e\n* gitee: \u003chttps://gitee.com/goatom/atomci\u003e\n\n## 为什么选择 atomci\n\n* 多代码源轻松集成（ gitlab/gihub/gitee/gitea/gogs ）\n* 强大的服务集成（不论是阿里云 /腾讯云，还是自建 k8s ；不管是自建 harbor 还是公有镜像仓库；均可以轻松集成）\n* 流水线灵活自定义\n* 支持原生的 yaml 应用编排\n* 环境灵活新增 /删除\n* 部署方式简单\n* 更多期待你的体验...\n\n## 架构图\n\n```sh\n┌─────────┐\n│         │\n│ Git Scm ├──────┐      ┌───────────────────────┐    ┌──────────┐   ┌───────────────────────┐\n│         │      │      │ AtomCI                │    │          │   │                       │\n└─────────┘      │      │                       │    │          │   │  ┌────────────────┐   │\n                 │      │      Frontend (Vue)   │    │          │   │  │ jnlp-agent pod1│   │\n                 ├──────►                       ├────►          │   │  └────────────────┘   │\n┌──────────┐     │      │                       │    │          ├───►                       │\n│          │     │      │      Backend (Go)     ◄────┤  Jenkins │   │  ┌────────────────┐   │\n│ Registry ├─────┤      │                       │    │          │   │  │ jnlp-agent pod2│   │\n│          │     │      │                       │    │          │   │  └────────────────┘   │\n└──────────┘     │      └──────────┬────────────┘    │          │   │        ....           │\n                 │                 │                 │          │   │  ┌────────────────┐   │\n┌───────────┐    │      ┌──────────┴────────────┐    ├──────────┤   │  │ jnlp-agent podn│   │\n│           │    │      │                       │    │k8s/docker│   │  └────────────────┘   │\n│ Kubernetes│    │      │        MySQL          │    │   or     │   │                       │\n│           ├────┘      │                       │    │ warfile  │   │ agent on kubernetes   │\n└───────────┘           └───────────────────────┘    └──────────┘   └───────────────────────┘\n```\n\n## 在线体验\n\n\u003e 体验环境已下线，如有需要请参照文档自行部署，也可参看[视频链接](https://www.bilibili.com/video/BV18F411a7Rk/)\n\n## 视频演示\n\n1. 概述及如何安装部署 [视频链接](https://www.bilibili.com/video/BV1qq4y1N7mZ/)\n2. 介绍及快速开始 [视频链接](https://www.bilibili.com/video/BV1K3411m78Q/)\n3. 5分钟全流程体验 [视频链接](https://www.bilibili.com/video/BV18F411a7Rk/)\n\n# 快速开始\n\n## 一键部署最新版本\n\n1. 准备一台可以正常运行的linux服务器（支持MacOS）\n2. 安装Docker 和 Docker Compose\n\n```sh\ncurl -sSL https://raw.githubusercontent.com/go-atomci/atomci/master/deploy/docker-compose/quick_start.sh | bash\n```\n\n## 如何本地运行\n\n### 前置条件\n\n* go `1.18`+\n* node `v14.20.0`\n* yarn `v1.22.5`\n* mysql `5.7`\n\n### 创建数据库\n\n```sh\n\u003e create database atomci character set utf8mb4;\n```\n\n### 修改配置\n\n```conf\n# conf/app.conf\n[DB]\nurl = root:root@tcp(127.0.0.1:3306)/atomci?charset=utf8mb4\n\n[notification]\ndingEnable = 1 # 启用钉钉通知；0：不启用，1：启用\nding = 钉钉机器人\n\nmailEnable = 1 # 启用邮件通知；0：不启用，1：启用\nsmtpHost = SMTP服务器\nsmtpPort = 465\nsmtpAccount = 邮件账号\nsmtpPassword = 邮件密码\n```\n\n\u003e 注: 对于`[ldap]`,`[jwt]`, `[atomci]`可以参照附录-『配置说明』进行修改\n\n### 启动后端\n\n```sh\n# linux/mac环境\n$ make run  \n\n# windowns环境，或是没有make命令\n$ go build -o atomci  cmd/atomci/main.go; ./atomci\n```\n\n### 启动前端\n\n```sh\n$ cd web\n# 安装依赖\n$ yarn install  #仅首次运行时需要执行  \n# 运行\n$ yarn run dev\n```\n\n### 访问\n\n```sh\n# 默认用户名/密码 admin/123456\nhttp://your-ip:8081\n```\n\n## 如何构建镜像\n\n### 前端\n\n```sh\n$ cd web\n$ pwd\n# ./atomci/web/\n$ cd web ; docker build . \n```\n\n### 后端\n\n```sh\n$ pwd\n# ./atomci\n$ docker build .\n```\n\n\u003e 如果你使用 [`docker-compsoe`](https://go-atomci.github.io/atomci-press/install/02docker-compose.html)方式部署的话，可以通过替换镜像地址的方式，即可使用`master`分支的最新代码．\n\n贡献代码\n===============\n\n可查阅`AtomCI`的[项目计划](https://github.com/go-atomci/atomci/issues)，在对应issues中回复认领，或者直接提交PR，感谢你对AtomCI的贡献  \n贡献包括但不限于以下方式：\n* [帮助文档](https://github.com/go-atomci/atomci-press)\n* Bug修复\n* 新功能提交\n* 代码优化\n* 测试用例完善\n\n请参阅[Contribution Guide](https://github.com/go-atomci/atomci/blob/master/CONTRIBUTING.md) 获取更多的信息．\n\n# 互动交流\n\n## AtomCI开发者\n\n\u003ca href=\"https://github.com/go-atomci/atomci/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=go-atomci/atomci\" /\u003e\n\u003c/a\u003e\n\n---\n\n### 已知问题\n\n[Issues](https://github.com/go-atomci/atomci/issues)是本项目唯一的沟通渠道，如果在使用过程中遇到问题，请先查阅文档，如果仍无法解决，请查看相关日志，保存截图信息，给我们提交\n[issue](https://github.com/go-atomci/atomci/issues/new)，我们会及时标记、修复。\n\n__AtomCI__ 因你而变。\n\n---\n\n# 附录\n\n## 配置说明\n\n| 配置项  | 默认值  | 说明  |\n|---|---|---|\n| `default::appname` | atomci | 应用名 |\n| `default::httpport` | 8080 | 应用侦听端口|\n| `default::runmode` | dev | 运行模式`dev`\\|`prod` |\n| `default::copyrequestbody` | true | 是否允许在 HTTP 请求时，返回原始请求体数据字节 |\n| 日志配置 \u003cbr/\u003e |\n|`log::logfile`| log/atomci.log | 日志文件 |\n|`log::level`| 7 | 日志级别 |\n|`log::separate`| [\"error\"] | 分隔error独立一个文件, 默认是`atomci.error.log` |\n| DB配置信息 \u003cbr/\u003e |\n| `DB::url` | root:root@tcp(127.0.0.1:3306)/atomci?charset=utf8mb4  | 数据库的链接信息  |\n|`DB::debug`| false | 是否开启debug |\n|`DB::rowsLimit`| 5000 | |\n|`DB::maxIdelConns`| 100 | |\n|`DB::maxOpenConns`| 200 | |\n| LDAP 配置信息 \u003cbr/\u003e\n|`ldap::host`| ldap.xxx.com | |\n|`ldap::port`| 389 | |\n|`ldap::bindDN`| ldap@xx.com | |\n|`ldap::bindPassword`| Xxx.., | |\n|`ldap::userFilter`| (samaccountname=%s) | |\n|`ldap::baseDN`| OU=Xxx,DC=xx,DC=com | |\n| JWT 配置 \u003cbr/\u003e|\n|`jwt::secret`| changemeforsecurity |　jwt的加密使用的字段，建议修改 |\n|\u003cbr/\u003e|\n|`atomci::url`| \u003chttp://localhost:8080\u003e | AtomCI 回调地址　|\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgo-atomci%2Fatomci","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgo-atomci%2Fatomci","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgo-atomci%2Fatomci/lists"}