1. 程式人生 > >CentOS上搭建git服務以及介面化管理_centos下gogs+nginx+mysql實現私有git服務

CentOS上搭建git服務以及介面化管理_centos下gogs+nginx+mysql實現私有git服務


NS技術圈
掃二維碼關注,獲取更多技術分享

為了方便隨時隨地的開發,以及團隊化合作開發,一個好的版本管理工具是非常重要的。比較常用的版本管理工具有svn和git這是很多公司的選擇,關於如何搭建自己公司的svn以及實現程式碼部署請看我之前的部落格《Linux/centos下搭建svn服務來管理版本》。SVN的使用中有大部分人吐槽,說沒有Git好用等等,其實SVN有著強大的許可權管理,對於大的專案團隊來說還是挺不錯的。
既然很多人是Git派的那我今天要給大家分享如何搭建git服務來進行版本管理吧,其實Git服務的搭建是非常非常簡單的,大家可以再百度搜搜,而我今天主要要分享的是使用gogs進行介面化的Git操作。

Gogs是什麼

相信看我的這篇部落格的朋友一定使用過github,那麼我們在github能幹什麼呢?建立倉庫,加入別人的專案,建立組織,處理合並請求,寫專案文件,提交issue,管理專案開發團隊,使用webhook部署程式碼等。但是在企業中因為程式碼的保密性和安全性即時github有私有倉庫很多公司的非開源專案也不會選擇github,而是希望在自己的伺服器中搭建git服務。那麼能不能在自己私有的環境中搭建一個github呢?答案是肯定的,而且選擇也比較多。比較著名的有gitlab,gogs。gitlab比較早,也比較龐大。而今天我們要說的是使用go開發的gogs。

這裡寫圖片描述

Gogs安裝前準備

準備工作也是非常容易的,在這兒因為gogs是使用go來開發的,那麼當然我們的git伺服器上需要安裝go環境,其實這個過程是非常非常簡單的。

下載go安裝包

國內下載的地址是:https://www.golangtc.com/download
根據自己的系統來跳轉正確的版本,因為我是centos所以選擇 go1.9.2.linux-amd64.tar.gz

這裡寫圖片描述

解壓壓縮包

然後使用此命令解壓go就行了。其中/home/git/local是我想把go防止的位置。你想放置在其他位置也是沒有問題的。
tar -C /home/git/local -xzf go1.9.2.linux-amd64.tar.gz

將go路徑加入到環境變數

這裡寫圖片描述

當然這個對於對linux比較熟悉的人是很簡單的。開啟.bashrc把剛剛解壓的go目錄和bin加入到環境變數中。

這裡寫圖片描述

執行go version 如果出現了版本資訊就說明成功了可以進行下一步操作,否則檢查錯誤的地方重新來。

Gogs下載安裝及部署

使用go get來獲取gogs包

因為gogs是go開發的程式包所以可以使用go get來從github獲取。
這裡寫圖片描述
使用 go get -u github.com/gogits/gogs
就可以將gogs下載到go目錄下的src目錄中。

構建gogs應用

這裡寫圖片描述
這是go將go程式構建為可執行程式的過程。必須使用go build。在這兒大家要注意一點:必須將目錄切換到gogs目錄下

執行gogs

這裡寫圖片描述
這兒操作也比較簡單,使用./gogs web來執行gogs。只有出現下邊綠色的部分表示執行成功了否則就是有錯誤。其中需要注意最後一行 這個表示該伺服器的3000埠被監聽。如果我們的伺服器是一臺線上伺服器那麼久需要找到線上伺服器的公網ip地址。如果是本地的當然在瀏覽器輸入127.0.0.1:3000就可以訪問。如果是線上的就把0.0.0.0換成伺服器公網ip地址訪問。

視覺化配置gogs

在瀏覽器使用以上說明的ip和埠訪問後會出現一個web介面,我們重點說明下部分配置項。

資料庫配置

因為gogs將操作中的資料寫入資料庫所以我們先得配置資料庫,在此之前希望大家已經準備好mysql或其他資料庫伺服器,有給gogs用的資料庫伺服器地址,資料庫,賬號密碼。

這裡寫圖片描述

基本資訊的配置

這裡寫圖片描述
這裡寫圖片描述

基本資訊的配置也是比較明確的。在這兒大家要注意的是應用url。因為我們不可能一直拿ip來請求,不好記。那麼如果你後期要使用域名,那麼在這兒需要填寫你自己的域名,當然如果填寫了自己的域名後期要解析到該伺服器的ip地址。

可選設定

這裡寫圖片描述
郵件服務配置主要是gogs對於一些操作傳送郵件時使用,163等郵箱都提供了SMTP服務,相關的地址和賬號大家都可以檢視相關郵箱的幫助文件

管理員賬號設定

這裡寫圖片描述
這兒需要注意了,你所新增的是系統管理員賬號。一定要填寫自己熟悉的或者容易記的賬號密碼。

自定義域名nginx反向代理

這裡寫圖片描述
注意了還是要強調一定要將你的server_name解析到該伺服器上

最終效果

訪問 git.sikukeji.com(參考自己配置)
這裡寫圖片描述

新增程序守護

因為gogs使用go來處理網路請求,所以要求gogs服務一直處於掛起狀態。我們剛剛是在命令列中使用./gogs web來啟動服務的,只要命令列關閉那麼gogs服務也隨之關閉,那麼我們需要一個靜默的程序守護。
這裡寫圖片描述