利用 Gitea 架一台 GitLFS Server

Eric Hsu
KKday Tech Blog
Published in
3 min readMay 21, 2019

自從進公司以來使用 GitHub 服務來放程式碼已經兩年多,一直困擾我的便是 GitHub 對於 100MB 單檔 commit 限制

為此, GitHub 有提供的 GitLFS 服務,不過在免費限額常被用完的窘境下,我決定自己獨立架設一台 GitLFS Server 救急。

以我開發 iOS App 專案的例子來說,這些大檔案也不一定要版本控管,他們都是屬於套件管理 Cocoapods 和 Carthage 產生的編譯暫存及程式碼,若上傳至 GitHub,則可以增加 CI 編譯前處理的速度。最常遇到的大檔案就是 OpenCV 以及 WebRTC lib 檔案了。

簡單記錄一下我做的心路歷程

GitLFS Server

從 GitLFS 的 Wiki 中看到一些 Open Source 的實作列表,我沒有做太多比較,基本上玩了一下第一項的 artemkin/git-lfs-server 以及 Gitea 之後,就選了 Gitea 了,因為第一項太簡陋,其他例如 GitLab 又太肥,我只是要一個 LFS Server 功能而已

安裝 Gitea

  1. 找一台可以對外的伺服器,並到 Gitea 下載執行檔,這裡示範放到 /Users/gitea/ 目錄下

ref: https://github.com/go-gitea/gitea/releases

2. 新增登入自動執行設定檔 ~/Library/LaunchAgents/lfs-server.plist

3. 執行 launchctl load ~/Library/LaunchAgents/lfs-server.plist 啟動服務

設定 GitLFS

後記

用Nginx 做了個 reverse proxy

https://docs.gitea.io/zh-tw/reverse-proxies/

遇到 client max size 問題

https://github.com/go-gitea/gitea/issues/2930

收工~

--

--