為什么選擇Gitea
常用的私有Git服務器包含GitLab、Gitea、Gogs等。相對來說,GitLab功能最為全面,內置CI,但對內存和CPU的要求比較高,而Gogs和Gitea均比較輕量化。根據實際需求與條件最終選擇了Gitea,Gitea是Gogs的社區版本,足夠輕量化,並且包含LFS的支持。
環境准備
安裝數據庫:采用SQLite數據庫
-
Windows安裝:
下載網址:https://sqlite.org/download.html,如下圖下載預編譯版本中的sqlite-dll-win64-x64-3320300.zip版本安裝即可。
安裝說明:
安裝時在安裝目錄(如C:\Program Files\SQLite3)解壓下載下來的文件,同時添加該路徑到環境變量Path中(添加到System的Path)。
到此SQLite已經安裝完成,在命令提示符內輸入sqlite3根據是否出現版本號等信息可以驗證是否成功添加到環境變量。
對於SQLite的可視化管理可以使用SQliteStudio即可。
-
Linux安裝:
Linux下安裝SQLite,可以從下載頁下載源代碼自行編譯,也可以直接下載編譯好的二進制包。還可以更簡單的從包源安裝:
# apt-get install sqlite3
安裝Git
-
Windows安裝:
Git的taobao鏡像下載(原網站國內訪問較慢):https://npm.taobao.org/mirrors/git-for-windows/
下載完成后,是個可執行的安裝文件。運行安裝文件,即可完成Git客戶端的安裝。
安裝完成后,也需要在環境變量中設置
Path
,加進去Git
命令的運行目錄。Git運行目錄是Git安裝目錄下的bin
目錄。 -
Linux安裝:
大多數情況下,Linux下會自帶Git客戶端,可以檢查一下:
# git --version
如果已安裝,會返回版本信息。
如果沒有安裝,就用包管理裝一個
# apt-get install git
安裝Gitea
-
Windows安裝
下載for Windows的最新版1.11.5:https://gitea.io/zh-cn/
把下載下來的文件名改為
gitea.exe
,然后放到一個目錄,比如D:\gitea
目錄下,安裝就完成了。Gitea在Windows上可以直接運行,也可以加為Service。
> d:\gitea\gitea.exe web cmd/web.go:107:runWeb() [I] Starting Gitea on PID: 5840
加到Service里運行就不用每次手動打開了,輸入命令:
sc create gitea start= auto binPath= "\"d:\gitea\gitea.exe\" web --config \"d:\gitea\custom\conf\app.ini\""
點確定,就加到Windows服務里了。
-
Linux安裝
下載for Linux的最新版1.12.1:
# wget -O gitea https://dl.gitea.io/gitea/1.12.1/gitea-1.12.1-linux-amd64
下載完成后,把gitea移到
/usr/local/bin
目錄,並改為可執行。# mv gitea /usr/local/bin # chmod +x gitea
Gitea就安裝完成了。
下面建幾個Gitea的數據目錄:
# mkdir /var/lib/gitea # mkdir /var/lib/gitea/{custom,data,log} # mkdir /etc/gitea
其中:
/var/lib/gitea是存放倉庫相關文件的目錄
/etc/gitea是存放配置文件app.ini的目錄
為了服務器的安全,我們還需要創建一個系統用戶
git
,# adduser git --system --shell /bin/bash --group --disabled-password --home /home/git
把上面建立的幾個目錄給到
git
用戶:# chown -R git:git /var/lib/gitea # chown git:git /var/gitea
Gitea在Linux上需要以Service的方式運行。
把以下配置保存到文件
gitea.service
:[Unit] Description=Gitea (Git with a cup of tea) After=syslog.target After=network.target [Service] RestartSec=2s Type=simple User=git Group=git WorkingDirectory=/var/lib/gitea/ ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini Restart=always Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea [Install] WantedBy=multi-user.target
修改
gitea.service
為可執行,並復制到/etc/systemd/system
目錄:# chmod +x gitea.service # mv gitea.service /etc/systemd/system# systemctl enable gitea.service
最后一步,啟動Service:
# systemctl start gitea.service
Linux下的安裝配置就完成了。
設置Gitea
運行Gitea后,打開http://localhost:3000即可以進入軟件配置界面如下圖:
-
數據庫設置
先選擇數據庫類型。如果是用原有的數據庫,相關的參數需要填進去。我們安裝了SQLite3,所以選擇這個。下面會有一個數據庫路徑,可以使用默認的。在Windows下,Gitea會自己在運行目錄下建立目錄和數據文件;Linux下是剛剛預先建立好的。
如果修改目錄的話,Windows下不存在問題,但Linux下需要注意目錄的權限。這個權限會跟着下面「以用戶名運行」參數來設置。
-
一般設置
站點名稱:頁面首頁顯示的名稱。
倉庫根目錄:用來存放源代碼二進制數據,有默認位置,可以修改。
LFS根目錄:用來存放大文件的目錄,用於LFS服務。
-
禁止用戶自助注冊
如果可以開啟就不能自己注冊賬號了,需要管理員統一管理。
-
管理員帳號設置
第一個注冊的帳號,會自動成為管理員。在上面禁止注冊后,需要這個管理員來建立用戶帳號。
-
版本升級
如果需要升級新版本,先下載新版本的Gitea,然后停掉服務,覆蓋舊的Gitea程序,再啟動服務就可以了。
其他更多設置查看Gitea的文檔即可。
參考文獻: