解锁高效开发利器——Gitness,助力你的DevOps之旅
在快节奏的软件开发世界中,高效的代码托管和自动化部署是每个开发团队的追求。你是否曾为繁琐的 CI/CD 流程而头疼?是否希望有一个简单易用、功能强大的平台来管理你的代码和流水线?今天,我们为你介绍一款开源神器——Gitness,它将彻底改变你的开发体验。
作为 Drone 和 Gitness 深度定制用户,我还值得很推荐的。
什么是 Gitness
Gitness 是一个集代码托管与自动化 DevOps 流水线于一体的开源开发平台。作为 Drone CI 的下一代产品,Gitness 不仅保留了强大的持续集成(CI)功能,还新增了源代码托管能力,支持本地部署和 Docker 容器化运行。无论是个人开发者还是小型团队,Gitness 都能提供灵活、高效的解决方案。
核心亮点
- 一体化平台:代码托管 + CI/CD 流水线 + 制品库
- 用户友好:提供直观的 UI 界面、REST API,满足不同开发者的使用习惯
- 灵活部署:支持私有化本地部署
- 开源免费:完全开源,社区驱动,适合预算有限的团队(非常适合个人用户)
对比 Drone、Woodpecker
- 目前支持 Runner 有限,仅支持 docker
- 新增的制品库支持的种类相对比较少,常见的 Docker、Helm 是没问题的
- 目前数据库仅支持 PG、Sqlite3
- 流水线
- 日志相比较 v2 仅支持存储到数据库,暂不支持存储到对象存储
- 不支持重复执行(如定时、失败重试)
- 流水线语法变更,相比较 Drone、Woodpecker 等 v2 版本的语法,功能缺少较多,但是满足基本使用
- 代码仓库功能完善,日常使用是没问题
部署
环境变量配置
目前官方文档未提供,需要参考官方文档 harness/harness#config.go
部署
镜像:
harness/harness:unstable
- 国内镜像
ccr.ccs.tencentyun.com/k7scn/harness:unstable
- docker-compose.yaml
services:
gitness:
image: harness/harness:unstable
container_name: gitness
restart: always
ports:
- "3000:3000"
- "3022:3022"
volumes:
- /data/gitness:/data
- /var/run/docker.sock:/var/run/docker.sock
environment:
- GITNESS_DEBUG=true
- GITNESS_TRACE=true
- GITNESS_GIT_TRACE=true
- GITNESS_GIT_DEFAULTBRANCH=master
- GITNESS_WEBHOOK_ALLOW_LOOPBACK=true
- GITNESS_WEBHOOK_ALLOW_PRIVATE_NETWORK=true
- GITNESS_METRIC_ENABLED=false
- GITNESS_PRINCIPAL_ADMIN_UID=ysicing
- GITNESS_PRINCIPAL_ADMIN_DISPLAY_NAME=ysicing
- GITNESS_PRINCIPAL_ADMIN_EMAIL=ysicing@12306.work
- GITNESS_PRINCIPAL_ADMIN_PASSWORD=ysicing
# - GITNESS_SMTP_HOST=
# - GITNESS_SMTP_PORT
# - GITNESS_SMTP_USERNAME
# - GITNESS_SMTP_PASSWORD
# - GITNESS_SMTP_FROM_MAIL
# - GITNESS_SMTP_INSECURE
- GITNESS_GITSPACE_DEFAULT_BASE_IMAGE=ccr.ccs.tencentyun.com/k7scn/base:dev-ubuntu-24.04
- GITNESS_UI_SHOW_PLUGIN=true
- GITNESS_URL_GIT=http://192.168.23.16:3000/git
- GITNESS_URL_UI=http://192.168.23.16:3000
- GITNESS_URL_API=http://192.168.23.16:3000/api
- GITNESS_URL_GIT_SSH=ssh://192.168.23.16
- GITNESS_SSH_ENABLE=true
# - GITFOX_SSH_PORT=3022
# - GITNESS_CI_PARALLEL_WORKERS=2
# - GITNESS_GIT_ROOT
- GITNESS_CI_PLUGINS_ZIP_URL=https://c.ysicing.net/oss/offline/master.zip
部署完成,使用 IP:3000 访问. 账号密码需要使用设置的 GITNESS_PRINCIPAL_ADMIN_UID
和 GITNESS_PRINCIPAL_ADMIN_PASSWORD
目前配置参数过多,稍微配置不对还可能有 bug。针对这个
- 我司会开源 GitFox,基于 Gitness 定制的 fork 版本,一些额外特性功能的补充(企业、与禅道的联动)
- 我个人也维护了一套 Gitness 的魔改版本 Gitless,在上游的版本增加了个人开发者常用的特性(仅从我个人使用)
使用说明
这里简单过一些,后面会专门写一些文章介绍一下。
创建组织
对应其他 Git 服务的组织(ORG/GROUP)
创建仓库
流水线
执行流水线,目前支持部分 drone 插件,基本可以拿来就用如果熟悉 drone 和 gitness 的流水线语法的话
制品仓库
目前支持如下,感觉是借鉴了 Nexus,基本已经覆盖了日常使用。
WebIDE
总结
Gitness 不仅是一款工具,更是开发者高效协作的伙伴。无论你是追求极致效率的个人开发者,还是需要稳定流水线的小型企业团队,Gitness 都能满足你的需求。不过有一说一,目前 Gitness 还是处于快速发展阶段,有 Bug 是正常不过的事,但是基本功能还是没啥问题的。其次他们开源版本支持力度不是那么紧急,更多的还是服务他们的 SAAS 产品。
