經過幾年使用 Git ,終於等到 微軟也使用 Git,有理由要求同事也來用 Git。
前兩年架了 Gitlab ,但是效能實在太差,幾度Survey後決定改用 Gogs。
Gitlab 的問題在於Rails的效能很差,偏偏又把所有Git的Request都用Rails處理。有一個最近做的案子,把framework放進去之後,每次push都要很久。
天下武功,唯快不破。我的首選當然就是強調快的Go,原本測試時使用 sqlite還看不出效能,後來決定灌個VM搭配Postgresql。現在使用時CPU都不到1%,原本用Gitlab不管開多少vCPU都是100%。
以下簡述安裝過程,為了爾後升級方便,決定使用原始碼安裝。
前兩年架了 Gitlab ,但是效能實在太差,幾度Survey後決定改用 Gogs。
Gitlab 的問題在於Rails的效能很差,偏偏又把所有Git的Request都用Rails處理。有一個最近做的案子,把framework放進去之後,每次push都要很久。
天下武功,唯快不破。我的首選當然就是強調快的Go,原本測試時使用 sqlite還看不出效能,後來決定灌個VM搭配Postgresql。現在使用時CPU都不到1%,原本用Gitlab不管開多少vCPU都是100%。
以下簡述安裝過程,為了爾後升級方便,決定使用原始碼安裝。
- 安裝VM,用 Ubuntu LTS會比較方便(我自己用FreeBSD,好孩子不要學)。
- 把 postgresql-server和 git、wget裝進去,最好再加上 Nginx。
- 照原廠的建議
sudo su - git
cd ~
# create a folder to install 'go'
mkdir local
# Download go (change go$VERSION.$OS-$ARCH.tar.gz to the latest realse)
wget https://storage.googleapis.com/golang/go$VERSION.$OS-$ARCH.tar.gz
# expand it to ~/local
tar -xzf /home/git/local -xzf go$VERSION.$OS-$ARCH.tar.gz - 設定Go的環境變數
sudo su - git
cd ~
echo 'export GOROOT=$HOME/local/go' >> $HOME/.bashrc
echo 'export GOPATH=$HOME/go' >> $HOME/.bashrc
echo 'export PATH=$PATH:$GOROOT/bin:$GOPATH/bin' >> $HOME/.bashrc
source $HOME/.bashrc - 安裝
# Download and install dependencies
go get -u github.com/gogits/gogs
# Build main program
cd $GOPATH/src/github.com/gogits/gogs
go build - 測試
因為我沒有裝sqlite3,原廠測試就沒過。
cd $GOPATH/src/github.com/gogits/gogs
./gogs web - 設定Postgresql,自己搜一下吧。
設定Gogs ,改 custom/conf/app.ini
[database]
DB_TYPE = postgres
HOST = 127.0.0.1:5432
NAME = gogs
USER = gogs
PASSWD =
[service]
DISABLE_REGISTRATION = false - 做好後,依照參考資料加Supervisord。由於FreeBSD預設沒有Supervisord的套件,我是自己寫script處理,好孩子不要學,乖乖用Linux吧。
- 設定Nginx,由於Gogs預設是用SSL連線,我也順便加上SSL。
- 啟動後,第一個註冊成功的用戶就是管理員,可以再回去改app.ini,關掉註冊功能。
留言