利用 Gitea 架一台 GitLFS Server
自從進公司以來使用 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
- 找一台可以對外的伺服器,並到 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
收工~