開發者另類的自架 Git 服務選擇: Gitea

現在 Git 服務最有名的就是 Github,如果是開放原始碼,我很推薦 Github。如果是想要放大量私有專案或企業內及個人使用,想必大家會推薦 Gitlab,在這裡就不多介紹 Gitlab 了,可以從 Google 找到許多相關資料,本篇會介紹另類的 Git 自架服務選擇 Gitea,在介紹之前可以先參考我在 2014 年寫了一篇用 Go 語言開發的 Git 服務叫做 Gogs

緣起

Gitea 是 2016 下半年由 @bkcsoft, @lunny@tboerger其他開發者共同發起,從原本的 Gogs 專案在分支出來,在剛開始起來的時候,很多開發者一直詢問為什麼會有 Gitea,而不是持續開發 Gogs,於是 Gitea 官方寫了一篇文章關於 Gitea 誕生,裡面詳細介紹為什麼會有 Gitea,有興趣的可以去看看,最主要的原因就是為了讓專案可以持續發展,而不是受限於個人因素,大家都知道 Open Source 到最後最難持續的就是找到更多人來維護專案,所以 Gitea 為了避免 Issue 或 Pull Request 太久沒人處理,我們訂了一個機制,就是 PR 只要通過兩位 Reviewer 留言 LGTM 就可以直接 Merged,這也讓更多開發者願意貢獻到 Gitea。從去年 12 月到現在 2017 年 1 月,已經 Release 了兩個版本。

安裝

為了能讓 Gogs 用戶可以無痛轉換到 Gitea,我們寫了一篇升級教學,除此之外,也提供了各種安裝方式: Docker 安裝下載執行檔用套件Windows 安裝自行編譯 .. 等各種方式。最簡單的方式就是透過下載執行檔,只要一個指令就可以看到歡迎畫面了

1
./gitea web

安裝頁面   Gitea  Git with a cup of tea

將來如果要升級 gitea,更是容易,你不用停掉 gitea 服務,只要下載新的檔案,覆蓋掉原有的執行檔,接著下: (其中 custom/run/app.pid 是 gitea 執行的 pid 記錄檔)

1
kill -USR2 $(cat custom/run/app.pid)

就可以完成升級,原本的服務也不會因此而中斷。這要感謝 Facebook 開發的 grace 套件,這套件並不支援 Windows,所以上面的升級方式不適用在 Windows 平台,不過我相信很少人會把 Git 服務架在 Windows 系統。

總結

在這邊先跟大家聊一下為什麼要選 Gitea:

  1. Gitea 是用 Golang 所撰寫。
  2. 使用介面跟 Github 很類似,如果你已經很習慣 Github,那轉換到 Gitea 一定不會很陌生。
  3. 安裝及升級比其他服務來得容易 (Gitlab, Bitbucket)
  4. 如果家中有 Raspberry Pi 硬體,你可以輕易地將 Gitea 放在上面執行
  5. 跨平台: Gitea 可以運作在任何 Go 能夠編譯的平台: Windows, macOS, Linux, ARM 等等

現在官方有支援繁體中文,歡迎大家加入翻譯行列。


See also