前言
為什么要介紹GitBlit來搭建git服務器呢?由于之前介紹過一篇搭建本地cocoapods庫,可是如果是基于github的話仍然是公開的,當然你可以花錢買私有倉庫(repository)權限。或者選用其他具有免費私有git服務網站,但對于無法訪問公網的一些公司,搭建一個自己的或者公司,企業內部的小型git服務中心還是挺不錯的。廢話少說,下面就簡短介紹基本搭建方法。
<h2 id="1">基礎配置<h2>
推薦查看官方設置文檔,和查看default.properties文件注釋說明。
-
打開
data
文件夾下的default.properties配置http/https服務端口號,服務密碼等#設置為0時及關閉對應服務 #當配置好https后推薦關閉http服務-安全是很重要的O(∩_∩)O~~ server.httpPort = 19991 server.httpsPort = 9119 #這個是ssl的加密的密碼(不能輸入 "#") server.storePassword = gitblit #單次提交最大尺寸默認8k,你覺得上傳圖片有保障嗎? git.packedGitLimit = 20m #git庫的文件存放目錄 git.repositoriesFolder = [你想要存放文件的路徑]
當初在這里默默被坑,最后發現這個密碼最多只能設置7位,超過就報錯.原因:是缺少一個JCE文件導致密碼被限制長度,當初刷一下就過去了根本不會看那么細啊,有木有同樣踩坑的(?????)。(當然下載安裝后就解除限制了)
jce.png
ps:本地單項目處理大文件無法上傳
其實很簡單,在項目的.git/config里加入:
threads = 1 00
deltaCacheSize = 256m
packSizeLimit = 180m
windowMemory = 128m
packedGitLimit = 1000m
packedGitWindowSize = 1000m
(當然你也可以配置LFS-Gitblit是支持lfs功能的) -
打開服務后,進入https://localhost:9119(用自己配置的端口)觀察效果
$ java -jar gitblit.jar --baseFolder data $ ./gitblit.sh
如果第二步收到Safari阻攔只需要選擇信任證書即可
到這里我們自己的git控制中心就OK了但如果仔細看了運行java -jar gitblit.jar --baseFolder data
時會有相關的證書等ssl設置。但是默認設置你放心嗎?
接下來繼續了解有關ssl的設置
<h2 id="2">SSL配置<h2>
-
安裝data/certs/caKeyStore.p12根證書然后執行
#打開證書配置GUI $ java -cp gitblit.jar com.gitblit.authority.Launcher --baseFolder data
or
$ ./authority.sh
- 點擊紅色按鈕新建https服務端證書(自己創建的主機名默認為localhost,局域網下其他電腦是無法訪問的,這是由于證書驗證主機名hostname無法通過localhost匹配對應域名的原因),此時主機名改為你電腦的ip,或一個公網ip、域名達到外界可以訪問
-
重新打開服務后,進入https://192.168.x.xxx:9119(用自己配置的端口)觀察效果
$ java -jar gitblit.jar --baseFolder data
選擇用戶創建對應的客戶端證書
配置SSHKey實現免密碼克隆
-
查看git 用戶基本配置(用戶名,郵箱)
git config --lis
-
若1中沒有顯示全局用戶名與郵箱則需要手動設置
git config --global user.name "username" git config --global user.email "mail@gmail.com"
-
創建sshKey文件(要不要評論/備注都沒關系)
#帶評論創建 ssh-keygen -t rsa -C "mail@gmail.com" #不帶評論創建 ssh-keygen -t rsa
輸入命令后依次會有三次交互:
- 生成文件的名字---必須為空
- 生成文件的密碼---為空
- 確認密碼--為空
/Users/lqx/.ssh/id_rsa
前往
/Users/lqx/.ssh/id_rsa
該目錄下的*.pub(公鑰)文件,復制全部內容到gitbli用戶中心的SSHKey下保存,OK,以后你就可以通過
git clone ssh@admin/Path/*.git
免密clone了。。
基于Tomcat Gitblit.war快捷配置
由于我有一個tomcat所以采用的這種方式,在manangerAPP中配置war文件就OK了,其他配置都一樣(SSL部分不需要,取決于tomcat配置)
ps:這里不做贅述可以,有需求可以聯系我。