Přejít na hlavní obsah
Sleva 50% všechny plány, omezený čas. Od $2.48/mo
14 min left
Vývojářské nástroje a DevOps

Gitea vs Forgejo vs OneDev: Výběr self-hosted git platformy

B Autor: Bill 14 min čtení
Gitea vs Forgejo vs OneDev: choosing between a lightweight self-hosted git server and an all-in-one dev platform.

Ve srovnání gitea vs forgejo vs onedev se díváte na tři nástroje, které odpovídají na dvě různé otázky. Gitea a Forgejo jsou git servery, ke kterým je přidán projektový management. OneDev je platforma pro projektový management a CI, která navíc velmi dobře hostuje git. Rozhodnutí tedy není "který z těchto tří je nejlepší", ale "chci malý git server, nebo platformu vše v jednom, a mohu si dovolit RAM, kterou takové řešení stojí?"

A právě v tom je to napětí. OneDev toho nabízí víc rovnou po instalaci, ale testování nodatools.com naměřilo v klidovém stavu zhruba trojnásobek paměti oproti holé instalaci Forgejo, což na malém VPS může zdvojnásobit váš měsíční účet. Tento kompromis je celá podstata věci. (A ne, GitLab v tomto srovnání není. Kdybyste chtěli náročnost GitLab, nečetli byste o těchto třech.)

Vyzkoušel jsem všechny tři. Níže je to, na čem skutečně záleží při výběru pro tým: rozdíly v řízení projektu a licenci, které odlišují Gitea od Forgejo, funkce, které ospravedlňují existenci OneDev, naměřené hodnoty RAM a přímočaré "vyberte toto, pokud..." pro každou variantu.

Stručně

  • Chcete odlehčený git server s CI ve stylu Actions? Gitea nebo Forgejo. Zvolte Gitea, pokud vám záleží na těsnější kompatibilitě s GitHub Actions; zvolte Forgejo, pokud vám vyhovuje syntaxe workflow podobná GitHubu s několika úpravami při migraci.
  • Záleží vám na neziskovém řízení projektu nebo na copyleft licenci? Forgejo. Je to fork řízený komunitou a je to má výchozí volba pro většinu týmů.
  • Chcete licenci MIT, největší komunitu forge nebo placenou úroveň Enterprise se SLA/SSO? Gitea.
  • Chcete vestavěné projektové řízení, přibalené CI a inteligentní práci s kódem v jedné instalaci a máte RAM navíc? OneDev. Jen mějte na paměti, že potřebuje minimálně přibližně 4 GB, zatímco Forgejo si vystačí s 1 GB.

Rychlý verdikt: Pro většinu týmů je Forgejo správnou odlehčenou výchozí volbou: stejné jádro jako Gitea, přehlednější řízení projektu a Forgejo Actions se syntaxí workflow podobnou GitHubu. Po OneDev sáhněte jen tehdy, když opravdu chcete v jednom balíku spojený zážitek PM plus CI a nemigrujete hromadu existujících workflow GitHub Actions.

Dvě otázky, na které tyto tři nástroje odpovídají

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.

OneDev provozuje svého CI build daemona přímo uvnitř procesu OneDev, takže není potřeba nasazovat žádný samostatný runner. Gitea a Forgejo dělají opak: git server je jedna věc a CI runner nasazujete jako samostatný proces vedle něj. Tento jediný architektonický fakt prozrazuje, jak každý z nástrojů sám sebe chápe.

Gitea a Forgejo jsou primárně o gitu. Repozitáře, pull requesty a code review jsou jádrem; issues a kanban jsou užitečné doplňky; CI je něco, co si připojíte. Celé je to postaveno kolem hostování gitu a snahy vám nepřekážet. Proto jsou malé, rychlé a levné na provoz.

OneDev je postaven přesně naopak. Je to platforma pro projektový management a CI/CD, kde je hosting gitu plnohodnotnou součástí, ale ne organizačním principem. Kanban tabule jsou automatizované, CI je zabudované, inteligentní práce s kódem je součástí a očekává, že bude místem, kde váš tým žije, ne jen místem, kde leží váš kód. Je to opravdu jiný produkt, a proto srovnávání s Gitea na téma "kdo hostuje git lépe" míjí podstatu. Git hostují oba přibližně stejně dobře. OneDev prostě chce dělat mnohem víc a za tento luxus si účtuje ve zdrojích.

Vše další se odvíjí od tohoto rozdělení. Volba mezi Gitea a Forgejo je dílčí rozhodnutí uvnitř větve "odlehčený forge". Otázka "vyplatí se OneDev" je celá druhá, samostatná větev.

Gitea vs Forgejo: Rozhodování mezi téměř dvojčaty

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.

Oba se pohybují kolem 180 až 350 MB RAM, oba sdílejí stejnou codebase až do bodu forku a oba řeší základní hosting gitu stejným způsobem. U repozitářů, pull requestů, code review, issues a CI ve stylu Actions se v běžném provozu jen těžko najde smysluplný rozdíl, pokud zrovna nemigrujete existující workflow GitHub Actions. Řekněme si to tedy rovnou: nejde o souboj funkcí. Rozdíl mezi onedev a gitea je velký; rozdíl mezi gitea a forgejo je o tom, kdo projekt řídí a pod jakou licencí je vydáván.

Tady je pozadí, které skutečně potřebujete znát. V říjnu 2022 se doména a ochranná známka Gitea staly středem sporu o řízení projektu a Forgejo vzniklo jako reakce na to. Forgejo nyní funguje pod Codeberg e.V., neziskovou organizací v Německu, a je vydáváno pod GPL-3.0. Gitea zůstává licencovaná pod MIT a má bezplatnou open-source self-hosted edici, zatímco CommitGo vedle ní prodává Gitea Enterprise. Forgejo toto uspořádání popisuje jako Open Core; Gitea/CommitGo toto označení odmítá a tvrdí, že samotný open source projekt Gitea neobsahuje žádný proprietární kód. Pro čtenáře je praktický rozdíl jednodušší než ta politika: Forgejo je optimalizované pro neziskovou, copyleft, zcela svobodnou správu; Gitea nabízí permisivní jádro MIT plus cestu Enterprise podporovanou dodavatelem.

Z toho plynou tři věci a každá z nich je pro rozhodnutí důležitá:

  • Licence. Copyleft licence GPL-3.0 (Forgejo) znamená, že pokud Forgejo upravíte a distribuujete upravenou verzi, musíte své změny sdílet pod GPL. MIT (Gitea) to nevyžaduje. Pro většinu týmů provozujících neupravenou instanci interně to nikdy nepřijde na přetřes. Pokud ale na forge stavíte a distribuujete ho dál, záleží na tom.
  • Zveřejňování bezpečnostních chyb. Forgejo informuje o bezpečnostních upozorněních všechny prostřednictvím veřejných kanálů. Gitea vyhrazuje předběžná bezpečnostní upozornění platícím zákazníkům Enterprise, což znamená, že administrátoři na bezplatné úrovni self-hosted mohou být vystaveni známé zranitelnosti déle než platící zákazníci. Pokud provozujete bezplatnou verzi, stojí za to o této asymetrii vědět.
  • Placená úroveň existuje jen na jedné straně. Gitea má komerční edici Enterprise ($9.50 až $19 za uživatele měsíčně), která přidává SSO, auditní logy, prioritní podporu a SLA. Forgejo nemá žádnou placenou úroveň, všechny funkce jsou v bezplatné GPL verzi.

Pokud dnes používáte Gitea a toto vás tlačí směrem k Forgejo, dobrou zprávou je, že existuje podporovaná migrační cesta (s verzní hranicí u Gitea 1.22, kterou stojí za to pochopit, než začnete). Napsal jsem to samostatně, viz kompletní postup migrace pro rozpis verze po verzi. Pokud přecházíte z GitHub a ještě jste si nevybrali forge, je to samostatné rozhodnutí s vlastními kompromisy a stojí za to ho projít samostatně.

Shrnutí sekce: v základním git hostingu jsou Gitea a Forgejo vyrovnané. Zvolte Forgejo, pokud chcete neziskové vlastnictví, copyleft a veřejné zveřejňování bezpečnostních chyb. Zvolte Gitea, pokud chcete licenci MIT, větší komunitu nebo komerční Enterprise úroveň.

Kde je OneDev opravdu jiný

Provozujte OneDev (v době psaní 16.0.1) jeden den a první, čeho si všimnete, je, že jste nikdy nenasadili CI runner. Build daemon žije přímo uvnitř serveru OneDev, takže CI funguje ve chvíli, kdy je platforma spuštěná. Pipeline si můžete sestavit v GUI bez napsání jediného řádku YAML, ladit úlohu přes webový terminál a otestovat build proti neodevzdaným lokálním změnám ještě před pushnutím. To je opravdové provozní zjednodušení oproti tanci "nainstalujte server, pak nainstalujte a zaregistrujte samostatný runner", který vyžadují Gitea i Forgejo.

Háček, a pro stávající týmy dost zásadní, je, že OneDev používá vlastní dialekt YAML. Je ne kompatibilní s GitHub Actions. Každý workflow, který jste napsali pro GitHub, Gitea nebo Forgejo, musí být přepsán, aby fungoval na OneDev. Pokud máte hromadu souborů .github/workflows, na kterých stavíte, jde o skutečný náklad migrace, ne jen o poznámku pod čarou. Gitea i Forgejo dědí ekosystém GitHub Actions, ale ne stejným způsobem. Gitea Actions je navrženo jako přímá náhrada GitHub Actions, takže se většina workflow přenese beze změn. Runner Forgejo je v praxi kompatibilní, ale má zdokumentované mezery: chybějící podklíč permissions, ignorované continue-on-error, odlišná syntaxe OIDC. Než předpokládáte plnou přenositelnost, zkontrolujte je.

Druhá věc, kterou OneDev dělá a menší forge prostě ne: inteligentní práce s kódem přímo ve webovém UI. Vyhledávání symbolů, přechod na definici a hledání referencí fungují napříč řadou jazyků (oficiální seznam zahrnuje Java, JavaScript, C, C++, C#, Go, PHP a Python) bez nutnosti klonovat repozitář lokálně. Gitea a Forgejo nic obdobného vestavěno nemají, takže byste sáhli po externím nástroji. Pokud váš tým hodně recenzuje kód v prohlížeči, je to opravdu příjemná věc.

Přidejte k tomu plně automatizovaný kanban (přesun úkolů na základě pravidel, vlastní stavy a pole, pravidla přechodů), service desk, který mění příchozí e-maily na issues bez nutnosti účtu odesílatele, a důvěrné issues uvnitř veřejných projektů, a máte jasno: OneDev se snaží být zároveň vaším issue trackerem, CI systémem, prohlížečem kódu i projektovou tabulí.

Stojí za to udělat jedno vyjasnění ohledně registrů balíčků. OneDev má vestavěný registr; to je jasné. Jeho návod k balíčkům uvádí Docker, npm, NuGet, Maven, PyPI a RubyGems, zatímco aktuální produktové texty zmiňují i Helm. Gitea a Forgejo stále pokrývají mnohem širší sadu formátů balíčků, včetně Alpine, Arch, Cargo, Composer, Conan, Conda, Debian, Go, Helm, Maven, npm, NuGet, PyPI, RPM, RubyGems, Swift, Vagrant a dalších. Pokud se váš tým spoléhá na formáty balíčků mimo užší sadu registrů OneDev, bezpečnější volbou je Gitea nebo Forgejo.

Shrnutí sekce: OneDev vám v jedné instalaci přináší vestavěné CI, inteligentní práci s kódem a kompletní sadu pro projektové řízení. Platíte za to přepsáním veškerých workflow z GitHub Actions, přijetím menšího ekosystému a (jak popisuje další sekce) potřebou dodat mu výrazně více RAM.

Náklady na zdroje: co každý z nich skutečně potřebuje

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.

Číslo, které pro řadu týmů rozhoduje celé toto srovnání, pochází z testování nodatools.com: OneDev v klidu spotřebovával zhruba 600 MB RAM, zatímco Forgejo asi 180 MB. To je více než trojnásobek a pod zátěží se rozdíl ještě zvětšuje. Zde jsou jejich naměřené hodnoty z nodatools.com's measured comparison, spusťte na čistém VPS:

NástrojAktuální verzeRAM v klidu (naměřeno)Aktivní RAM pod zátěží (naměřeno)Oficiální 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

Proč ten rozdíl? OneDev je napsán převážně v Java, takže JVM nese režii haldy, kterou Gitea a Forgejo postavené na Go prostě nemají. K tomu OneDev indexuje kód kvůli svým funkcím pro inteligentní práci s kódem, a tato počáteční indexace je náročná na paměť. Když jsem ho poprvé rozjížděla, výkyv při startu byl nejděsivější část, a přitom to není ustálený stav.

Tip: Nepanikařte kvůli paměti OneDev při spuštění. Krátce po startu může vyskočit výš, dokud se JVM zahřívá a probíhá počáteční indexace kódu, poté se ustálí zpět blíže k hodnotě v klidu. Nicméně počítejte s reálným pracovním číslem, ne s hodnotou v klidu. Při aktivně běžícím CI počítejte trvale s 1 až 2 GB. Oficiální minimum 2 GB má svůj důvod.

Z hlediska velikosti se to jasně převádí na úrovně VPS:

  • Forgejo nebo Gitea, základní instalace, bez CI runneru na serveru: 1 GB RAM / 1 vCPU is comfortable.
  • Forgejo nebo Gitea s CI runnerem na stejném serveru: navyšte na 4 GB RAM / 2 vCPU, aby měl runner dostatek prostoru.
  • OneDev, základní instalace: 4 GB RAM is the practical floor. Go to 8 GB if code indexing is heavy or CI is busy.

Rozdíl v nákladech tedy není nenápadný. Odlehčený git server, kterému stačí box s 1 GB, oproti instanci OneDev, která chce 4 GB, znamená zhruba zdvojnásobení měsíčního účtu za VPS. Pro samostatného vývojáře nebo malý tým je to rozdíl mezi "v podstatě zdarma na provoz" a položkou, které si všimnete. Pro větší tým, který se bude na zabudované CI a projektové řízení spoléhat denně, se to rozhodně může vyplatit. Ale je to reálný kompromis: režie OneDev je JVM, a tato cena vám kupuje to, co JVM pohání.

Gitea, Forgejo, a OneDev jsou vše nasazení na jedno kliknutí v Cloudzy marketplace, takže jakmile si to spočítáte, rozjetí forge trvá pár minut místo celého odpoledne strávaného s Dockerem. Pokud provozujete CI runner nebo indexování kódu v OneDev, extra rezerva se hodí na Linux VPS s přístupem root, takže si sami můžete doladit haldu JVM i souběžnost runnerů.

Jedna poznámka specifická pro Cloudzy: karty aplikací v Marketplace aktuálně nastavují Gitea, Forgejo a OneDev na start s 2 GB RAM. Výše uvedené doporučení 1 GB platí pro odlehčené ruční instalace bez lokálního CI runneru. Pokud nasazujete přes Cloudzy Marketplace, řiďte se minimem uvedeným na kartě aplikace, aby měl operační systém, databáze, aktualizace balíčků a služby na pozadí dostatek prostoru.

Co bys měl zvolit?

Viděli jste tabulku i kompromisy, takže tady je můj přímý závěr pro každý profil čtenáře, na základě provozování všech tří.

Zvolte Forgejo pokud chcete odlehčený, komunitně řízený forge s CI ve stylu Actions a dokážete tolerovat drobné rozdíly workflow oproti GitHub Actions. Toto je moje výchozí doporučení pro většinu týmů. Získáte stejný základní git hosting jako u Gitea, čistší neziskové vlastnictví, veřejné zveřejňování bezpečnostních chyb, licenci copyleft a nejnižší nároky na RAM ze všech tří. Pokud nemáte konkrétní důvod zvolit některou z ostatních, zvolte toto.

Zvolte Gitea, pokud konkrétně chcete licenci MIT (permisivnější než GPL-3.0 u Forgejo), největší komunitu a ekosystém forge, nebo komerční úroveň Enterprise se SSO, auditními logy a SLA. V čistém git hostingu je to remíza s Forgejo, takže si vybíráte podle preference licence a vlastnictví, plus možnost placené podpory, pokud vaše organizace potřebuje dodavatele, kterému může zavolat.

Zvolte OneDev, pokud chcete vestavěné projektové řízení, přibalené CI a inteligentní práci s kódem v jedné instalaci, začínáte od nuly (nemáte žádná stávající workflow GitHub Actions k migraci) a máte rozpočet na RAM pro box se 4 GB a více. Rozhodnutí forgejo vs onedev se skutečně scvrkává na toto: kupujete si git server, nebo platformu? Pokud je odpověď "platformu, a CI si nechci lepit sám", OneDev si svou režii zaslouží.

Jeden vstup pro rozhodování, který se snadno přehlédne: mezi rodinou Gitea/Forgejo a OneDev neexistuje žádná migrační cesta. Jiný datový model, jiný formát CI, jiné schéma. Pokud začnete na Forgejo a později se rozhodnete pro OneDev (nebo naopak), čeká vás přesun přes API, repozitář po repozitáři, při kterém přijdete o historii CI a data projektového managementu. Pokud vás tedy přístup OneDev vše v jednom vůbec láká, je mnohem levnější začít rovnou tam než na něj přecházet později. Mezi Gitea a Forgejo migrace existuje (o tom je migrační cestu popsaných výše), ale přechod z odlehčeného forge na OneDev je cesta jedním směrem a se ztrátami. Zohledněte to v rozhodnutí teď, ne za osmnáct měsíců.

Časté dotazy

Je Gitea stále open source?

Ano. Jádro Gitea je pod licencí MIT a lze ho zdarma provozovat vlastními silami s neomezeným počtem uživatelů a repozitářů. Praktickým háčkem je správa, ne dostupnost zdrojového kódu: Gitea je řízena firmou a má nabídku Enterprise podporovanou dodavatelem přes CommitGo, zatímco Forgejo je komunitně řízená větev pod licencí GPL pod hlavičkou Codeberg e.V. Forgejo popisuje komerční uspořádání Gitea jako Open Core; Gitea/CommitGo toto označení zpochybňuje a tvrdí, že samotný open source projekt neobsahuje žádný proprietární kód. Gitea je tedy stále open source, ale není komunitně řízená stejným způsobem jako Forgejo.

Je Forgejo lepší než Gitea?

Pro základní hosting gitu jsou téměř totožné: Forgejo vzniklo forkem z Gitea a sdílí stejný základ. Forgejo se liší v řízení projektu (nezisková organizace Codeberg e.V.), licenci (copyleft GPL-3.0 oproti MIT u Gitea) a zveřejňování bezpečnostních informací (veřejně pro všechny, oproti politice Gitea upřednostňující nejprve zákazníky Enterprise). Odpověď na otázku "co je lepší" závisí na tom, zda vám na těchto věcech záleží; jen podle funkcí je to remíza.

Kolik RAM potřebuje OneDev?

Oficiální minimum OneDev je 2 GB RAM. V testech nodatools.com se v klidu pohyboval kolem 600 MB a pod zátěží dosáhl zhruba 950 MB. Při startu může spotřeba stoupnout výše, dokud se JVM zahřeje a dokončí indexování, ale s aktivně běžícím CI byste měli počítat trvale s 1 až 2 GB. Pro srovnání, stejné testy uváděly Forgejo a Gitea v klidu na přibližně 180 až 200 MB.

Mohu migrovat z Gitea do OneDev, nebo z OneDev do Forgejo?

Mezi rodinou Gitea/Forgejo a OneDev neexistuje žádná přímá migrační cesta. Používají odlišné datové modely, formáty CI a schémata, takže přechod by vyžadoval migraci přes API, repozitář po repozitáři, při které se ztratí historie CI a projektového managementu. Migrace mezi Gitea a Forgejo naopak existuje (viz náš návod na migraci z Gitea na Forgejo), protože sdílejí stejný původ.

Podporuje OneDev GitHub Actions?

Ne. OneDev používá vlastní dialekt YAML plus GUI editor pipeline, takže workflow napsané pro GitHub, Gitea nebo Forgejo musí být přepsány, aby na něm fungovaly. Gitea Actions je navrženo jako přímá náhrada, takže většina existujících workflow funguje beze změn. Runner Forgejo je v praxi kompatibilní, ale není navržen tak, aby přesně kopíroval GitHub Actions; než předpokládáte plnou přenositelnost, zkontrolujte oficiální dokumentaci Forgejo ohledně zdokumentovaných nekompatibilit.

Share

Další z blogu

Pokračuj ve čtení.

Hotov k nasazení? Od 2,48 $/měs.

Nezávislý cloud od roku 2008. AMD EPYC, NVMe, 40 Gbps. Vrácení peněz do 14 dnů.