OneDev - 轻量级 GitLab 安装

本文最后更新于:2022年7月4日 上午

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,哪些人可以访问测试版本,哪些人可以进行版本发布等等。

使用方法

Docker 安装

  • 在 Linux/Mac 上运行以下命令,将 <data dir> 替换为存储 OneDev 数据的目录:
1
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

  • 配置用户信息、URL后重新登录
  • 就完成了 OneDev 的安装,可以作为代码托管平台使用

参考资料


OneDev - 轻量级 GitLab 安装
https://www.zywvvd.com/notes/tools/git/onedev/onedev/
作者
Yiwei Zhang
发布于
2022年5月20日
许可协议