分享幾個(gè)開(kāi)源的Git服務(wù)端項(xiàng)目,助你搭建自己的Git代碼托管服務(wù)器
為了方便管理我們的代碼,這時(shí)候,需要有一個(gè)代碼托管服務(wù)器,現(xiàn)在,免費(fèi)、可直接用的有Gitee和Github。公司的代碼,是需要保密的,放在別人的倉(cāng)庫(kù)里面,肯定是不放心,這時(shí)候,我們需要自己搭建代碼服務(wù)器,在Git之前,大家可能用SVN和VSS會(huì)多一點(diǎn)?,F(xiàn)在,大家都比較喜歡用Git來(lái)托管自己的代碼。這里,就分享幾個(gè)開(kāi)源的Git服務(wù)端項(xiàng)目。
Gitlab
Gitlab基于Ruby on Rails構(gòu)建,功能強(qiáng)大。有開(kāi)源并免費(fèi)的GitLab CE版本,很多公司都是用的它。軟件所需環(huán)境
.
Ubuntu/Debian/CentOS/RHEL/OpenSUSE
. Ruby (MRI) 3.0.5
. Git 2.33+
. Redis 5.0+
. PostgreSQL 12+
官方推薦最低配置是4核4G。
代碼地址:https://github.com/gitlabhq/gitlabhq.git
Gogs
Gogs是使用G語(yǔ)言開(kāi)發(fā)的100% 開(kāi)源并可無(wú)條件免費(fèi)使用的項(xiàng)目。所有的源代碼均通過(guò) MIT 授權(quán)協(xié)議 托管在 GitHub 上.任何 Go 語(yǔ)言 支持的平臺(tái)都可以運(yùn)行 Gogs,包括 Windows、Mac、Linux 以及 ARM。一個(gè)廉價(jià)的樹(shù)莓派的配置足以滿(mǎn)足 Gogs 的最低系統(tǒng)硬件要求。有些用戶(hù)甚至還將 Gogs 運(yùn)行在 NAS 設(shè)備上。
主要特性:
. 控制面板、用戶(hù)頁(yè)面以及活動(dòng)時(shí)間線(xiàn)
. 通過(guò) SSH、HTTP 和 HTTPS 協(xié)議操作倉(cāng)庫(kù)
. 管理用戶(hù)、組織和倉(cāng)庫(kù)
. 倉(cāng)庫(kù)和組織級(jí) Webhook,包括 Slack、Discord 和釘釘
. 倉(cāng)庫(kù) Git 鉤子、部署密鑰和 Git LFS
. 倉(cāng)庫(kù)工單(Issue)、合并請(qǐng)求(Pull Request)、Wiki、保護(hù)分支和多人協(xié)作
. 從其它代碼平臺(tái)遷移和鏡像倉(cāng)庫(kù)以及 Wiki
. 在線(xiàn)編輯倉(cāng)庫(kù)文件和 Wiki
. Jupyter Notebook 和 PDF 的渲染
. 通過(guò) SMTP、LDAP、反向代理、GitHub.com 和 GitHub 企業(yè)版進(jìn)行用戶(hù)認(rèn)證
. 開(kāi)啟兩步驗(yàn)證(2FA)登錄
. 自定義 HTML 模板、靜態(tài)文件和許多其它組件
. 多樣的數(shù)據(jù)庫(kù)后端,包括 PostgreSQL、MySQL、SQLite3 和 TiDB
. 超過(guò) 31 種語(yǔ)言的本地化
代碼地址:https://github.com/gogs/gogs.git
Gitea
Gitea的從Gogs Fork而來(lái),Gitea的首要目標(biāo)是創(chuàng)建一個(gè)極易安裝,運(yùn)行非??焖?,安裝和使用體驗(yàn)良好的自建 Git 服務(wù)。我們采用Go作為后端語(yǔ)言,這使我們只要生成一個(gè)可執(zhí)行程序即可。并且他還支持跨平臺(tái),支持 Linux, macOS 和 Windows 以及各種架構(gòu),除了x86,amd64,還包括 ARM 和 PowerPC。
功能特性:
. 支持活動(dòng)時(shí)間線(xiàn)
. 支持 SSH 以及 HTTP/HTTPS 協(xié)議
. 支持 SMTP、LDAP 和反向代理的用戶(hù)認(rèn)證
. 支持反向代理子路徑
. 支持用戶(hù)、組織和倉(cāng)庫(kù)管理系統(tǒng)
. 支持添加和刪除倉(cāng)庫(kù)協(xié)作者
. 支持倉(cāng)庫(kù)和組織級(jí)別 Web 鉤子(包括 Slack 集成)
. 支持倉(cāng)庫(kù) Git 鉤子和部署密鑰
. 支持倉(cāng)庫(kù)工單(Issue)、合并請(qǐng)求(Pull Request)以及 Wiki
. 支持遷移和鏡像倉(cāng)庫(kù)以及它的 Wiki
. 支持在線(xiàn)編輯倉(cāng)庫(kù)文件和 Wiki
. 支持自定義源的 Gravatar 和 Federated Avatar
. 支持郵件服務(wù)
. 支持后臺(tái)管理面板
. 支持 MySQL、PostgreSQL、SQLite3、MSSQL 和 TiDB(MySQL) 數(shù)據(jù)庫(kù)
. 支持多語(yǔ)言本地化(21 種語(yǔ)言)
. 支持軟件包注冊(cè)中心(Composer/Conan/Container/Generic/Helm/Maven/NPM/Nuget/PyPI/RubyGems)
系統(tǒng)要求:
. 最低的系統(tǒng)硬件要求為一個(gè)廉價(jià)的樹(shù)莓派
. 如果用于團(tuán)隊(duì)項(xiàng)目,建議使用 2 核 CPU 及 1GB 內(nèi)存
代碼地址:https://github.com/go-gitea/gitea.git
OneDev
OneDev是使用Java基于MIT 協(xié)議進(jìn)行開(kāi)源的Git Server項(xiàng)目。
代碼地址:https://github.com/theonedev/onedev.git
CodeFever
CodeFever Community 由蒲公英團(tuán)隊(duì)完整自主研發(fā)并基于 MIT 協(xié)議進(jìn)行完整開(kāi)源,且免費(fèi)開(kāi)放,所有源代碼通過(guò) MIT 授權(quán)協(xié)議均托管在 GitHub 上,擁有完全自主的知識(shí)產(chǎn)權(quán),因此您可以放心使用而不必考慮是否侵犯他人權(quán)利。任何 PHP 語(yǔ)言支持的平臺(tái)都可以運(yùn)行 Codefever Community,包括 Windows、Mac、Linux 以及 ARM。
功能特性:
. 永久免費(fèi): 永久免費(fèi)提供給大家使用,您無(wú)需擔(dān)心付費(fèi)
. 完整開(kāi)源: 毫無(wú)保留的完整開(kāi)源,無(wú)任何編譯或加密代碼
. 輕量安裝: 極簡(jiǎn)設(shè)計(jì)風(fēng)格,排除重度冗余的多余功能
. 性能高效: 速度極快,對(duì)服務(wù)器資源要求極低,1核CPU/1G內(nèi)存即可運(yùn)行
. 無(wú)限倉(cāng)庫(kù): 沒(méi)有任何倉(cāng)庫(kù)數(shù)量、使用數(shù)量的限制
. 代碼對(duì)比: 支持提交代碼的不同版本支持高亮顯示對(duì)比
. 分支管理: 完整支持 Git 原生分支和 Tag,幫助更清晰的管理代碼
. 合并請(qǐng)求(Merge Request): 支持多人協(xié)作,讓代碼版本控制更順暢
. 分支保護(hù): 分支保護(hù)功能讓代碼提交安全可控,代碼 Review 更容易清晰
. 多人協(xié)作: 支持多人團(tuán)隊(duì)協(xié)作,并可以設(shè)置每個(gè)成員的角色和權(quán)限
. Webhook: 支持Webhook功能,可輕松和其他系統(tǒng)進(jìn)行集成
. 管理后臺(tái): 支持超級(jí)管理員后臺(tái),可以讓團(tuán)隊(duì)leader管理所有項(xiàng)目和用戶(hù)信息
. 中英雙語(yǔ): 原生支持中文和英文兩種語(yǔ)言
代碼地址:https://github.com/PGYER/codefever.git
gitolite
gitolite 是一個(gè)非常輕量級(jí)的 git 代碼托管方案,只能控制權(quán)限,沒(méi)有 Pull Request/Issue 等功能。
代碼地址:https://github.com/sitaramc/gitolite.git
除了上面分享的這幾個(gè)開(kāi)源的項(xiàng)目外,還有一些其他的免費(fèi)工具,大家可以根據(jù)自己的情況選擇合理的選擇相應(yīng)的工具,快速構(gòu)建自己的Git代碼托管中心。