十分鐘自架 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 關在內網,就會很安全。
這種資訊鎖國政策有沒有用,看看新冠疫情就知道了,總之、反正,就是這樣。
喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!