替換GitLab的方案(an)之Gitea
概述
官網:
GitHub地址:
Gitea 是一個(ge)輕(qing)量級的(de)(de) DevOps 平臺軟(ruan)件(jian)(jian)。從開(kai)發計劃到(dao)產品成型的(de)(de)整個(ge)軟(ruan)件(jian)(jian)生命周期,他(ta)都能夠高(gao)效而(er)輕(qing)松的(de)(de)幫助團(tuan)隊(dui)和開(kai)發者。包括 Git 托管、代碼審查、團(tuan)隊(dui)協(xie)作、軟(ruan)件(jian)(jian)包注冊和 CI/CD。它與(yu) 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安裝
官網文檔:
配置SSH端口
默認情況下,GitLab 使用 port22通過(guo) SSH 與 Git 交互(hu)
修改SSH端口
[root@master ~]# vim /etc/ssh/sshd_config
# 默認為22,修改為2222
Port 2222
## 重啟sshd服務
[root@master ~]# systemctl restart sshd
數據庫準備
Gitea的數(shu)據存儲支持PostgreSQL(>= 12)、MySQL(>= 8.0)、MariaDB(>= 10.4)、SQLite(內置) 和 MSSQL(>= 2012 SP4)這(zhe)幾(ji)種數(shu)據庫(ku)。
數據(ju)(ju)庫實(shi)例(li)可(ke)以(yi)與(yu) Gitea 實(shi)例(li)在相同機器上(本地(di)數據(ju)(ju)庫),也可(ke)以(yi)與(yu) Gitea 實(shi)例(li)在不同機器上(遠(yuan)程數據(ju)(ju)庫)。
數據庫安裝可以參考這篇文章://www.xtjzw.net/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
官方文檔:
前置(zhi)條(tiao)件,你應(ying)該安裝了Docker和docker-compose
安裝Docker可以查看這篇文章://www.xtjzw.net/huangSir-devops/p/18822041#_label2
安裝docker-compose可以查看這篇文章://www.xtjzw.net/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進行配置
訪問
基礎配置(一般不用改動)

管理員配置

立即安裝
配置(zhi)完成之后點(dian)擊立即安裝即可(ke)
最終訪問
配置完成之后稍微等待一會,即可看到如圖界面

總結
個人覺得Gitea比GitLab更好用,更加輕量級(ji),尤其(qi)適合小(xiao)型團隊(dui)進行開發。當然如果你的團隊(dui)有百(bai)人以上(shang),那么(me)還是建議使用GitLab
本文來自博客園,作者:huangSir-devops,轉載請注明原文鏈接://www.xtjzw.net/huangSir-devops/p/18940063,微信Vac666666,歡迎交流(liu)
