建置自己的 Git 伺服器與網站:Gitea(Gogs)

Gitea 是一個由 Golang 撰寫的 Git 伺服器(含網頁介面),如果你曾用過 GitHubGitlab 那麼你一定對這種東西不陌生。詳情可以參考「什麼是 Git?我要怎麼在 Ubuntu 上安裝 Git?」文章。

Gitea 主要是由 Gogs 分歧的版本,兩者的差異在於 Gogs 由單人維護,因 Gogs 的作者不打算將讀寫權限開放給社群,因此才有了 Gitea 分歧版本。不過在 Gitea 的 GitHub 倉庫中確實能夠感受到不少的「開放味」,有趣的是後來也有不少人跳槽到 Gitea,而且到目前為止都還在增加。


1. 安裝 Gitea 並啟動

安裝 Gitea 很簡單,首先你需要有 Docker,這部分可以參考「在 Ubuntu 安裝 Docker 和 Docker Compose」文章。

然後輸入下列指令取得 Gitea 的容器映像檔。

docker pull gitea/gitea:latest  

然後輸入下列指令在自己的主機上建立一份 Gitea 檔案資料夾,稍後會讓容器映射到這個資料夾,以後要做備份會更加地方便。

sudo mkdir -p /var/lib/gitea  

接著建立一個執行 Gitea 的 Docker 容器。

docker run -d --name=gitea -p 10022:22 -p 80:3000 -v /var/lib/gitea:/data gitea/gitea:latest  

這會映射到實體主機的 1002280 埠口,分別是 SSH 和網頁埠口。

2. 設置 Gitea

現在你的 Gitea 已經部署好了(耶!),接著到 http://localhost/ 開始設定。

在資料庫的部分如果沒有特別商業要求,可以直接選取 SQLite3,這樣會更方便。

比較需要注意的地方是埠口。SSH 埠口記得設置成 10022,然後 HTTP 埠口則是 80,應用程式網址記得更改成自己主機的網址。一但設置好了之後按下確認就行了。

3. 建立倉庫

現在已經能夠進到自己的 Git 伺服器頁面了,不過這個頁面是空白的。

我們可以按下在頁面右上角的加號,然後選取「新增儲存庫」。

然後會到下面這個新增的頁面。這些步驟就像在 GitHub 上建立倉庫是一樣的,不過在這裡我們勾選頁面最下面有個「使用選定的文件和模板初始化儲存庫」核取方塊。

這樣的話我們的倉庫就會有預設的檔案,就不需要再另外用指令把檔案推送進來才能在網頁上操作。

4. 到處晃晃

現在已經有了倉庫,我們就可以開始到處晃晃⋯⋯看看 Gitea 有什麼功能(別忘記:你也能在文章開端的線上參觀連結直接動手玩)。

倉庫右上角的路徑能夠讓你從終端機推送變更,就像平常推送變更到 GitHub 那樣。

也能夠在頁面上直接編輯檔案,就像下面這樣。

然後還有輕量級的問題系統,如果不滿意的話你可以在倉庫設定中調整為外部問題系統,雖然還沒有用過就是了。

除此之外還有合併請求、Webhooks、版本發佈、跟 Wiki。

稍微有點可惜的就是目前都還不支援行動裝置介面,意思是如果你用手機瀏覽的話會是電腦尺寸,有點難以瀏覽。