替換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 實例在不同機器上(遠程數據庫)。
數據庫安裝可以參考這篇文章:http://www.rzrgm.cn/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可以查看這篇文章:http://www.rzrgm.cn/huangSir-devops/p/18822041#_label2
安裝docker-compose可以查看這篇文章:http://www.rzrgm.cn/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
本文來自博客園,作者:huangSir-devops,轉載請注明原文鏈接:http://www.rzrgm.cn/huangSir-devops/p/18940063,微信Vac666666,歡迎交流

浙公網安備 33010602011771號