【GitHub项目推荐--Harness:一体化的开源 DevOps 平台】⭐

简介

Harness (原名 Gitness)是一个由 Harness Inc. ​ 开源的端到端开发者平台(Apache 2.0 协议)。它集成了源码托管(SCM)、CI/CD 流水线、托管开发环境(Gitspaces)和制品注册表四大核心能力,旨在为开发团队提供一个"All-in-One"的 DevOps 解决方案。

该项目由知名 CI/CD 工具 Drone​ 的原团队打造,你可以将其理解为 Drone 的"超级进化版"。它不仅继承了 Drone 强大的自动化能力,更扩展了完整的 Git 服务、类 Vercel 的预览环境以及容器镜像管理功能,支持在本地或私有云上构建完整的软件交付生命周期。

主要功能

  1. 源码托管(Git SCM)

    • 提供完整的 Git 服务器功能,支持代码仓库管理、分支保护规则、Pull Request 评审。

    • 内置代码浏览与搜索,无需依赖 GitHub 或 GitLab 即可实现企业级代码管理。

  2. CI/CD 流水线

    • 基于 YAML 定义自动化流程,支持构建、测试、安全扫描和部署。

    • 无缝集成 Docker,支持容器化构建与运行,提供实时的流水线日志与状态监控。

  3. Gitspaces(托管开发环境)

    • 提供类似 GitHub Codespaces 的云端开发环境,支持预配置的开发容器(Dev Container)。

    • 开发者可通过浏览器或本地 IDE 连接,获得一致的开发体验,快速进行代码调试与预览。

  4. Artifact Registry(制品注册表)

    • 内置私有容器镜像仓库,支持 OCI 标准,可存储和管理 Docker 镜像。

    • 与 CI/CD 流水线深度集成,自动推送构建产物,并支持版本管理与安全扫描。

  5. API 与 CLI 驱动

    • 提供完整的 REST API 和 Go 语言编写的 CLI 工具(gitness),支持脚本化管理和集成。

安装与配置

环境要求

  • Docker:需安装 Docker Engine 或 Docker Desktop(用于运行容器化流水线)。

  • 存储:建议挂载持久化卷(Volume)以保存数据库和仓库数据。

快速启动(Docker)

Harness 提供了开箱即用的 Docker 镜像,单条命令即可启动全功能服务:

复制代码
docker run -d \
  -p 3000:3000 \
  -p 3022:3022 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /tmp/harness:/data \
  --name harness \
  --restart always \
  harness/harness
  • 端口说明3000为 Web 界面,3022为内置 SSH 服务器(用于 Git 操作)。

  • 挂载说明 :必须挂载 Docker Socket(/var/run/docker.sock)以便流水线调用 Docker;/data卷用于持久化数据。

访问与初始化

  1. 启动后访问 http://localhost:3000

  2. 首次登录使用默认账号:用户名 admin,密码 changeit

  3. 建议立即修改密码,并在设置中配置 SMTP 邮件服务以启用通知功能。

如何使用

1. 创建首个项目

  1. 登录 Web 控制台,点击"New Space"创建一个空间。

  2. 在空间内点击"New Repository",导入已有 Git 仓库或新建一个空仓库。

2. 配置 CI/CD 流水线

  1. 进入仓库,在"Pipelines"选项卡中点击"New Pipeline"。

  2. 选择"From YAML",在代码库根目录创建 .harness/pipeline.yaml文件。

  3. 编写 YAML 定义流水线阶段(如 buildtestdeploy)。

  4. 提交代码后,系统会自动触发流水线执行,你可以在 Web 界面实时查看构建日志。

3. 使用 Gitspaces 进行开发

  1. 在 PR 页面或仓库设置中,配置 Gitspace 模板(.devcontainer配置)。

  2. 点击"Open in Gitspace",系统会自动启动一个包含代码和依赖的云端容器环境。

  3. 你可以在该环境中直接进行代码修改、调试,并提交变更。

4. 管理制品

  1. 在流水线 YAML 中使用 docker builddocker push命令。

  2. 构建成功的镜像会自动推送到 Harness 内置的 Artifact Registry。

  3. 在"Artifacts"页面可查看镜像版本、依赖漏洞扫描结果及部署历史。

应用场景实例

场景一:中小团队的全栈 DevOps 自托管

痛点:初创团队或中小企业希望拥有类似 GitHub + GitHub Actions 的完整能力,但受限于网络环境(如内网开发)或成本,无法使用公有云 SaaS 服务。

Harness 方案 :在一台内网服务器上部署 Harness,团队所有代码、CI/CD 流水线和镜像仓库均运行在本地。开发者通过内网地址 http://192.168.1.100:3000进行代码提交、代码评审和部署,数据完全私有,网络延迟极低,且无需支付按量计费的费用。

场景二:微服务项目的统一管理

痛点:企业拥有数十个微服务,分散在多个 Git 平台(GitLab、Gitea),流水线配置碎片化,环境管理混乱。

Harness 方案:将所有微服务仓库统一迁移至 Harness 的 Space 空间管理。利用 Harness 的"项目模板"功能,为所有微服务定义标准化的 CI/CD 流水线模板(包含安全扫描、镜像构建、K8s 部署)。运维人员只需关注模板更新,即可实现所有服务的统一升级。

场景三:高校教学与实验环境

痛点:计算机专业学生需要练习 Git 协作和 DevOps 流程,但公有云平台账号申请复杂,且容易产生意外费用。

Harness 方案:在实验室服务器部署 Harness,为每个学生分配账号和空间。学生可以在隔离的环境中练习分支管理、解决 PR 冲突、编写自动化测试脚本,所有操作均在局域网内完成,安全且免费。

GitHub 地址

相关推荐
lazy H43 分钟前
从入门到日常开发,一篇文章掌握 Git 核心操作
git·后端·学习·github
zzqssliu8 小时前
煤炉自动代拍系统的队列设计与超时控制机制
git·github
fthux11 小时前
“装闭”,让装修套路“装”不下去
人工智能·ai·开源·github·open source
用户849137175471614 小时前
想做护眼工具却脑子一片空白?我用 OpenSpec 把模糊想法聊成了 v0.1
github·vibecoding
wangruofeng15 小时前
git-filter-repo 把 .git 从 112MB 砍到 1.4MB,但漏推 tag 让 clone 又胖回来
github·devops
峰向AI15 小时前
Block 放出大招!Buzz:一个中继统一代码、聊天、CI 全流程
github
dong_junshuai15 小时前
每天一个开源项目#47 4.4K Stars 的 LikeC4:让架构图随代码进化
github
独立开阀者_FwtCoder18 小时前
最近做了一个健身小程序:智形健身助手,健身的佬们来提点意见
前端·javascript·github
夕夕木各1 天前
从第一个 PR 到 Vite 官方中文文档维护者
github·vite
隔窗听雨眠1 天前
GitHub Actions自动化运维实战:从零构建一体化CI/CD流水线
运维·自动化·github