最近准備搭建自己git倉庫,比較了一下gitlab-ce和gogs,發現gogs是一個很好的選擇,對於我這種 1H2G的用戶來說,但是在安裝還是遇到一些問題的,對於不是很熟悉linux的用戶來說。下面就我遇到的問題總結一下並分享給大家。這里是采用二進制安裝
為gogs建立一個系統賬戶
在gogs官方有介紹,不建議直接使用root賬戶運行,這樣風險太高了,平時我們發布應用也不建議這樣。
1 |
sudo useradd git |
添加完用戶后,還需要做一個配置,不然的后在后面操作還會遇到問題,官網文檔中只是提到創建用戶,但是給用戶的文件夾分配權限啊等問題沒有提到,當然官方不可能寫的這么詳細,他們假設看文檔的人都是有linux基礎的,這個就得我們自己腦補了。
添加用戶后需要修改一下/etc/sudoers
在文件以下位置加入
1 |
## Allow root to run any commands anywhere |
修改/etc/sudoers
文件前需要把它改為可讀寫狀態,不然編輯了無法保存,該文件默認是只讀。
1 |
chmod u+w /etc/sudoers 改為讀寫 |
編輯完成后,建議把/etc/sudoers
改為只讀狀態
給用戶分配權限
su git
切換為git用戶,我操作的時候發現切換為git
用戶,默認的home
屬於root 組及root用戶,git用戶沒有操作權限,這個時候我們就需要把home改為git及對應的組
1 |
chown git:git /home/git/** |
安裝基礎環境
這里需要安裝一下nginx
和git
,nginx
主要是用來代理請求,大家都不希望直接裸奔提供服務吧。
1 |
sudo yum install git |
下載安裝包並安裝
根據自己的linux系統版本下載對應gogs安裝包, 然后使用 tar xvf 解壓對應的目錄,例如:
1 |
sudo tar xvf gogs_0.11.86_linux_amd64.tar.gz -C /home/git/ |
這里建議把文件解壓到git用戶的home里面,因為gogs里面很多的配置都是放在git用戶的home里面,這樣可以減少我們修改的成本。
解壓完成后,建議創建目錄及文件custom/conf/app.ini
,custom
屬於gogs文件的子目錄。
1 |
touch -c custom/conf/app.ini # 使用該命令即可 |
官方有解釋為什么要創建這樣一個目錄及配置文件,這個配置文件是讓我們修改默認配置而建立的。因為不建議直接修改原配置文件。具體的配置模板見GitHub app.ini
配置完成后我們可以在gogs目錄下執行 ./gogs web
,看到以下信息就可以經行安裝了,但是建議這樣啟動,因為命令行一關閉,gogs服務就停止了,官方已經給出了很多的守護線程執行腳本,在scripts
文件夾下
1 |
[git@VM_1_2_centos gogs]$ ./gogs web |
我這里使用的是Centos7所以就用到scripts/systemd/gogs.service
啟動腳本,需要進行以下操作。
1 |
cp scripts/systemd/gogs.service /etc/systemd/system |
復制好啟動腳本后,就執行它
1 |
sudo systemctl start gogs.service # 啟動服務 |
如果需要開機啟動話執行:
1 |
sudo systemctl enable gogs.service |
查看服務運行狀態
1 |
sudo systemctl status gogs.service |
啟動成功后會看到以下信息
1 |
● gogs.service - Gogs |
失敗的話也會有對應的信息。
打開瀏覽器輸入服務器的地址加端口號即可進行安裝例如:127.0.0.1:8002,我這里是修改為了8002,默認端口是3000,啟動會有輸出的。
在瀏覽器中看到以下信息則說明可以進行安裝了,這里就不在演示如何配置了,大家根據自己的需求來。