Gitea:轻量级自托管 Git 服务,56k Star

Gitea 是一个用 Go 语言编写的自托管 Git 服务,目前在 GitHub 上获得了 56,000+ 的 Star。

正文顶部截图

如果你想在自己的服务器上搭一套 Git 代码管理平台,又不想用 GitLab 这类偏重的方案,Gitea 是一个值得了解的选项。

起源

Gitea 从 Gogs 项目 fork 而来,2016 年底独立发展。经过几年的迭代,现在和 Gogs 已经是完全不同的两个项目了。

项目使用 Go 语言编写,编译后只有一个二进制文件,部署非常简单。支持 Linux、macOS、Windows,覆盖 x86、amd64、ARM、PowerPC 等架构。

功能概览

Gitea 提供的功能和 GitHub 基本对齐:

README区域截图

  • **代码仓库管理:**创建仓库、分支、标签、Release,Fork,Watch,Star 等基础功能齐全
  • **协作功能:**Issue、Pull Request、Code Review、Milestone、Labels,团队协作流程完整
  • **CI/CD:**内置 Gitea Actions,兼容 GitHub Actions 的 workflow 语法,可以直接跑 CI 流水线
  • **用户与组织:**支持用户注册、组织管理、权限控制、LDAP/SMTP 集成
  • **API:**提供 RESTful API,同时有官方 Go SDK 和 CLI 工具 tea
  • **国际化:**通过 Crowdin 平台进行翻译,支持多语言界面
  • **Web 终端:**可以在浏览器中直接打开终端操作服务器

安装部署

Gitea 提供多种安装方式。

1、二进制文件

从官方下载对应平台的二进制文件,直接运行即可:

./gitea web

默认监听 3000 端口,访问浏览器即可完成初始化配置。数据库支持 SQLite、MySQL、PostgreSQL 等。

2、Docker

使用 Docker 部署也是常见方式:

docker run -d --name gitea -p 3000:3000 -p 222:22 gitea/gitea:latest

配合 docker-compose 可以方便地管理数据库和持久化存储。

3、从源码编译

需要 Go 环境和 Node.js 环境:

TAGS="bindata" make build

编译产物在源码根目录下生成 gitea 可执行文件。

和 GitLab 的区别

很多人会拿 Gitea 和 GitLab 做对比。核心区别在于定位:

  • Gitea 追求轻量,单个二进制文件就能跑起来,内存占用小,适合资源有限的服务器
  • GitLab 功能更全,内置了更多 DevOps 工具链,但对硬件要求更高

如果团队规模不大,只需要代码托管和基本的协作功能,Gitea 够用了。需要更复杂的流水线和监控能力,可以考虑 GitLab。

生态与社区

Gitea 有一个活跃的社区,通过 Discord 和论坛进行交流。项目文档完善,安装、管理、开发、贡献都有对应的指南。

项目采用 MIT 开源协议,商业使用没有限制。有在线演示站点可以体验,也有免费的 Gitea Cloud 托管服务。

对于有定制需求的团队,Gitea 提供了 go-sdk、tea CLI、act_runner 等官方工具,方便二次开发和集成。

Cloud 托管服务。

对于有定制需求的团队,Gitea 提供了 go-sdk、tea CLI、act_runner 等官方工具,方便二次开发和集成。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐