替换GitLab的方案之Gitea
概述
官网:https://docs.gitea.com/zh-cn/
GitHub地址:https://github.com/go-gitea/gitea
Gitea 是一个轻量级的 DevOps 平台软件。从开发计划到产品成型的整个软件生命周期,他都能够高效而轻松的帮助团队和开发者。包括 Git 托管、代码审查、团队协作、软件包注册和 CI/CD。它与 GitHub、Bitbucket 和 GitLab 等比较类似。
Gitea与GitLab的区别
功能完整性
- Gitea:
- 核心功能:代码托管、Pull Request、Issue 跟踪、Wiki、Webhook。
- 轻量级设计:功能聚焦于基础代码管理,插件系统较简单,无内置 CI/CD(需集成外部工具如 Drone)。
- 扩展能力:支持自定义钩子脚本、少量主题和插件,但生态不如 GitLab 丰富。
- GitLab:
- 全栈 DevOps:集成代码托管、CI/CD(GitLab CI)、容器注册表、项目管理(Issue / 看板)、安全扫描(SAST/DAST)、监控等。
- 企业级功能:支持 LDAP/AD 集成、多因素认证、审计日志、分支权限管理、合并请求审批流。
- 生态丰富:拥有大量官方和社区插件,支持与 Jira、Slack 等工具集成。
用户体验与界面
- Gitea:
- 界面简洁,操作流程接近 GitHub,学习成本低。
- 资源占用少,适合中小团队快速部署。
- GitLab:
- 界面功能复杂,模块众多(如 DevOps 流水线、安全模块),新手需时间适应。
- 支持自定义仪表盘和工作流,适合大型团队协作。
性能与可扩展性
- Gitea:
- 资源需求:轻量级,可在低配置服务器(如 1 核 2G 内存)运行,适合 100 人以下团队。
- 扩展性:横向扩展能力有限,大型项目(如数万仓库)可能出现性能瓶颈。
- GitLab:
- 资源需求:资源消耗较高(尤其是启用 CI/CD 和容器服务时),建议至少 4 核 8G 内存起步。
- 企业级扩展:支持分布式部署(多节点集群),可承载数千人团队和百万级仓库。
部署与维护
- Gitea:
- 部署简单:支持 Docker 一键部署,安装包体积小(约 100MB),配置文件简洁。
- 维护成本:依赖少,升级频率较低,适合技术能力有限的团队。
- GitLab:
- 部署复杂:官方提供 Omnibus 包(数百 MB),但自定义配置(如 HTTPS、负载均衡)需较多技术投入。
- 维护要求:需定期更新组件(如 Rails、PostgreSQL),企业版需购买支持服务。
社区与生态
- Gitea:
- 社区活跃度较低,插件和文档相对较少,但轻量化特性吸引部分极简主义用户。
- 分叉自 Gogs,继承了部分中文用户群体。
- GitLab:
- 社区极为活跃(GitHub 星标超 40 万),官方文档完善,第三方集成丰富(如 VS Code、Jenkins)。
- 企业版提供官方技术支持,适合商业场景。
适用场景推荐
选 Gitea 的场景:
- 中小团队或个人项目,需求聚焦代码托管,追求轻量化和低成本。
- 对开源协议宽松度有要求(如商业闭源项目)。
- 服务器资源有限,需在低配置环境运行。
选 GitLab 的场景:
- 大型团队或企业,需要全流程 DevOps 工具链(CI/CD、安全、项目管理)。
- 对合规性、审计和企业级管控有要求(如金融、政府行业)。
- 愿意投入资源维护复杂系统,或需要官方技术支持。
Gitea安装
官网文档:https://docs.gitea.com/zh-cn/category/installation
配置SSH端口
默认情况下,GitLab 使用 port22通过 SSH 与 Git 交互
修改SSH端口
[root@master ~]# vim /etc/ssh/sshd_config
# 默认为22,修改为2222
Port 2222
## 重启sshd服务
[root@master ~]# systemctl restart sshd
数据库准备
Gitea的数据存储支持PostgreSQL(>= 12)、MySQL(>= 8.0)、MariaDB(>= 10.4)、SQLite(内置) 和 MSSQL(>= 2012 SP4)这几种数据库。
数据库实例可以与 Gitea 实例在相同机器上(本地数据库),也可以与 Gitea 实例在不同机器上(远程数据库)。
数据库安装可以参考这篇文章:https://www.cnblogs.com/huangSir-devops/p/18848445
执行sql
CREATE USER 'gitea'@'%' IDENTIFIED BY 'gitea';
CREATE DATABASE giteadb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_bin';
GRANT ALL PRIVILEGES ON giteadb.* TO 'gitea'@'%';
FLUSH PRIVILEGES;
Docker一键安装Gitea
官方文档:https://docs.gitea.com/zh-cn/installation/install-with-docker
前置条件,你应该安装了Docker和docker-compose
安装Docker可以查看这篇文章:https://www.cnblogs.com/huangSir-devops/p/18822041#_label2
安装docker-compose可以查看这篇文章:https://www.cnblogs.com/huangSir-devops/p/18835671#_label2
创建挂载目录
[root@master ~]# mkdir -p /data/{gitea,giteabak}
创建docker-compose.yaml
[root@master ~/gitea]# cat docker-compose.yaml
services:
server:
image: docker.gitea.com/gitea:1.24.1
container_name: gitea
environment:
- GITEA__database__DB_TYPE=mysql
- GITEA__database__HOST=10.0.0.10:3306
- GITEA__database__NAME=giteadb
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=gitea
restart: always
volumes:
- /data/giteabak:/tmp/bak
- /data/gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "22:22"
启动
[root@master ~/gitea]# docker-compose up -d
[+] Running 2/2
Network gitea_default Created 0.1s
Container gitea Started
检查是否启动成功
[root@master ~/gitea]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5fabd750d171 docker.gitea.com/gitea:1.24.1 "/usr/bin/entrypoint…" 24 seconds ago Up 23 seconds 0.0.0.0:22->22/tcp, [::]:22->22/tcp, 0.0.0.0:3000->3000/tcp, [::]:3000->3000/tcp gitea
访问Gitea进行配置
基础配置(一般不用改动)

管理员配置

立即安装
配置完成之后点击立即安装即可
最终访问
配置完成之后稍微等待一会,即可看到如图界面

总结
个人觉得Gitea比GitLab更好用,更加轻量级,尤其适合小型团队进行开发。当然如果你的团队有百人以上,那么还是建议使用GitLab
替换GitLab的方案之Gitea的更多相关文章
- 替换NSUserDefaults的方案
替换NSUserDefaults的方案 效果 源码 https://github.com/YouXianMing/iOS-Utilities // // BaseValueStorageManager ...
- CS5216PIN TO PIN替换PS8402A方案|PS8402A电路设计原理图|CS5216芯片
PS8402A是HDMI 电平移位器/中继器专为2型双模Display Port(DP++)电缆适配器应用而设计.它设计用于Display Port到DVI或Display Port到HDMI的2型适 ...
- Gerrit与Gitlab同步配置replication&其他配置
一.Gerrit与Gitlab同步配置 当配置好gerrit环境后,还需要与现有gitlab库进行同步配置,否则会影响现有开发与打包流程. 1.安装gerrit replication插件 unzip ...
- gitlab配置邮件通知
配置用户提交评论.添加issue等的邮件通知: Gitlab邮件提醒方便跟踪项目进度,在这里介绍两种方式,一种是用系统的sendmail发送邮件,另一种是GMAIL的stmp来发送邮件 第一种 用系统 ...
- 通过修改 LayoutInflater,全局替换字体!!!
序 在 Android 下使用自定义字体已经是一个比较常见的需求了,最近也做了个比较深入的研究. 那么按照惯例我又要出个一篇有关 Android 修改字体相关的文章,但是写下来发现内容还挺多的,所以我 ...
- Freeline--Android平台上的秒级编译方案
Freeline 技术揭秘 Freeline是什么? Freeline是蚂蚁金服旗下一站式理财平台蚂蚁聚宝团队15年10月在Android平台上的量身定做的一个基于动态替换的编译方案,5月阿里集团内部 ...
- Android Freeline加速编译App方案 使用和总结
Freeline简单介绍 在Android Studio还没推出Instant Run功能之前,每次改动Android project项目时都要将整个项目又一次编译一次,然后再将资源和代码文件打包成A ...
- gitlab的安装配置与简单使用
安装 gitlab,建议系统内存 6G ,不然会报错. 一.如何安装 gitlab 下载 gitlab 的 RPM 包 https://packages.gitlab.com/gitlab/gitla ...
- gitlab自带的Nginx与原Nginx冲突的解决方案
gitlab 推荐方案2 默认情况下,gitlab使用自带的Nginx,占用80端口,这样就与系统原本安装的Nginx冲突.导致其中一个nginx无法启动 我的gitlab可以正常启动,当再部署一个接 ...
- 体验 Gitea Actions
即将推出的 Gitea Actions 致力于打造一个 CI/CD 工具的标准协议,第三方 CI 系统可以基于actions 协议与 Gitea 平台集成,提供一站式管理方案.Gitea Action ...
随机推荐
- Netty源码—8.编解码原理
大纲 1.读数据入口 2.拆包原理 3.ByteToMessageDecoder解码步骤 4.解码器抽象的解码过程总结 5.Netty里常见的开箱即用的解码器 6.writeAndFlush()方法的 ...
- 【Git】Git GUI的使用
在Git命令行一文中已经对Git的操作命令进行了简单的介绍,但是理论知识过于枯燥,使得初学者在Git的使用上还是会有很大的困难.虽然我更推荐使用Git Bash方式对Git进行操作,但是对于大部分只是 ...
- Go 调用系统默认浏览器打开链接
Go Package 相关包 os/exec 实例 调用Windows系统默认浏览器打开链接 package main import ( "fmt" "os/exec&q ...
- Dify开发必备:分享8个官方文档不曾解释的关键技巧
Dify 是一个帮助你快速搭建 AI 应用的工具,其定位类似Coze.但相比Coze--Dify是免费的.开源的,人人都可以用.哪怕你不懂编程,也能用它参与到 AI 应用的设计和使用中.总之,如果你是 ...
- chatops
ChatOps是什么? ChatOps, 简单地说,这是一种方法,允许团队以聊天室的方式来协作和管理其基础结构.代码和数据的许多方面.通过使用聊天机器人和脚本,团队可以执行命令.查询信息,并将知识分发 ...
- 火焰图(Flame Graph)使用指南
火焰图(Flame Graph) 是一种可视化性能分析工具,可以帮助你快速定位 CPU.内存或 I/O 瓶颈.它看起来像火焰,因此得名. 火焰图能解决什么问题? CPU 占用高:找出哪些函数消耗了最多 ...
- spring cloud alibaba的小坑:Caused by: com.alibaba.nacos.api.exception.NacosException: endpoint is blank报错问题,
一.是因为加添spring cloud alibaba配置中心依赖和bootstrap.xml又不使用的问题
- Java并发编程实战-多线程任务执行
Executor框架与线程池(ThreadPoolExecutor) Executor框架的组成 组件 作用 Executor 基础接口,仅定义execute(Runnable)方法,用于执行任务. ...
- MySQL插入异常:SQL state [HY000]; error code [1366]-----(utf8mb4)
发现爬虫软件,爬取数据不及时,查询服务器日志发现异常: SQL state [HY000]; error code [1366] java.sql.SQLException: Incorrect st ...
- FastAPI与SQLAlchemy同步数据库集成
title: FastAPI与SQLAlchemy同步数据库集成 date: 2025/04/15 01:27:37 updated: 2025/04/15 01:27:37 author: cmdr ...