OneDev

OneDev 自托管 Git 服务器 — 一键安装

自带看板和 CI/CD 的自托管 Git 服务器

为什么用 Web.Casa 安装 OneDev 自托管 Git 服务器?

一键部署

无需手动编写 Docker Compose,Web.Casa 自动配置并启动。

自动 HTTPS

Caddy 自动签发和续期 SSL 证书,反向代理开箱即用。

统一管理

监控、备份、更新、日志——所有应用在一个面板中管理。

安装方式

先安装 Web.Casa,然后在应用商店中一键安装此应用。

应用信息

版本
14.1.8
作者
https://code.onedev.io/
默认端口
6610

开箱即用的符号搜索与导航

虽然集成开发环境(IDE)擅长此类操作,但我们在处理旧提交时(例如调查发布版本中的问题等)常常需要进行搜索,而在 IDE 中切换提交可能既麻烦又耗时。

本功能通过使用 ANTLR 分析源代码,增量式地提取并存储符号,实现快速且节省空间的索引。目前支持 Java、JavaScript、C、C++、CSharp、Go、PHP、Python、CSS、SCSS、LESS 和 R 语言。GitHub 几年前已添加此功能,但似乎仅适用于主分支;而 GitLab 则需要配置 CI 任务来生成并上传 LSIF 数据,这过程繁琐,且若为每个提交都执行此操作会占用相当大的存储空间。

在审查提交或拉取请求时,您还可以在差异对比中跳转到符号定义。

searchsymbol

jumpsymbol

支持正则表达式的代码搜索

您可以切换到任意提交,并使用正则表达式搜索代码。OneDev 底层使用 Lucene 对代码进行增量索引。在搜索时,会从正则表达式中提取字面量的三元组进行粗粒度搜索,然后在结果中进行精确匹配。这使得正则表达式搜索速度极快,即使对于像 Linux 这样的大型代码库也是如此。

regex

通过静态分析结果注释源代码/差异,助力代码审查

当然,GitHub 上的许多第三方应用也能实现此功能,但它们是在自己的应用中展示分析结果,这使得在分析结果上添加评论等审查活动变得困难。更不用说您还需要为这些服务付费。

annotation

可自定义的问题状态与字段,深度集成 CI/CD

GitHub/GitLab 问题简单的开放/关闭状态对于许多工作流来说并不理想。以客户提交的问题为例:

  1. 如果开发人员在提交代码时关闭问题,客户会收到通知,并可能询问修复该问题的发布版本。
  2. 如果开发人员在发布时关闭问题,测试人员可能会对需要测试哪些问题感到困惑,因为在测试时所有问题都仍处于开放状态。

借助可自定义的问题状态,我们可以用四种状态来处理问题:开放、已提交、测试就绪和已发布:

  1. 当代码提交时,问题自动转换为“已提交”状态。
  2. 当创建并部署测试构建时,问题自动转换为“测试就绪”状态。测试人员将收到通知,并可以查看问题详情以了解测试构建部署到了哪个环境。
  3. 当测试通过并创建发布构建时,提交该问题的客户将收到通知,他们可以查看问题详情以了解哪个发布版本包含了修复。

boards

fixing-build

服务台:通过电子邮件创建/讨论问题

服务台允许您的用户通过电子邮件提交工单,而无需拥有 OneDev 账户。这些工单可以在指定的项目中创建,并分配给团队中的适当成员。所有关于工单的后续讨论都可以完全通过电子邮件进行,讨论内容会作为评论发布到工单中。当工单有任何活动时,例如创建或部署了相关发布版本,用户也会收到通知。

service-desk.png

强大直观的查询语言

再次感谢 ANTLR,OneDev 为项目、提交、问题、构建和拉取请求提供了精密的查询语言,并配有直观的自动补全和提示。例如,它使我们的客户能够找到其正在运行的发布版本与最新发布版本之间已修复的问题,也使我们能够找到某人提交的涉及指定模块的所有提交等。

查询可以保存和订阅,这样您就不会错过任何感兴趣的内容。

query

功能完备的 CI/CD 引擎,无需编写 Yaml

OneDev 提供图形界面来生成 CI/CD Yaml 配置。无需四处搜索 Yaml 语法。只需一行 Docker 命令即可启动 OneDev 服务器,您将自动获得一个本地 CI/CD 运行器。担心服务器运行大量任务的能力?再一行命令即可从任何机器连接自更新的代理。想要自动扩展的 CI/CD 集群?一行 Helm 命令即可将 OneDev 部署到 k8s 集群中。

构建流水线、矩阵任务、类型化参数、参数链、步骤模板、构建升级……太多精巧的功能无法一一详述……

job-def

run-job

pipeline.gif

灵活的拉取请求审查策略与审查者建议

可根据作者、分支和更改的文件来指定拉取请求审查策略。OneDev 可以利用 Git 变更历史,为涉及特定文件的拉取请求建议最合适的审查者。

review-policy

无需拉取请求的轻量级审查

可以在代码或差异的任何部分添加评论,以启动轻量级审查,而无需创建拉取请求。审查评论会随着代码修改甚至文件重命名而持续存在,可作为文档使用。

每个讨论都是线程化的,因此您可以轻松了解有新评论/更新的讨论。

file-comment

thread-comments

命令面板,快速访问功能

在任何地方按下 cmd/ctrl-k 即可唤出命令面板。搜索项目、文件、问题、拉取请求、构建以及各种设置,无需离开键盘即可跳转到它们。

command-palette.gif

使用智能编辑器愉快地编写 Markdown

在 GitHub/GitLab 的 Markdown 文件中嵌入图片时,您需要在一个单独的页面上传图片,然后找出引用该图片的相对路径。而在 OneDev 中,您只需在同一编辑器中将图片上传到目标文件夹,链接便会自动生成。

OneDev 会跟踪您在编辑窗口中的光标位置,并在必要时滚动预览窗口,以便您始终可以预览正在输入的内容。

markdown

按语言统计的 SLOC 趋势

OneDev 会检查主分支的 Git 历史记录,高效地计算按语言划分的源代码行数趋势。

stats

项目层级结构,便于设置继承

组织架构对于公共服务来说是理想的。然而,对于自托管的内部使用,我们认为层级结构在组织项目方面更为实用。子项目可以从父项目继承设置,并可以在必要时选择性地覆盖其中一些设置。这大大减少了管理公司内大量项目的开销。

快速可靠,资源占用适中

OneDev 在设计时充分考虑了性能。使用一台 2 核 2GB 的服务器,您就能为中等规模的项目获得上述所有功能。 它已经过超过 5 年的密集使用,可靠性经过了实战检验。修复错误是我们的最高优先级,因此通常几乎没有已知的错误。


特别感谢

yourkit

YourKit 通过提供其卓越的 Java 性能分析器的免费开源许可证来支持本项目。

常见问题

OneDev 自托管 Git 服务器 可以安装在 Web.Casa 上吗?

是的,OneDev 自托管 Git 服务器 是 Web.Casa 应用商店中的官方应用。你可以通过 Web.Casa 面板一键安装,无需手动编写 Docker Compose 或配置反向代理。

如何在 Web.Casa 上安装 OneDev 自托管 Git 服务器?

首先通过 curl -fsSL https://get.web.casa | bash 安装 Web.Casa,然后在面板的应用商店中搜索「OneDev 自托管 Git 服务器」,点击安装即可。Web.Casa 会自动配置 Docker 容器、分配端口并设置 Caddy 反向代理。

OneDev 自托管 Git 服务器 在 Web.Casa 上的默认端口是什么?

OneDev 自托管 Git 服务器 在 Web.Casa 上的默认端口为 6610。你可以通过 Web.Casa 的 Caddy 反向代理将其绑定到自定义域名,自动获取 HTTPS 证书。

OneDev 自托管 Git 服务器 安装后可以自动获取 HTTPS 吗?

是的。Web.Casa 基于 Caddy 构建,安装应用后只需绑定域名,Caddy 会自动通过 Let's Encrypt 签发和续期 SSL 证书,全程无需手动配置。

OneDev 自托管 Git 服务器 的数据如何备份?

Web.Casa 内置备份插件,支持将 OneDev 自托管 Git 服务器 的数据自动备份到本地、S3、WebDAV 或 SFTP。你可以设置定时快照和保留策略,确保数据安全。