Forgejo 與 Gitea,社群分支的授權與治理差異
2022 年 10 月,Forgejo 專案正式對外宣布成立。它的命名取自「forge」與世界語的構詞,象徵「協作的鍛造場」。Forgejo 最初被定位為 Gitea 的「軟分岔」(soft fork):程式碼基礎幾乎相同,但在治理與授權政策上走自己的路。
Forgejo 背後最關鍵的支持者是 Codeberg e.V.——一個註冊於德國的非營利協會,長期經營 Codeberg.org 這個以隱私與非商業化為核心理念的 Git 託管平台。Codeberg 不僅提供基礎設施與法律主體,也把「非營利治理」的基因帶進了 Forgejo。對許多原先參與 Gitea 的貢獻者而言,這正是他們期待的答案:一個不會被單一公司掌握、決策過程公開、且以社群利益為優先的專案。
從此,Gitea 與 Forgejo 走上了兩條不同的路。前者持續往「開源專案 + 商業公司」的混合模式發展;後者則朝「非營利基金會 + 成文治理」的方向前進。而這些治理選擇,最終也反映在授權條款的決策上。
二、授權條款的演進與比較
授權條款(License)是開源專案的法律地基。它決定了誰可以使用、修改、再散布這份程式碼,也決定了當商業利益與社群利益衝突時,法律站在哪一邊。Gitea 與 Forgejo 在這一點上,經歷了相當戲劇性的轉變。
(一) MIT 時代:開放,但保護力有限
Gitea 自 2016 年成立以來,長期採用 MIT 授權。MIT 是最寬鬆的開源授權之一:任何人可以自由使用、修改、合併、散布、再授權,甚至將其整合進閉源的商業產品,唯一的要求是保留原始的著作權聲明。對早期需要快速累積使用者的專案而言,MIT 幾乎是最佳選擇——它降低了所有人的採用門檻。
然而 MIT 的「寬鬆」也是一把雙面刃。它沒有 copyleft 條款,意味著如果有人拿 Gitea 的程式碼做出閉源產品,法律上完全站得住腳;它也沒有明確的專利授權條款,對於擔心專利風險的企業使用者而言,保障相對薄弱。當專案規模變大、開始有商業公司圍繞它建立產品時,這種「開放但不設防」的授權結構,就成為社群討論的焦點。
Forgejo 在分岔初期同樣沿用 MIT,以維持與上游的相容性。這個階段的兩個專案,在授權層面幾乎沒有差異。
(二) Gitea 的授權轉換與商業化路線
2024 年前後,Gitea 專案宣布將授權從 MIT 變更為 GNU 通用公共授權第三版(GPLv3)。這是一個相當大的轉向:從極度寬鬆的許可式授權,轉為具有強制開源義務的 copyleft 授權。官方說明的理由,大致圍繞在「確保專案與其衍生作品持續回饋社群」、「讓商業使用與社群貢獻之間有更公平的對價關係」。
但這項變更也伴隨著商業化的布局。Gitea 有限公司推動了企業版產品與雲端託管服務,形成「開源核心 + 商業加值」的雙軌模式。這種模式本身在開源界並不罕見,但當它與「品牌由公司持有」、「授權由公司主導變更」這兩個條件疊加時,社群的疑慮就會被放大:如果未來公司決定再次調整授權,或將某些功能移出開源版,貢獻者有什麼制度性的制衡手段?
另一個實務上的問題是「貢獻者同意」。授權變更通常需要取得所有貢獻者的同意,或至少確認其貢獻條款允許變更。Gitea 在處理這類程序時,社群的討論並不總是順暢,這也成為部分貢獻者轉向 Forgejo 的推力之一。
(三) Forgejo 為何選擇 GPLv3 或更高版本
Forgejo 在 2024 年也做出了授權調整,最終選擇了「GPLv3 或更高版本」(GPL-3.0-or-later)。與 Gitea 的 GPLv3 相比,這個「或更高版本」的授權設計,賦予使用者一個額外的選擇權:可以選擇遵循未來的 GPLv4(若出現),而不必被鎖死在單一版本。這在實務上被視為對使用者更友善、也更具前瞻性的安排。
更重要的是,Forgejo 的授權決策並非由單一公司拍板,而是經過社群討論、並與 Codeberg 的治理程序掛鉤。這使得「為什麼要換授權」與「換授權之後誰能受益」這兩個問題,都能在公開的脈絡下被檢視。對貢獻者而言,這種可預測性與可參與性,往往比授權條款本身的文字更重要。
值得一提的是,Forgejo 明確表示不會推出專有的企業版,也不打算用「開源核心 + 付費功能」的方式變現。它的資金來源主要依賴捐贈與 Codeberg 的會員制度,這在結構上降低了「商業壓力扭曲專案方向」的風險。
(四) 授權差異的實務影響
對多數自架使用者而言,MIT 與 GPLv3 的差異,在日常使用上幾乎感受不到——你自己架設、自己使用、不對外散布,兩種授權都不會對你造成額外義務。真正的差異出現在下列幾種情境:
比較項目
Gitea
Forgejo
初期授權
MIT
MIT(沿用自上游)
現行授權
GPLv3
GPL-3.0-or-later(GPLv3 或更高版本)
授權決策主體
核心維護者與 Gitea 有限公司
社群討論與 Codeberg 治理程序
專利條款
有(GPLv3 內建)
有(GPLv3 內建)
商業加值版本
有(企業版、雲端服務)
無專有版本,僅提供免費託管與捐贈支持
對閉源衍生的限制
三、治理結構的深層差異
如果說授權條款是「法律層面的規則」,那麼治理結構就是「實際上誰在決定事情」。這才是 Forgejo 與 Gitea 最根本的分野,也是多數使用者在選擇時最容易忽略、卻最值得深入理解的部分。
(一) 法律主體:營利公司 vs 非營利協會
Gitea 的品牌與營運,目前由 Gitea 有限公司主導。這是一家以營利為目的的企業實體,由核心維護者創立,負責專案的商業合作、商標管理與部分基礎設施。公司化的好處是決策快速、資源調度明確,也能以商業合約形式提供企業支援服務;缺點則是「專案利益」與「公司利益」之間可能出現張力。
Forgejo 則由 Codeberg e.V. 這個德國註冊的非營利協會作為法律後盾。協會的章程明定其非營利性質,決策必須遵循會員大會與理監事的程序。這種結構的優勢在於:專案不會被出售、不會被單一商業利益收購,治理程序相對穩定且可預測。劣勢則是決策速度較慢、資源成長依賴捐贈與會員支持。
對企業使用者而言,這個差異會直接影響「供應商風險」的評估。選擇 Gitea,意味著你有一個明確的商業實體可以簽約、可以要求支援;選擇 Forgejo,意味著你依賴的是一個非營利組織與活躍社群,商業支援需要透過第三方服務商或自行處理。
(二) 商標、網域與品牌控制
商標是開源專案治理中最容易被低估的資產。程式碼可以自由分岔,但名稱、Logo、網域與品牌認知,卻是使用者信任的來源。當商標由一家公司持有時,社群分支在行銷與辨識上就會處於劣勢——這也是 Forgejo 必須另立品牌的原因。
Gitea 商標與主要網域目前由 Gitea 有限公司掌握,這使得「誰能代表 Gitea 發聲」相對明確,但也讓社群在與公司意見相左時,缺乏使用原品牌的空間。Forgejo 則將商標與品牌交由 Codeberg 管理,並透過治理文件明定品牌使用的規則,降低了品牌被單一實體壟斷的風險。
對使用者來說,這個差異的實務意義在於:當你選擇 Gitea 時,你同時選擇了一個由公司主導的品牌生態;當你選擇 Forgejo 時,你選擇的是一個由非營利組織維護、且明文反對商業壟斷的品牌治理模式。
(三) 決策流程與爭議處理
Forgejo 在治理上的一大特色,是建立了相對成文的決策流程。專案文件中有明確的治理章節,規範了維護者(maintainer)的角色、決策的共識機制、以及當意見分歧時如何處理。這種「把規則寫下來」的做法,讓外部貢獻者能夠預期自己的提案會如何被評估,也降低了「少數人黑箱決定」的疑慮。
Gitea 的決策則相對依賴核心團隊的共識與公司的方向設定。這不代表它不透明,而是它的透明度建立在「核心維護者的公開溝通」上,而非制度化的程序文件。當核心團隊與公司立場一致時,效率很高;但當社群意見與公司方向出現落差時,缺乏制度性申訴管道就成為弱點——2022 年的商標爭議正是這種結構性問題的展現。
此外,Forgejo 在安全事件處理、版本發布決策上,也傾向建立獨立的團隊與流程,避免權力過度集中。這種設計雖然增加了行政成本,但對於需要長期信任的基礎設施專案而言,是值得的投資。
(四) 資金來源與商業化路線
Gitea 的資金來源包含商業服務(企業版、雲端託管、技術支援)與社群捐贈。商業化路線讓專案有較穩定的資源,但也意味著產品方向可能受到付費客戶需求的影響。這不是壞事,但使用者需要理解:你用的開源版本,與商業版本之間的功能邊界,是由公司決定的。
Forgejo 則明確拒絕專有版本路線,資金主要來自 Codeberg 的會員費、捐贈與志工投入。這種模式的成長速度較慢,但比較不會出現「核心功能被移到付費版」的疑慮。對重視長期穩定與非商業化的使用者而言,這是明顯的優勢。
四、功能與技術層面的分歧
雖然本文重點在授權與治理,但對實務使用者來說,功能差異同樣是選擇的關鍵。所幸在分岔初期,兩者的程式碼幾乎相同,差異主要來自後續的開發方向。
(一) 從同源到分道揚鑣
Forgejo 在成立後的頭一年,仍持續從 Gitea 上游合併變更,維持高度的相容性。這對使用者是好事:從 Gitea 遷移到 Forgejo 的成本極低,資料庫結構與設定檔大多可以直接沿用。但隨著時間推移,兩邊的開發優先順序開始不同。
Forgejo 在社群治理、無障礙設計、聯邦化(federation)實驗、以及與 Codeberg 平台整合上投入較多;Gitea 則在企業功能、Actions 生態、以及商業支援整合上著墨較深。兩者都支援類似的核心功能——儲存庫管理、Issue、Pull Request、套件 registry、CI/CD(Actions)——但在細節體驗與外掛生態上逐漸出現差異。
(二) 版本節奏與相容性
Forgejo 採用較規律的季度發布節奏,並在每次發布中明確標示向後相容性與升級注意事項。Gitea 的發布節奏也大致穩定,但由於商業版本的並行開發,部分功能的開源化時程會受到商業策略影響。
對自架管理者而言,這意味著:選擇 Forgejo,你可以預期一個相對可預測的升級路徑;選擇 Gitea,你則需要關注商業版本與開源版本之間的功能落差,並評估是否會影響你的使用情境。
五、對不同使用者的意義
理解授權與治理差異之後,最終還是要回到「你是誰、你需要什麼」。以下針對三類常見使用者,提供具體的判讀建議。
(一) 個人與小型團隊
對個人開發者或五人以下的小團隊而言,兩者的功能差異幾乎可以忽略,授權條款也不會對你造成實質義務。此時決策的重點應該放在「價值觀認同」與「長期維護信心」上:你比較認同由公司主導、節奏明快的專案,還是由非營利組織治理、程序公開的專案?
若你重視部署簡單、文件豐富、生態活躍,Gitea 是相對安全的選擇;若你重視非商業化、治理透明、以及對抗單一公司壟斷的結構性保障,Forgejo 會更符合你的期待。兩者的遷移成本都很低,先試用再決定是完全合理的策略。
(二) 企業與自架需求
企業使用者的考量更複雜,通常包含:授權合規、供應商支援、安全更新承諾、以及長期維護風險。
實務上,不少企業會選擇 Gitea 作為生產環境,並在內部建立自己的分支或鏡像,以降低上游治理變動的衝擊;也有企業選擇 Forgejo,並透過與 Codeberg 生態的合作取得支援。沒有絕對正確的答案,關鍵是把風險顯性化、並預先規劃應對方案。
(三) 開源專案與貢獻者
對想要貢獻程式碼的開發者而言,治理結構直接決定了「你的意見有沒有份量」。在 Forgejo,貢獻者有相對明確的提案與討論管道,決策過程有文件可循;在 Gitea,核心團隊與公司的影響力較大,外部貢獻者需要更主動地争取話語權。
這並不是說 Gitea 不歡迎貢獻,而是兩者對「貢獻者參與決策」的制度設計不同。若你希望自己的貢獻能被納入一個有明文治理保障的專案,Forgejo 的結構可能更適合;若你更在意功能推進速度與商業生態連結,Gitea 仍有其吸引力。
六、結論與建議
Forgejo 與 Gitea 的分岔,本質上是開源社群對「專案所有權」與「決策正當性」的一次公開辯論。Gitea 選擇了公司化的道路,換取資源與速度;Forgejo 選擇了非營利治理,換取透明與制衡。兩者沒有絕對的優劣,只有適不適合你的情境。
若要用一句話總結差異:Gitea 的風險是「治理集中」,Forgejo 的風險是「資源分散」。前者可能在商業壓力下調整方向,後者可能在成長速度上落後。理解這一點,你就能根據自身的風險承受度做出選擇。
最後提供三個實務建議:
開源專案的價值,從來不只是程式碼本身,而是圍繞程式碼所形成的社群與制度。Forgejo 與 Gitea 的故事提醒我們:當我們選擇一套自架工具時,我們其實也在選擇一種治理模式。理解這一點,才能做出真正適合自己的決定。
💬 想說點什麼?
歡迎到留言板分享你的想法、心得或疑問。
💬 前往留言板 →