Ugrás a fő tartalomra
50% kedvezmény minden csomagra, korlátozott ideig. Már $2.48/mo
14 min left
Fejlesztői eszközök és DevOps

Gitea vs Forgejo vs OneDev: önhosztolt git platform kiválasztása

B Szerző: Bill 14 perc olvasás
Gitea vs Forgejo vs OneDev: choosing between a lightweight self-hosted git server and an all-in-one dev platform.

Egy gitea kontra forgejo kontra onedev összehasonlításban valójában három olyan eszközt nézel, amelyek két különböző kérdésre válaszolnak. A Gitea és a Forgejo git szerverek, amelyekre projektmenedzsmentet csatoltak. A OneDev egy projektmenedzsment-és-CI platform, amely mellékesen nagyon jól hosztolja a git-et is. Tehát a döntés nem az, hogy „melyik a legjobb a három közül”. Hanem az, hogy „egy kis git szervert szeretnék, vagy egy mindent-egyben platformot, és megengedhetem-e magamnak azt a RAM-ot, amibe a mindent-egyben kerül?”

Az utolsó rész a feszültség forrása. A OneDev többet tud alapból, és a nodatools.com tesztje szerint alapjáraton nagyjából 3-szor annyi memóriát használ, mint egy csupasz Forgejo telepítés, ami egy kis VPS-en megduplázhatja a havi számlát. Ez a kompromisszum az egész lényege. (És nem, a GitLab nem szerepel ebben az összehasonlításban. Ha a GitLab lábnyomát keresnéd, nem erről a háromról olvasnál.)

Mindhármat futtattam már. Az alábbiakban az szerepel, ami valóban számít, amikor egy csapat számára választasz: az irányítási és licencbeli különbségek, amelyek elválasztják a Gitea-t a Forgejo-tól, a funkciók, amelyek indokolják a OneDev létjogosultságát, a tesztelt RAM-számok, valamint egy egyenes „ezt válaszd, ha…” mindegyikhez.

Röviden

  • Egy könnyűsúlyú git szervert szeretnél Actions-stílusú CI-vel? Gitea vagy Forgejo. Válaszd a Gitea-t, ha fontos a szorosabb GitHub Actions kompatibilitás; válaszd a Forgejo-t, ha elfogadható a GitHub-szerű workflow-szintaxis néhány migrációs finomítással.
  • Fontos számodra a nonprofit irányítás vagy a copyleft licenc? Forgejo. Ez a közösség által irányított fork, és a legtöbb csapat számára ez az alapértelmezett választásom.
  • Az MIT licencet, a legnagyobb forge közösséget, vagy egy fizetős Enterprise szintet szeretnél SLA-val/SSO-val? Gitea.
  • Beépített projektmenedzsmentet, csomagolt CI-t és kódintelligenciát szeretnél egyetlen telepítésben, és van felesleges RAM-od? OneDev. Csak tudd, hogy ~4 GB minimumra van szüksége ott, ahol a Forgejo megelégszik 1 GB-tal.

Gyors ítélet: A legtöbb csapat számára a Forgejo a helyes, kis erőforrásigényű alapértelmezett választás: ugyanaz a mag, mint a Giteánál, tisztább irányítás, és a Forgejo Actions GitHub-szerű workflow-szintaxissal. A OneDev-hez csak akkor nyúlj, ha valóban a beépített, egy dobozban kínált PM-plusz-CI élményt szeretnéd, és nem kell egy csomó meglévő GitHub Actions workflow-t migrálnod.

A két kérdés, amire ez a három eszköz választ ad

Diagram contrasting Gitea and Forgejo as a lightweight git platform with a separate CI runner against OneDev as an all-in-one platform bundling git hosting, built-in CI, project management, and code intelligence.

A OneDev a CI build daemonját a OneDev folyamaton belül futtatja, így nincs külön runner, amit telepíteni kellene. A Gitea és a Forgejo ennek az ellenkezőjét teszi: a git szerver egy önálló dolog, és a CI runnert külön folyamatként telepíted mellé. Ez az egyetlen architektúrabeli tény árulja el, hogyan gondolkodik magáról az adott eszköz.

A Gitea és a Forgejo elsősorban git-központú. A repók, pull requestek és a kódreview a mag; az issue-k és a kanban hasznos kiegészítők; a CI pedig valami, amit hozzácsatolsz. Az egész a git hosztolása köré épül, úgy, hogy közben nem áll az utadba. Ezért kicsik, gyorsak és olcsón üzemeltethetők.

A OneDev fordítva épül fel. Egy projektmenedzsment és CI/CD platform, ahol a git hosztolás egy elsőrangú komponens, de nem a szervező elv. A kanban táblák automatizáltak, a CI beépített, a kódintelligencia beépített, és arra számít, hogy a csapatod ott „éljen”, ne csak a kódod feküdjön ott. Ez egy valóban más termék, ezért téveszti el a lényeget, ha a „ki hosztolja jobban a git-et” szempontból hasonlítod össze a Giteával. Nagyjából egyformán jól hosztolják a git-et. A OneDev csak sokkal többet akar csinálni, és ezért erőforrásokban fizettet meg téged.

Minden további döntés ehhez a felosztáshoz igazodik. A Gitea kontra Forgejo választás egy aldöntés a „könnyűsúlyú forge” ágon belül. A „megéri-e a OneDev” kérdés teljesen a másik ág.

Gitea vs Forgejo: a majdnem-ikrek közötti döntés

Comparison of Gitea and Forgejo governance: Gitea is MIT-licensed, company-backed, with an Enterprise tier and larger ecosystem, while Forgejo is GPL-3.0, non-profit governed, with public security disclosures and an all-free build.

Mindkettő nagyjából 180–350 MB RAM-ot használ, mindkettő ugyanazt a kódbázist osztja meg a forkolás pontjáig, és mindkettő ugyanúgy végzi az alapvető git hosztolást. A repók, pull requestek, kódreview, issue-k és az Actions-stílusú CI tekintetében nehéz lesz érdemi különbséget találnod a napi használatban, hacsak nem meglévő GitHub Actions workflow-kat migrálsz. Szóval tisztázzuk elöljáróban: ez nem funkciók közötti versengés. A onedev kontra gitea szakadék széles; a gitea kontra forgejo különbség arról szól, ki irányítja a projektet, és milyen licenc alatt adják ki.

Íme a háttér, amire tényleg szükséged van. 2022 októberében a Gitea domain és a védjegy egy irányítási vita középpontjába került, és válaszul jött létre a Forgejo. A Forgejo ma a Codeberg e.V. alatt működik, amely egy németországi nonprofit szervezet, és GPL-3.0 licenc alatt adják ki. A Gitea továbbra is MIT licencű, van ingyenes, nyílt forráskódú, önhosztolható kiadása, miközben a CommitGo mellette a Gitea Enterprise-t is árulja. A Forgejo így írja le ezt a megállapodást Open Core-nak; a Gitea/CommitGo vitatja ezt a besorolást, és azt állítja, hogy maga a nyílt forráskódú Gitea projekt nem tartalmaz zárt forráskódot. Az olvasók számára a gyakorlati különbség egyszerűbb, mint a politika: a Forgejo a nonprofit, copyleft, teljesen ingyenes kormányzásra optimalizál; a Gitea a megengedő MIT magot kínálja, plusz egy gyártói támogatású Enterprise utat.

Ebből három dolog következik, és mindegyik befolyásolja a döntést:

  • Licenc. A GPL-3.0 copyleft (Forgejo) azt jelenti, hogy ha módosítod a Forgejo-t, és terjeszted a módosított verziót, a változtatásaidat GPL alatt kell megosztanod. Az MIT (Gitea) ezt nem követeli meg. A legtöbb csapat számára, akik módosítatlan példányt futtatnak belsőleg, ez soha nem merül fel. De ha a forge-ra építesz és azt szállítod tovább, ez számít.
  • Biztonsági közlemények. A Forgejo nyilvános csatornákon keresztül mindenkit értesít a biztonsági közleményekről. A Gitea az előzetes biztonsági értesítéseket a fizető Enterprise-ügyfeleknek tartja fenn, ami azt jelenti, hogy az önhosztolt, ingyenes csomagot használó adminok tovább lehetnek kitéve egy ismert sebezhetőségnek, mint a fizető ügyfelek. Ha az ingyenes verziót futtatod, érdemes tudni erről az aszimmetriáról.
  • Az egyik oldalon létezik fizetős csomag. A Gitea rendelkezik egy kereskedelmi Enterprise Edition kiadással ($9.50–$19/felhasználó/hónap), amely SSO-t, audit naplókat, elsőbbségi támogatást és SLA-t ad hozzá. A Forgejo-nak nincs fizetős csomagja, minden funkció benne van az ingyenes GPL buildben.

Ha ma Gitea-t használsz, és ez a Forgejo felé terel, a jó hír, hogy létezik támogatott migrációs út (a Gitea 1.22-nél lévő verziós határvonallal, amelyet érdemes megérteni, mielőtt nekiállsz). Ezt külön leírtam, lásd a teljes migrációs bemutató a verziónkénti bontásért. Ha GitHub-ról jössz, és még nem választottál forge-ot, az egy külön döntés a saját kompromisszumaival, amit érdemes önmagában végiggondolni.

A szakasz lényege: az alapvető git hosting terén a Gitea és a Forgejo döntetlenre áll. Válaszd a Forgejo-t, ha nonprofit tulajdonlást, copyleft licencet és nyilvános biztonsági közleményeket szeretnél. Válaszd a Gitea-t, ha az MIT licencet, a nagyobb közösséget vagy a kereskedelmi Enterprise szintet szeretnéd.

Miben tényleg más a OneDev

Futtasd a OneDev-et (jelen írás szerint 16.0.1) egy napig, és az első dolog, amit észreveszel, hogy soha nem kellett CI futtatót telepítened. A build daemon a OneDev szerveren belül fut, így a CI abban a pillanatban működik, amint a platform elindul. Pipeline-t építhetsz egy GUI-ban egyetlen sor YAML megírása nélkül, egy feladatot webterminálon keresztül hibakereshetsz, és egy buildet még commit nélküli helyi változtatások ellen is tesztelhetsz, mielőtt push-olnál. Ez valódi üzemeltetési egyszerűsítés a Gitea és a Forgejo által megkövetelt "telepítsd a szervert, majd telepíts és regisztrálj egy külön futtatót" tánchoz képest.

A csapda, és ez meglévő csapatok számára jelentős, hogy a OneDev saját YAML dialektust használ. Ez nem GitHub Actions-kompatibilis. Minden GitHub, Gitea vagy Forgejo számára írt workflow-t át kell írni ahhoz, hogy a OneDev-en fusson. Ha van egy csomó .github/workflows fájlod, amelyekre támaszkodsz, az valódi migrációs költség, nem lábjegyzet. A Gitea és a Forgejo egyaránt örökli a GitHub Actions ökoszisztémáját, de nem ugyanúgy. A Gitea Actions úgy lett tervezve, hogy közvetlenül helyettesítse a GitHub Actionst, így a legtöbb workflow változtatás nélkül átvihető. A Forgejo runnere a gyakorlatban kompatibilis, de vannak dokumentált hiányosságai: hiányzó permissions alkulcs, figyelmen kívül hagyott continue-on-error, eltérő OIDC szintaxis. Ezeket ellenőrizd, mielőtt teljes hordozhatóságot feltételeznél.

A második dolog, amit a OneDev tud, de a kisebb forge-ok egyszerűen nem: kódintelligencia a webes UI-ban. A szimbólumkeresés, a definícióra ugrás és a hivatkozások keresése számos nyelven működik (a hivatalos lista Java, JavaScript, C, C++, C#, Go, PHP és Python nyelveket tartalmaz) anélkül, hogy a repót helyben klónoznád. A Gitea és a Forgejo nem tartalmaz ehhez hasonló beépített funkciót, így külső eszközhöz kellene nyúlnod. Ha a csapatod sok kódellenőrzést végez a böngészőben, ez tényleg hasznos.

Egészítsd ki mindezt egy teljesen automatizált kanbannal (szabályalapú feladatmozgatás, egyedi állapotok és mezők, átmeneti szabályok), egy service deskkel, amely a bejövő e-maileket issue-vá alakítja anélkül, hogy a küldőnek fiókra lenne szüksége, valamint nyilvános projekteken belüli bizalmas issue-kkal, és megvan a kép: a OneDev egyszerre próbál lenni az issue tracker, a CI rendszer, a kódböngésző és a projekttábla.

Érdemes tisztázni valamit a csomagregisztrikkal kapcsolatban. A OneDev-nek van beépített registrye; ez a rész egyértelmű. A csomag oktatóanyag felsorolja a Docker, npm, NuGet, Maven, PyPI és RubyGems formátumokat, míg a jelenlegi termékleírás a Helm-et is megemlíti. A Gitea és a Forgejo még mindig sokkal szélesebb csomagformátum-készletet fed le, beleértve az Alpine, Arch, Cargo, Composer, Conan, Conda, Debian, Go, Helm, Maven, npm, NuGet, PyPI, RPM, RubyGems, Swift, Vagrant és más formátumokat is. Ha a csapatod a OneDev szűkebb regiszterkészletén kívüli csomagformátumokra támaszkodik, a Gitea vagy a Forgejo a biztonságosabb választás.

A szakasz lényege: a OneDev egyetlen telepítésben ad beépített CI-t, kódintelligenciát és egy teljes PM csomagot. Ezért cserébe át kell írnod a meglévő GitHub Actions workflow-kat, el kell fogadnod egy kisebb ökoszisztémát, és (ahogy a következő szakasz taglalja) jóval több RAM-ot kell adnod neki.

Az erőforrásköltség: mire van ténylegesen szükségük

Idle RAM comparison showing Forgejo at about 180 MB and Gitea at about 200 MB as lightweight forges, versus OneDev at about 600 MB idle as an all-in-one platform, with VPS sizing guidance of 1 GB for a lean manual install and 4 GB or more for OneDev.

A szám, amely sok csapat számára eldönti ezt az egész összehasonlítást, a nodatools.com tesztjéből származik: a OneDev alapjáraton nagyjából 600 MB RAM-ot használt, míg a Forgejo körülbelül 180 MB-ot. Ez több mint 3-szoros, és terhelés alatt tovább nő. Íme a tesztelt számaik innen: nodatools.com's measured comparison, futtatva egy friss VPS-en:

EszközJelenlegi verzióRAM üresjáratban (tesztelve)Aktív RAM terhelés alatt (tesztelve)Hivatalos minimum
Forgejov15.0.3 LTS~180 MB~320 MB512 MB
Gitea1.26.4~200 MB~350 MB512 MB
OneDev16.0.1~600 MB~950 MB2 GB

Miért van ez a különbség? A OneDev nagyrészt Java nyelven íródott, így a JVM olyan heap többletköltséget hordoz, amellyel a Go alapú Gitea és Forgejo egyszerűen nem rendelkezik. Ráadásul a OneDev indexeli a kódot az intelligencia funkcióihoz, és ez a kezdeti indexelés memóriaéhes. Amikor először állítottam fel, az indításkori csúcs volt a legijesztőbb rész, és ez nem az állandósult állapot.

Szakértői tipp: ne ijedj meg a OneDev indítási memóriahasználatától. Ez közvetlenül indítás után megugorhat, amíg a JVM bemelegszik és felépül a kezdeti kódindex, majd a rendszer stabilizálódása után visszaáll az alapjárati értékhez közeli szintre. Ennek ellenére a reális működési számmal tervezz, ne az alapjáratival. Ha a CI aktívan futtat feladatokat, számolj folyamatosan 1–2 GB-tal. A 2 GB hivatalos minimum nem véletlenül van megadva.

Méretezés szempontjából ez tisztán lefordítható VPS-kategóriákra:

  • Forgejo vagy Gitea, alaptelepítés, CI runner nélkül a gépen: 1 GB RAM / 1 vCPU is comfortable.
  • Forgejo vagy Gitea CI runnerrel ugyanazon a szerveren: emeld meg 4 GB RAM-ra / 2 vCPU-ra, hogy a futtatónak legyen helye.
  • OneDev, alaptelepítés: 4 GB RAM is the practical floor. Go to 8 GB if code indexing is heavy or CI is busy.

Vagyis a költségkülönbség egyáltalán nem elhanyagolható. Egy letisztult git szerver, amely megelégszik 1 GB-os géppel, a 4 GB-ot kívánó OneDev-példánnyal szemben nagyjából a havi VPS-számla megduplázódását jelenti. Egy magányos fejlesztő vagy kis csapat esetében ez a különbség a "gyakorlatilag ingyen futtatható" és egy olyan tétel között, amit észre fogsz venni. Egy nagyobb csapatnál, amely naponta a beépített CI-re és PM-re támaszkodik, ez teljesen megérheti. De ez egy valódi csere: a OneDev többletköltsége a JVM, és ez a költség adja azt, amit a JVM futtat.

Gitea, Forgejo, és OneDev mind egykattintásos telepítések itt: A Cloudzy piactere, tehát ha egyszer méretezted, egy forge felállítása pár percet vesz igénybe ahelyett, hogy egy egész délutánt a Docker bűvészkedéssel töltenél. Ha CI runnert vagy a OneDev kódindexelését futtatod, a plusz tartalék egy Linux VPS root hozzáféréssel, így magad hangolhatod a JVM heapet és a futtató párhuzamosságát.

Egy Cloudzy-specifikus megjegyzés: a Marketplace alkalmazáskártyák jelenleg 2 GB RAM-mal indítják a Gitea-t, a Forgejo-t és a OneDev-et. A fenti 1 GB-os ajánlás a helyi CI runner nélküli, letisztult, manuális telepítésekre vonatkozik. Ha a Cloudzy Marketplace-en keresztül telepítesz, kövesd az alkalmazáskártya minimumát, hogy az operációs rendszernek, az adatbázisnak, a csomagfrissítéseknek és a háttérszolgáltatásoknak legyen mozgástere.

Melyiket válaszd?

Láttad a táblázatot és a kompromisszumokat, szóval itt van az egyenes véleményem minden olvasói profilhoz, mindhárom futtatásából szerzett tapasztalat alapján.

Válaszd a Forgejo-t ha egy könnyűsúlyú, közösség által irányított forge-ot szeretnél Actions-stílusú CI-vel, és el tudod fogadni a GitHub Actions-től eltérő kisebb workflow különbségeket. Ez az alapértelmezett ajánlásom a legtöbb csapat számára. Ugyanazt az alapvető git hostingot kapod, mint a Gitea-nál, tisztább nonprofit tulajdonlást, nyilvános biztonsági közleményeket, copyleft licencet, és a három közül a legkisebb RAM lábnyomot. Ha nincs konkrét okod egy másik választására, ezt válaszd.

Válaszd a Gitea-t, ha kifejezetten az MIT licencet szeretnéd (megengedőbb, mint a Forgejo GPL-3.0 licence), a legnagyobb forge közösséget és ökoszisztémát, vagy egy kereskedelmi Enterprise szintet SSO-val, audit naplókkal és SLA-val. A nyers git hosting terén döntetlenre áll a Forgejo-val, így a licenc és a tulajdonlási preferencia alapján választasz, plusz a fizetős támogatási lehetőség, ha a szervezetednek szüksége van egy gyártóra, akit felhívhat.

Válaszd a OneDev-et, ha beépített projektmenedzsmentet, csomagolt CI-t és kódintelligenciát szeretnél egyetlen telepítésben, teljesen nulláról indulsz (nincsenek meglévő GitHub Actions workflow-jaid migrálandó), és megvan a RAM-kereted egy 4 GB feletti géphez. A Forgejo és a OneDev közötti döntés valójában erre vezethető vissza: git szervert veszel, vagy platformot? Ha a válasz "platform, és nem akarok magam CI-t rácsatolni", akkor a OneDev megéri a többletköltségét.

Egy könnyen figyelmen kívül hagyott döntési szempont: nincs migrációs út a Gitea/Forgejo család és a OneDev között. Eltérő adatmodell, eltérő CI-formátum, eltérő séma. Ha Forgejo-val kezdesz, és később úgy döntesz, hogy OneDev-et szeretnél (vagy fordítva), egy API-alapú, repónkénti átállásra számíthatsz, amely elveszíti a CI-előzményeidet és a projektmenedzsment-adataidat. Tehát ha a OneDev mindent-egyben megközelítése egyáltalán vonzó számodra, sokkal olcsóbb ott kezdeni, mint később átváltani rá. A Gitea és a Forgejo között viszont létezik migráció (ez a a migrációs út fentebb tárgyaltuk), de a könnyűsúlyú forge-ról OneDev-re való átlépés egyirányú, adatvesztéssel járó út. Ezt vedd figyelembe a döntésnél most, ne tizennyolc hónap múlva.

Gyakran ismételt kérdések

Még mindig nyílt forráskódú a Gitea?

Igen. A Gitea magja MIT licencű, és korlátlan számú felhasználóval és repositoryval ingyenesen önállóan üzemeltethető. A gyakorlati fenntartás nem a forráskód elérhetőségére, hanem a kormányzásra vonatkozik: a Gitea céges irányítás alatt áll, és a CommitGo révén gyártói támogatású Enterprise ajánlattal rendelkezik, míg a Forgejo a Codeberg e.V. alatt működő, közösség által irányított, GPL licencű fork. A Forgejo Gitea kereskedelmi konstrukcióját Open Core-ként írja le; A Gitea/CommitGo vitatja ezt a minősítést és azt állítja, hogy maga a nyílt forráskódú projekt nem tartalmaz zárt forráskódot. Vagyis a Gitea továbbra is nyílt forráskódú, de nem közösség által irányított ugyanúgy, mint a Forgejo.

Jobb a Forgejo, mint a Gitea?

Az alapvető git hosztolás terén szinte teljesen megegyeznek: a Forgejo a Gitea-ból forkolódott, és ugyanazt az alapot használja. A Forgejo az irányításban (nonprofit Codeberg e.V.), a licencben (GPL-3.0 copyleft a Gitea MIT licencével szemben) és a biztonsági közlemények kezelésében (mindenki számára nyilvános, szemben a Gitea Enterprise-ügyfeleket előnyben részesítő politikájával) különbözik. Hogy melyik a „jobb”, attól függ, mennyire számítanak neked ezek a szempontok; pusztán a funkciók alapján döntetlen.

Mennyi RAM-ra van szüksége a OneDev-nek?

A OneDev hivatalos minimuma 2 GB RAM. A nodatools.com tesztjében üresjáratban körülbelül 600 MB-ot használt, terhelés alatt pedig nagyjából 950 MB-ot ért el. Indításkor magasabb lehet, amíg a JVM bemelegszik és az indexelés befejeződik, de aktívan futó CI mellett folyamatosan 1–2 GB-ot érdemes betervezni. Összehasonlításképp ugyanez a teszt a Forgejo-t és a Gitea-t ~180–200 MB körüli üresjárati értéken mérte.

Migrálhatok Gitea-ból OneDev-be, vagy OneDev-ből Forgejo-ba?

Nincs közvetlen migrációs út a Gitea/Forgejo család és a OneDev között. Eltérő adatmodelleket, CI-formátumokat és sémákat használnak, így az átállás egy API-alapú, repónkénti migrációt igényelne, amely elveszíti a CI és a projektmenedzsment előzményeit. A Gitea és a Forgejo közötti migráció viszont létezik (lásd a Gitea-Forgejo migrációs útmutatónk), mivel közös eredetűek.

Támogatja a OneDev a GitHub Actionst?

Nem. A OneDev saját YAML dialektust használ egy GUI pipeline-szerkesztővel kiegészítve, így a GitHub, Gitea vagy Forgejo számára írt workflow-kat át kell írni ahhoz, hogy fussanak rajta. A Gitea Actions közvetlen helyettesítőnek lett tervezve, így a legtöbb meglévő workflow változtatás nélkül fut. A Forgejo runnere a gyakorlatban kompatibilis, de nem arra tervezték, hogy pontosan tükrözze a GitHub Actionst; nézd meg a hivatalos Forgejo dokumentációt a dokumentált inkompatibilitásokért, mielőtt teljes hordozhatóságot feltételeznél.

Share

Több a blogról

Folytassa az olvasást.

Készen áll a telepítésre? Már 2,48 $/hó-tól.

Független felhő 2008 óta. AMD EPYC, NVMe, 40 Gbps. 14 napos pénzvisszafizetési garancia.