OneDev 是一个实用的自托管 Git 服务器。相比于 GitLab 更加轻量,本文记录相关内容以及安装使用方法。
简介
OneDev是一个开源的一体化的 DevOps 平台,相比于以往的 代码托管平台更轻量,同时兼顾了易用性,添加了操作上的额外功能。
- 原生支持Docker和Kubernetes 内置持续集成引擎,可以直接在本机上用Docker跑Build,也可以连接到Kubernetes集群上进行大批量的Build。
- 图形化的Build定义界面 在使用GitHub/GitLab等其他工具定义Build行为的时候,需要写Yaml脚本,不可避免的要去了解复杂的Build定义规则。而在OneDev里提供了图形界面,并辅以自动提示,让这个工作变得非常容易。而且日后在版本升级时,Build定义也可以自动升级。
- 灵活的Build工作流定义 支持用变量控制Build行为。对不同变量的组合分别进行Build/Test。可以将不同的Build任务连接形成Build Pipeline,并支持并发任务。
- 支持Issue状态和字段自定义 按需要自定义Issue状态和字段来满足不同的应用场景。不同字段之间可以定义依赖关系,比如说可以指定某字段只有在另一个字段选取特定值的时候显示。Issue状态可以设置基于规则的自动迁移,也可以设置基于权限的手动迁移。
- 自动刷新的Issue看板 根据Issue状态或者字段来展示Issue看板。所有Issue相关操作都可以在看板中进行。看板即时自动刷新来展示Issue的最新状态。
- 代码智能搜索和导航 在查看源文件和Diff时,支持基于语法分析的代码智能搜索和导航,并可以展示源码的大纲结构方便阅读。目前支持Java,JavaScript,C,C ,CSharp,Go,PHP,Python,CSS,SCSS,LESS,R。
- 使用标注对代码进行讨论和阅读 阅读代码时,随时可以加上标注同作者进行讨论。之后即使文件经过了修改或重命名,OneDev依然能够把合适的历史标注显示代码旁帮助理解。
- 灵活的代码审查规则 制定基于Pull Request的代码审查规则。比如说可以规定某个分支的某些文件修改后需要通过哪些人的审查,或者哪些Build任务必须通过等等。
- 强大易用的查询语言 系统包含有一个精心设计的查询语言,通过自动提示和补齐,可以快速创建对Issue,build,code,pull request等对象的复杂查询。查询还可以按需保存和订阅,以便在有满足查询条件的事件发生时,自动得到通知。
- Code,Issue,Pull Request和Build的深度集成 在代码提交,Pull Request创建/合并,或者Build成功后,相关Issue可以自动转移到所需状态,并通知相关人员。随时获取交叉信息,比如某个Build里包含那些完成的Issue,某个Issue最早在那个Build里被解决,又或者比较任意两个Build,得到所有源代码的改动等等
- 精细的权限控制 比如您可以定义哪些人可以改动关键源文件,哪些人可以分配Issue,哪些人可以访问测试版本,哪些人可以进行版本发布等等。
使用方法
- 安装文档:https://code.onedev.io/projects/162/files/main/pages/installation-guide.md
- 浏览器要求
- Microsoft Edge
- Firefox 40.0 or higher
- Safari 7.0 or higher
- Chrome 40.0 or higher
- 内存要求 2G
- 安装方式
- Docker Container
- Kubernetes Cluster
- Virtual Machine/Bare Metal Machine
本文介绍 Docker 安装方式
Docker 安装
- 在 Linux/Mac 上运行以下命令,将
<data dir>
替换为存储 OneDev 数据的目录:
docker run --name onedev -d --restart always -v /var/run/docker.sock:/var/run/docker.sock -v <data dir>:/opt/onedev -p 6610:6610 -p 6611:6611 1dev/server
- 等待 OneDev 启动并运行,然后将浏览器指向 http://localhost:6610 以访问它。
- 配置用户信息、URL后重新登录
- 就完成了 OneDev 的安装,可以作为代码托管平台使用
参考资料
- https://github.com/theonedev/onedev
- https://blog.csdn.net/weixin_44445595/article/details/106971904
- https://code.onedev.io/projects/162/files/main/pages/run-as-docker-container.md