自托管Git服務(wù)程序 | Gitea搭建/使用教程
1.前言
相比較gitlab,gitea是絕對(duì)的輕量級(jí)git服務(wù)程序了。
GIT(本地必裝):https://git-scm.com/download/win。裝完以后在目標(biāo)文件夾右鍵會(huì)有Git Bash Here
和Git GUI Here
兩個(gè)選項(xiàng)
GitHub地址:https://github.com/go-gitea/gitea
1panel地址:https://www.1panel.cn/
Gitea對(duì)服務(wù)器性能要求不高,夜夢(mèng)這里使用的是(10元+9折優(yōu)惠)https://www.rainyun.com/YeMeng_
同步更新博客地址:https://tech.yemengstar.com/?p=4887
Gitea不提供內(nèi)置的Pages服務(wù)器。您需要一個(gè)專用的域名來提供靜態(tài)頁面,以避免CSRF安全風(fēng)險(xiǎn)。
對(duì)于簡(jiǎn)單的用法,您可以使用反向代理來重寫和提供Gitea的原始文件URL中的靜態(tài)內(nèi)容。
還有一些已經(jīng)可用的第三方服務(wù),比如獨(dú)立pages server的或caddy plugin,可以提供所需的功能。
這篇教程中,夜夢(mèng)全程以推送HEXO博客倉庫進(jìn)行展示,最終效果如圖

2. 1panel部署
夜夢(mèng)推薦使用1panel進(jìn)行部署,快捷簡(jiǎn)便。
2.1 1panel面板安裝
Ubuntu系統(tǒng)
Debian系統(tǒng)
CentOS系統(tǒng)
2.2 Gitea安裝
在控制臺(tái)找到訪問地址后,登錄面板。
然后再應(yīng)用商店中找到gitea,點(diǎn)擊安裝即可!

注意:需要安裝MySQL!版本按照服務(wù)器的性能進(jìn)行選擇即可!夜夢(mèng)安裝的MySQL版本為5.6
在安裝gitea時(shí),需要勾選端口對(duì)外訪問!

2.3 Gitea初始化
訪問ip:3000
即可進(jìn)入gitea初始化界面。

我們需要完善其中的【站點(diǎn)名稱】填寫,其余若無域名訪問需要,保持默認(rèn)即可。
夜夢(mèng)全程以ip:3000
進(jìn)行訪問!

然后我們就進(jìn)入了主頁!和GitHub有異曲同工之妙。(看著真的眼熟不是嗎)

由于就是GitHub的精簡(jiǎn)版,所以夜夢(mèng)這里就不再贅述如何使用Gitea了。下面夜夢(mèng)簡(jiǎn)單講述一下使用過程中和GitHub不一樣的地方,也是很容易出問題的地方。
3.簡(jiǎn)單使用
3.1本地操作
在本地文件夾中,右鍵選中Git Bash Here
,即可進(jìn)行操作。
在本地文件夾中,右鍵選中Git GUI Here
,在Help
中,找到Show SSH Key
即可添加SSH密鑰(公鑰與私鑰)。推薦在本地文件夾中新建.ssh
文件夾。
倉庫建立完畢以后,本地文件夾中會(huì)出現(xiàn).git
文件夾!
夜夢(mèng)這里以HEXO倉庫進(jìn)行演示,倉庫建立完畢以后,文件夾內(nèi)容如下:

3.2 gitea操作
如果要鏈接Gitea倉庫,夜夢(mèng)推薦使用SSH進(jìn)行連接。
在設(shè)置
-SSH/GPG密鑰
-管理SSH密鑰
,上傳已經(jīng)生成的公鑰(.pub
后綴),即可避免使用密碼連接。

3.3修改SSH連接配置
如果沒有猜錯(cuò),你應(yīng)該會(huì)在上述連接中遇到一個(gè)問題
連接倉庫
提示
這個(gè)密碼時(shí)什么呢?反正不是連接倉庫的就對(duì)了。
讓我們觀察一下連接方式ssh git@233.233.233.233:yemeng/hexo.git
,我們?cè)诜?wù)器公網(wǎng)ip
后面直接接了用戶名yemeng
,沒有接任何端口,也就是想當(dāng)于走了默認(rèn)端口22
,這一步等價(jià)于ip:22
,這也就是要登陸服務(wù)器的操作,這當(dāng)然是需要密碼的!我們應(yīng)該是登陸服務(wù)器內(nèi)部gitea容器的操作,因此我們需要修改gitea的一些配置!
讓我們先回到1panel面板中。
在gitea應(yīng)用中,選擇參數(shù)

選擇編輯

勾選高級(jí)設(shè)置

勾選編輯compose文件

編輯ports:

在gitea應(yīng)用中,進(jìn)入其文件夾

進(jìn)入/data/gitea/conf
文件夾中,修改app.ini
文件

修改內(nèi)容如下

之后重啟容器即可!
此時(shí)我們?cè)偻ㄟ^ssh推送HEXO倉庫
這次期間任何流程無需再需要輸入密碼進(jìn)行驗(yàn)證,到此ssh配置已經(jīng)完畢。
4.docker-compose部署(rootless)
4.1安裝docker-compose
上面第三部分重新設(shè)置端口的過程還是比較繁瑣的,但是如果你熟悉docker-compose的配置,那么使用docker-compose.yml
即可快速完成上述第二部分和第三部分的所有設(shè)置。
安裝docker和docker-compose:https://tech.yemengstar.com/?p=536
4.2準(zhǔn)備
首先創(chuàng)建一個(gè) gitea 工作目錄,后續(xù)工作都在這個(gè)目錄下完成
預(yù)先創(chuàng)建 data 和 config 目錄,稍后用于數(shù)據(jù)掛載
4.3基礎(chǔ)配置
rooless 版本的鏡像默認(rèn)使用 UID/GID 1000:1000 作為程序運(yùn)行的用戶組,為了保證 gitea 程序掛載權(quán)限正確的數(shù)據(jù)目錄,我們?cè)谇懊娴牟襟E中預(yù)先創(chuàng)建了?
data
?和?config
?目錄。
安裝完畢以后,你可以通過ip:3000
訪問配置頁面。
如果需要通過域名進(jìn)行訪問,請(qǐng)完成反向代理https://tech.yemengstar.com/?p=443。
選用基礎(chǔ)配置時(shí),安裝時(shí)選擇SQLite3作為初始化數(shù)據(jù)庫。
4.4MySQL配置
夜夢(mèng)這里選擇將 Gitea 與 MySQL 數(shù)據(jù)庫結(jié)合使用,具體的配置文件如下
安裝完畢以后,你可以通過ip:3000
訪問配置頁面。
如果需要通過域名進(jìn)行訪問,請(qǐng)完成反向代理https://tech.yemengstar.com/?p=443。
選用基礎(chǔ)配置時(shí),安裝時(shí)選擇mysql作為初始化數(shù)據(jù)庫。
4.5完成設(shè)置
你可以訪問IP:3000
進(jìn)入gitea配置頁面。

你可以直接設(shè)置管理員,也可以到后面進(jìn)行注冊(cè)。第一個(gè)注冊(cè)的用戶自動(dòng)會(huì)成為管理員。


5.app.ini配置
如果你忘記了管理員的密碼,抑或是你需要修改配置文件,你都可以在app.ini
文件中修改。
由于我們是使用docker進(jìn)行部署的,所以我們需要先進(jìn)入容器。
查看容器ID
得到
然后我們找到gitea的<CONTAINER ID>
:4fd3cb713ab7
然后進(jìn)入容器
進(jìn)入以后,我們輸入
即可修改你的管理員密碼。