Leon
Leon

https://editor.leonh.space/

十分鐘自架 Gitea

因為疫情影響(什麼都推給疫情),要自架 Git server,挑來挑去最後選了精緻小巧的 Gitea,雖然很簡單還是紀錄一下安裝過程,順便聊聊到底為什麼要自架 Git server。
圖片來自 Gitea

想要自架 Git server,主流的選擇大概不脫 Gitea 和 GitLab,雖然本人一直以來都是 GitLab 的愛用者,但若是自架,就要多考慮兩下了,首先 GitLab 本身就是個大玩具,不論是架設還是維護都相對複雜一點,特別是維護,它離射後不理應該有段距離,而 Gitea 的優點自然就是精緻小巧卻又功能齊全啦,扣掉配置文件,就只有一個扎扎實實的執行檔,資料庫支援 SQLite,也是精緻小巧又功能齊全,這樣的組合正滿足本人射後不理的需求啦。

Gitea 的網頁也很明白的呈現自己的特點:

Gitea 唯一缺的是沒有內建 CI,不過這不打緊,市面上也有一大堆的 CI 可與之串接,最多人用來和 Gitea 搭配的 CI 應該就是 Drone CI 了,總之雖然 Gitea 沒有 CI,但不會是個問題。

認識 Gitea 之後,讀者應該也可以拿捏拿捏 Gitea 適不適合自己了,接著往下看安裝與配置的部分。

Gitea 安裝與配置

安裝

最簡單的安裝不是 Docker,而是 Snap,只要一行:

$ sudo snap install gitea

裝完之後它自己會跑起來,進入 http://127.0.0.1:3000/ 進行初始化作業,初始化頁面也很簡單,在此不多提。

初始化頁面跑完應該就可以登入了,登入後長的和以前的 GitHub 有八成像,有用過 GitHub / GitLab 的朋友應該都可以無痛上手。

配置

Gitea 的配置文件在 /var/snap/gitea/common/app.ini,裡面項目頗多,一般來說不需要動。

但是但是 SSH 的部分可能需要改一下。

因為 Linux 原本就有開 SSH 服務,所以埠 22 已經被占用,本著一埠做一事的原則,把 Gitea SSH 埠改到 23。

把那 app.ini 開起來,確保 [server] 區段內有以下幾行:

[server]

DISABLE_SSH      = false
START_SSH_SERVER = true
SSH_PORT         = 23

這幾行應該都能望文生義。

改完後重啟服務,Gitea 的服務名稱為 snap.gitea.web.service:

$ sudo systemctl restart snap.gitea.web.service

看一下狀態:

$ sudo systemctl status snap.gitea.web.service

狀態為綠字就沒問題,再用 Git SSH 試試 pull / push,沒問題就沒問題。

跑到這邊差不多十分鐘,收工前來聊聊為什麼要自架 Git server。

為何自架 Git Server?

前面都是自架 Gitea 的 what & how,這邊談談 why,GitLab / GitHub 這麼香,又有免費的 CI 額度,為什麼還要自架 Git server(和 Drone CI)?

不是因為免費的 CI 不夠用,想要無限 CI runner 大可只架 CI 再串接 gitlab.com 就好。

自架 Git server 背後令人暖心的原因是組織的資安政策,他們認為把 Git server、xxx server 關在內網,就會很安全

這種資訊鎖國政策有沒有用,看看新冠疫情就知道了,總之、反正,就是這樣。


ALL RIGHTS RESERVED

Like my work?
Don't forget to support or like, so I know you are with me..

Loading...

Comment