头图

前言

一个多月前,GitLab 停止对中国区域用户提供服务的消息相信大家早就看到了吧。

现在,当中国区域的用户访问 GitLab 官网地址时,会被默认自动跳转至中转页面,并在该页面引导用户去访问极狐 GitLab。

GitLab 当时还表示将提供 60 天迁移期,即 60 天内需要用户完成账户迁移,而未完成迁移的账户可能会被删除

提到极狐 GitLab 大家知道,可以看成“中国区域特供版的 GitLab”。
这个公司于 2021 年成立,并且宣称拿到了所谓的 GitLab 独家、永久、且不可撤销的 IP 授权。

而关于这家公司的风评口碑,相关信息网上一搜便知,之前在国内也闹出过不少新闻,这里也就不再赘述了。

总而言之 GitLab 这次的一系列操作,基本上就是把中国区域的 GitLab 用户给强硬的引流到极狐中去。

所以当时这个消息刚爆出时,在圈内引起了一阵讨论,不少用户十分反感这个操作,还有网友表示马上卸载这个恶心的软件

说到这里,那 GitLab 难道是非用不可嘛?

当然不是!

像这种现成的云上代码托管 SaaS 平台咱们国内就有很多,典型的比如码云 Gitee、腾讯云 CODING、阿里云效 Codeup 等等。

而如果是个人想自己搭建私有化代码托管服务的话,那选择就更多了。

之前作为演示,我们这里曾分享过如何在自有服务器上去搭建私有化的 Gitlab 仓库服务,但是这套方案大家知道,还是比较吃内存等资源,所以可能会出现性能瓶颈。

所以接下来作为本文的重点,我们这里再来梳理分享几个更加轻量高效、且开源的 Git 代码仓库平替方案,相信很多小伙伴也用过。

Gogs

首先要聊的那必须是大名鼎鼎的开源软件 Gogs。

Gogs 是一款基于 Go 语言开发的开源 Git 服务项目,它以简洁、轻量、易安装、跨平台等特点,赢得了众多团队和个人开发者的青睐。

它提供了一个类似于 GitHub 的界面和功能,并允许用户在自己的服务器上搭建私有的 Git 仓库和代码托管平台。

而且 Gogs 项目代码 100% 开源,所有的源代码均通过 MIT 授权协议托管在 GitHub 上。

目前 Gogs 项目在 GitHub 上的 Star 标星也突破了 45000,在这个垂直领域可以说相当受欢迎了。

主要特性

  • 开源免费:Gogs 代码开源于 GitHub,并以 MIT 许可证发布。
  • 轻量级:Gogs 使用 Go 语言编写,易于部署和运行,在资源消耗方面占用也比较少。相比 GitLab 等平台,Gogs 对硬件的要求更低,使得用户能够更轻松地搭建自己的 Git 服务。
  • 快速稳定:Gogs 的响应速度和稳定性都比较在线,确保了用户在使用过程中能够享受到流畅、稳定的体验。
  • 易于使用:Gogs 具有直观的用户界面,使得用户可以快速上手并进行版本控制和协作开发。
  • 多数据库后端支持:Gogs 可以与多种常见数据库集成,包括 QLite、MySQL 和 PostgreSQL 等,为用户提供了更多的选择,以适应不同的应用场景。

安装部署

Gogs 支持包括源码安装、二进制安装、包管理安装、Docker 容器安装等在内的多种安装部署方式。

以 Docker 安装部署方式为例,几行命令就可以快速拉起 Gogs 服务。

$ docker pull gogs/gogs

$ mkdir -p /var/gogs

$ docker run --name=gogs -p 10022:22 -p 10880:3000 -v /var/gogs:/data gogs/gogs

$ docker start gogs

开源地址

  • github.com/gogs/gogs

Gitea

Gitea 同样是一款基于 Go 语言开发的开源自托管 Git 服务,它起源于 Gogs 项目的一个分支,并致力于提供一个更加灵活、稳定和功能丰富的自建 Git 服务。

Gitea 的开发一直由社区的志愿者贡献代码和维护,因此它成为了一个受欢迎的开源项目,并在开源社区中得到了广泛的应用和认可。

Gitea 提供了一个完整的版本控制系统和协作开发工具,使得团队能够轻松地托管、管理和协作开发项目。

主要特性

  • 轻量高效:Gitea 以其轻量级设计而著称,资源占用低,适合在资源受限的环境中运行。
  • 易于安装与部署:Gitea 提供了简单易用的安装和部署方式,支持多种操作系统。
  • 自托管与数据掌控:Gitea 支持自托管,用户可以在自己的服务器上部署和管理 Gitea 实例,完全掌控自己的代码和数据。
  • 功能全面:尽管是轻量级的工具,Gitea 依然提供了包括代码仓库管理、问题跟踪、团队协作等功能,满足小型团队或个人开发者的日常需求。
  • 界面简洁易用:Gitea 具有简单的用户界面,易于上手和使用,同时它也提供了丰富的定制选项,让用户可以根据自己的喜好进行调整。
  • 社区支持:Gitea 是一个活跃的开源项目,拥有一个热情的社区。用户可以获得来自社区的帮助和支持,共同推动项目的发展。

安装部署

Gitea 的安装部署也非常简单,即可以通过二进制、安装包等方式来安装运行,也可以通过 Docker 容器的方式来部署运行。

如果是二进制安装方式,用户可以在官网下载对应的安装包然后根据官方文档的教程进行安装即可。

而如果是 Docker 安装部署方式,几行命令就可以快速拉起 Gitea 服务。

docker pull gitea/gitea

docker run -d --name=gitea \
  -p 3000:3000 \
  -p 22:22 \
  --restart=always \
  --volume=/your/gitea/data:/data \
  gitea/gitea:latest

开源地址

  • github.com/go-gitea/gitea

Forgejo

Forgejo 是一款轻量、高性能的自托管软件开发平台,同时功能也非常全面并且易于部署使用。

Forgejo 最初起源于于 Gitea 的一个分支,其继承了 Gitea 的轻量级设计,并保持了与 Gitea 类似的功能。

Forgejo 不仅提供了完整的 Git 仓库管理、代码审查、问题追踪、Wiki 等功能,还更加注重社区发展和开源性,拥有更高的可定制性。

主要特性

  • 轻量高效:Forgejo 以简洁、高效著称,能够在低配置的服务器上运行,适合个人或小型团队使用。
  • 易用性:界面友好,并且易于上手和使用。
  • 功能丰富:尽管 Forgejo 是一个轻量级平台,但它并没有牺牲功能。它提供了完整的 Git 仓库管理功能,支持代码审查、问题追踪、Wiki 等,满足团队在软件开发过程中的大部分需求。
  • 开源和社区支持:Forgejo 更加注重社区建设和开源,拥有更高的可定制性,同时 Forgejo 拥有一个活跃的社区,用户可以在这里分享经验、寻求帮助或参与开发。

安装部署

Forgejo 的安装部署非常简单,支持从二进制或者 Docker 等方式进行安装部署。

如果从二进制安装,用户可以下载对应平台的安装包,然后根据官网提供的指南进行安装即可。

而如果是 Docker 方式,官方则提供有对应的容器镜像可供使用。

docker pull codeberg.org/forgejo/forgejo:10.0.0

开源地址

  • codeberg.org/forgejo/forgejo

OneDev

OneDev 不仅仅是一个 Git 服务器,更可以看成是一款强大的开源一体化 DevOps 平台。

OneDev 提供了包括 Git 服务器、CI/CD、看板以及项目管理等在内的多种功能,旨在为开发团队提供一个协作与效率并存的开发环境。

主要特性

  • 一体化平台:OneDev 集成了包括 Git 管理、CI/CD、看板和项目管理等在内的多种功能或模块,减少了工具间的切换和集成成本。
  • 灵活的CI/CD流程:OneDev 支持构建灵活的 CI/CD 流程,配合直观易懂的 GUI构建工具,使得持续集成和持续交付变得简单。
  • 敏捷的项目管理:OneDev 内置了自动化的看板和问题跟踪,可以帮助团队组织任务、跟踪进度,并提供自定义的工作流程和字段。
  • 易用性和扩展性:OneDev 注重用户体验,提供直观友好的界面和快捷操作,同时也支持各种扩展机制,可以根据个人或团队的需求进行定制和扩展。

安装部署

在 Linux 或者 macOS 环境下可以使用 Docker 模式来快速部署 OneDev。

docker run --name onedev \
  -d --restart always  \
  -v <host docker sock>:/var/run/docker.sock  \
  -v <data dir>:/opt/onedev  \
  -p 6610:6610  \
  -p 6611:6611  \
  1dev/server

等待 OneDev 容器启动运行之后便可以在 http://IP地址:6610 地址进行访问。

开源地址

  • github.com/theonedev/onedev

写在最后

通过上文的总结梳理可以看到,其实市面上能平替 GitLab 的开源软件或者开源项目还是非常多的,并且很多都会更加轻量、高效、易用。

还在用 GitLab 的小伙伴,也不妨可以考虑切换尝试一下,相信会打开一个新世界的大门。

那文章的最后也做一个小调查:

大家是使用的哪款工具或者软件来搭建的代码仓库呢? 欢迎大家分享交流。

注:本文在GitHub开源仓库「编程之路」 https://github.com/rd2coding/Road2Coding 中已经收录,里面有我整理的6大编程方向(岗位)的自学路线+知识点大梳理、面试考点、我的简历、几本硬核pdf笔记,以及程序员生活和感悟,欢迎star。

CodeSheep
3.5k 声望7.7k 粉丝