Перейти до основного вмісту
Знижка 50% усі плани, обмежений час. Від $2.48/mo
14 min left
Інструменти розробника та DevOps

Gitea проти Forgejo проти OneDev: вибір платформи для самостійного хостингу git

B Автор: Bill 14 хв читання
Gitea vs Forgejo vs OneDev: choosing between a lightweight self-hosted git server and an all-in-one dev platform.

У порівнянні gitea проти forgejo проти onedev ви маєте справу з трьома інструментами, які відповідають на два різні питання. Gitea і Forgejo, це git-сервери, до яких додано управління проєктами. OneDev, це платформа управління проєктами та CI, яка до того ж дуже добре хостить git. Тож рішення не в тому, «яка з цих трьох найкраща». Воно в тому, «чи хочу я невеликий git-сервер, чи платформу «все в одному», і чи можу я дозволити собі витрати RAM, яких вимагає платформа «все в одному»».

Ось у чому напруга. OneDev робить більше з коробки, а тестування nodatools.com виміряло, що у простої він споживає приблизно втричі більше пам'яті, ніж чистий встановлений Forgejo, що на невеликому VPS може подвоїти ваш щомісячний рахунок. Цей компроміс і є суттю справи. (І ні, GitLab у цьому порівнянні немає. Якби вас цікавив обсяг ресурсів GitLab, ви б не читали про ці три.)

Я запускав усі три. Нижче те, що справді має значення при виборі для команди: відмінності в управлінні та ліцензуванні, що відрізняють Gitea від Forgejo, функції, які виправдовують існування OneDev, перевірені показники RAM і пряме «обирайте це, якщо…» для кожного.

TL;DR

  • Потрібен легкий git-сервер з CI у стилі Actions? Gitea або Forgejo. Оберіть Gitea, якщо важлива ближча сумісність з GitHub Actions; оберіть Forgejo, якщо прийнятний синтаксис воркфлоу, схожий на GitHub, з деякими коригуваннями при міграції.
  • Важливе некомерційне управління чи копілефт-ліцензія? Forgejo. Це форк під керуванням спільноти, і це мій вибір за замовчуванням для більшості команд.
  • Потрібна ліцензія MIT, найбільша спільнота forge-платформи або платний рівень Enterprise з SLA/SSO? Gitea.
  • Потрібне вбудоване управління проєктами, вбудований CI та аналіз коду в одній інсталяції, і є запас RAM? OneDev. Просто майте на увазі, що йому потрібно щонайменше близько 4 GB, тоді як Forgejo цілком задовольняється 1 GB.

Короткий висновок: Для більшості команд Forgejo, правильний компактний варіант за замовчуванням: те саме ядро, що й у Gitea, чистіше управління та Forgejo Actions із синтаксисом воркфлоу, схожим на GitHub. Обирайте OneDev лише тоді, коли вам справді потрібен об'єднаний досвід PM плюс CI в одному пакеті і ви не переносите купу наявних воркфлоу GitHub Actions.

Два питання, на які відповідають ці три інструменти

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 виконує свій демон збірки CI всередині процесу OneDev, тож окремий runner розгортати не потрібно. Gitea і Forgejo роблять навпаки: git-сервер, одна річ, а CI runner ви розгортаєте як окремий процес поряд з ним. Цей єдиний архітектурний факт видає, як кожен інструмент сприймає себе.

Gitea і Forgejo, git-орієнтовані. Репозиторії, pull request-и і код-рев'ю, це ядро; issue та канбан, корисні доповнення; CI, це те, що ви підключаєте окремо. Все побудовано навколо хостингу git і намагання не заважати вам. Ось чому вони компактні, швидкі й дешеві в експлуатації.

OneDev побудований у зворотному напрямку. Це платформа управління проєктами та CI/CD, де хостинг git, повноцінний компонент, але не організуючий принцип. Канбан-дошки автоматизовані, CI вбудований, аналіз коду вбудований, і він очікує бути місцем, де живе ваша команда, а не просто місцем, де лежить ваш код. Це справді інший продукт, тому порівняння його з Gitea за критерієм «хто краще хостить git» не має сенсу. Вони хостять git приблизно однаково добре. OneDev просто хоче робити набагато більше, і бере плату ресурсами за цю привілею.

Все, що йде далі, відображає цей поділ. Вибір між Gitea і Forgejo, це підрішення всередині гілки «легкий фордж». Питання «чи варто обирати OneDev», це зовсім інша гілка.

Gitea проти Forgejo: рішення між майже близнюками

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.

Обидва споживають близько 180–350 MB RAM, обидва мають спільну кодову базу до точки форку і обидва однаково виконують основний git-хостинг. Щодо репозиторіїв, pull request-ів, код-рев'ю, issues та CI у стилі Actions, у щоденному використанні вам буде важко знайти суттєву різницю, якщо тільки ви не переносите наявні воркфлоу GitHub Actions. Тож давайте одразу проясним: це не битва функцій. Розрив між onedev і gitea великий; розрив між gitea і forgejo стосується того, хто контролює проєкт і під якою ліцензією він постачається.

Ось контекст, який вам справді потрібен. У жовтні 2022 року домен і торгова марка Gitea опинилися в центрі суперечки щодо управління, і у відповідь було створено Forgejo. Тепер Forgejo перебуває під егідою Codeberg e.V., некомерційної організації в Німеччині, і постачається під GPL-3.0. Gitea залишається під ліцензією MIT і має безкоштовну версію з відкритим кодом для самостійного хостингу, тоді як CommitGo паралельно продає Gitea Enterprise. Forgejo описує цю домовленість як Open Core; Gitea/CommitGo заперечує це визначення і стверджує, що сам відкритий проєкт Gitea не містить пропрієтарного коду. Для читачів практична різниця простіша за політичні нюанси: Forgejo орієнтована на некомерційне, copyleft, повністю вільне управління; Gitea пропонує дозвільне ядро MIT плюс шлях Enterprise, підтримуваний вендором.

З цього випливають три речі, і кожна має значення для рішення:

  • Ліцензія. Копілефт GPL-3.0 (Forgejo) означає, що якщо ви модифікуєте Forgejo і поширюєте модифіковану версію, ви маєте поділитися своїми змінами під GPL. MIT (Gitea) цього не вимагає. Для більшості команд, що використовують немодифікований екземпляр внутрішньо, це питання ніколи не виникає. Але якщо ви будуєте щось поверх форджа і постачаєте це далі, це має значення.
  • Розкриття вразливостей. Forgejo повідомляє всіх про рекомендації з безпеки через публічні канали. Gitea резервує завчасні повідомлення про безпеку для платних клієнтів Enterprise, а це означає, що адміністратори самостійного хостингу на безкоштовному тарифі можуть бути вразливі до відомої вразливості довше, ніж платні клієнти. Якщо ви використовуєте безкоштовну версію, про цю асиметрію варто знати.
  • Платний тариф існує лише з одного боку. Gitea має комерційну редакцію Enterprise ($9.50–$19/користувач/місяць), яка додає SSO, журнали аудиту, пріоритетну підтримку та SLA. У Forgejo немає платного тарифу, всі функції доступні у безкоштовній збірці GPL.

Якщо ви зараз на Gitea і це підштовхує вас до Forgejo, хороша новина в тому, що існує підтримуваний шлях міграції (з межею версій на Gitea 1.22, яку варто зрозуміти, перш ніж почати). Я описав це окремо, дивіться повний покроковий посібник з міграції для покрокового розбору за версіями. Якщо ви йдете з GitHub і ще не обрали forge-платформу, це окреме рішення зі своїми компромісами, яке варто розглядати окремо.

Висновок розділу: щодо базового git-хостингу Gitea і Forgejo нарівні. Обирайте Forgejo, якщо хочете некомерційне володіння, copyleft і публічне розкриття вразливостей. Обирайте Gitea, якщо хочете ліцензію MIT, більшу спільноту або комерційний рівень Enterprise.

Чим OneDev справді відрізняється

Попрацюйте з OneDev (16.0.1 на момент написання) день, і перше, що ви помітите, це те, що ви жодного разу не розгортали CI runner. Демон збірки живе всередині сервера OneDev, тож CI працює, щойно платформа піднята. Ви можете побудувати pipeline у GUI, не написавши жодного рядка YAML, налагодити завдання через веб-термінал і протестувати збірку на незакомічених локальних змінах ще до пушу. Це справжнє операційне спрощення порівняно з танцем "встановіть сервер, потім встановіть і зареєструйте окремий runner", який вимагають Gitea і Forgejo.

Заковика, і вона суттєва для наявних команд, у тому, що OneDev використовує власний діалект YAML. Він не сумісний з GitHub Actions. Кожен воркфлоу, написаний для GitHub, Gitea чи Forgejo, потрібно переписати, щоб він працював на OneDev. Якщо у вас є набір файлів .github/workflows, на які ви покладаєтеся, це реальна вартість міграції, а не примітка. Gitea і Forgejo обидва успадковують екосистему GitHub Actions, але не однаково. Gitea Actions спроєктований як пряма заміна GitHub Actions, тож більшість воркфлоу переносяться без змін. Runner Forgejo сумісний на практиці, але має задокументовані прогалини: відсутній підключ permissions, ігнорування continue-on-error, інший синтаксис OIDC. Перевірте це, перш ніж вважати перенесення повністю безболісним.

Друге, що робить OneDev і чого просто немає в менших forge-платформах: аналіз коду у веб-UI. Пошук символів, перехід до визначення та пошук посилань працюють для низки мов (офіційний список включає Java, JavaScript, C, C++, C#, Go, PHP і Python) без локального клонування репозиторію. У Gitea і Forgejo немає нічого еквівалентного вбудованого, тож довелося б звертатися до зовнішнього інструменту. Якщо ваша команда багато рецензує код у браузері, це справді приємна перевага.

Додайте до цього повністю автоматизовану канбан-дошку (переміщення завдань за правилами, власні стани й поля, правила переходів), сервісдеск, що перетворює вхідні листи на issue без потреби в обліковому записі відправника, і конфіденційні issue всередині публічних проєктів, і ви отримуєте повну картину: OneDev намагається одночасно бути вашим issue-трекером, CI-системою, переглядачем коду та дошкою проєкту.

Варто зробити одне уточнення щодо реєстрів пакетів. OneDev має вбудований реєстр; це зрозуміло. Його навчальний посібник з пакетів перелічує Docker, npm, NuGet, Maven, PyPI і RubyGems, тоді як поточний опис продукту також згадує Helm. Gitea і Forgejo досі охоплюють значно ширший набір форматів пакетів, включно з Alpine, Arch, Cargo, Composer, Conan, Conda, Debian, Go, Helm, Maven, npm, NuGet, PyPI, RPM, RubyGems, Swift, Vagrant та інших. Якщо ваша команда покладається на формати пакетів поза вужчим набором реєстрів OneDev, Gitea або Forgejo безпечніший вибір.

Висновок розділу: OneDev дає вбудований CI, аналіз коду та повний набір інструментів управління проєктами в одній інсталяції. Платите ви за це переписуванням будь-яких workflow GitHub Actions, меншою екосистемою і (як розглянуто в наступному розділі) значно більшим обсягом RAM.

Вартість ресурсів: що насправді потрібно кожному

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.

Число, яке для багатьох команд визначає все це порівняння, походить з тестування nodatools.com: OneDev у простої споживав приблизно 600 MB RAM, тоді як Forgejo, близько 180 MB. Це більш ніж утричі, і різниця зростає під навантаженням. Ось їхні виміряні показники з nodatools.com's measured comparison, виконайте на новому VPS:

ІнструментПоточна версіяСпоживання RAM у стані спокою (перевірено)Активне споживання RAM під навантаженням (перевірено)Офіційний мінімум
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

Чому така різниця? OneDev написаний переважно на Java, тож JVM несе накладні витрати на купу, яких у Gitea та Forgejo на Go просто немає. Крім того, OneDev індексує код для своїх функцій аналізу, і це початкове індексування вимогливе до пам'яті. Коли я вперше розгортав його, підскок при завантаженні був найлякючішою частиною, і це не усталений стан.

Порада: не панікуйте через споживання пам'яті OneDev при старті. Воно може підскочити одразу після завантаження, поки JVM розігрівається і будується початковий індекс коду, а потім осісти ближче до показника простою, коли все стабілізується. Однак плануйте на реалістичне робоче значення, а не на показник простою. Коли CI активно виконує завдання, закладайте стабільно 1–2 GB. Офіційний мінімум у 2 GB існує не просто так.

Щодо розміру, це чітко перекладається у тарифи VPS:

  • Forgejo або Gitea, базове встановлення, без CI runner на сервері: 1 GB RAM / 1 vCPU is comfortable.
  • Forgejo або Gitea з CI runner на тому самому сервері: збільшіть до 4 GB RAM / 2 vCPU, щоб runner мав простір.
  • OneDev, базове встановлення: 4 GB RAM is the practical floor. Go to 8 GB if code indexing is heavy or CI is busy.

Тож різниця в вартості не дрібна. Спрощений git-сервер, якому достатньо 1 GB, проти екземпляра OneDev, якому потрібно 4 GB, це приблизно подвоєння вашого щомісячного рахунку за VPS. Для одинака-розробника чи невеликої команди це різниця між "працює практично безкоштовно" і рядком витрат, який ви помітите. Для більшої команди, яка щодня спиратиметься на вбудовані CI та PM, це цілком може бути виправдано. Але це справжній компроміс: накладні витрати OneDev це JVM, і ця вартість купує вам те, що працює на JVM.

Gitea, Forgejo, і OneDev усі доступні як розгортання в один клік у Маркетплейс Cloudzy, тож щойно ви визначилися з розміром, розгортання форджа займає кілька хвилин, а не пів дня боротьби з Docker. Якщо у вас працює CI runner або індексація коду OneDev, додатковий запас потужності знадобиться на Linux VPS з доступом root, тож ви можете самостійно налаштувати купу JVM і паралельність runner'ів.

Одна примітка щодо Cloudzy: картки застосунків у Marketplace наразі стартують Gitea, Forgejo та OneDev з 2 GB RAM. Рекомендація в 1 GB вище стосується компактних ручних встановлень без локального CI runner. Якщо ви розгортаєте через Cloudzy Marketplace, дотримуйтесь мінімуму на картці застосунку, щоб ОС, база даних, оновлення пакетів і фонові служби мали простір для дихання.

Що варто обрати?

Ви бачили таблицю і компроміси, тож ось мій прямий висновок для кожного профілю читача, на основі роботи з усіма трьома.

Обирайте Forgejo якщо хочете легку, керовану спільнотою forge-платформу з CI у стилі Actions, і можете миритися з невеликими відмінностями workflow від GitHub Actions. Це моя рекомендація за замовчуванням для більшості команд. Ви отримуєте той самий базовий git-хостинг, що й Gitea, чистіше некомерційне володіння, публічне розкриття вразливостей, ліцензію copyleft і найменше споживання RAM серед усіх трьох. Якщо у вас немає конкретної причини обрати одну з інших, обирайте цю.

Обирайте Gitea, якщо вам конкретно потрібна ліцензія MIT (дозвільніша за GPL-3.0 у Forgejo), найбільша спільнота й екосистема forge-платформи, або комерційний рівень Enterprise з SSO, журналами аудиту та SLA. У чистому git-хостингу це нічия з Forgejo, тож ви обираєте за ліцензією та перевагою щодо володіння, плюс опцію платної підтримки, якщо вашій організації потрібен вендор, до якого можна звернутися.

Обирайте OneDev, якщо вам потрібне вбудоване управління проєктами, вбудований CI та аналіз коду в одній інсталяції, ви починаєте з нуля (немає наявних workflow GitHub Actions для міграції), і у вас є бюджет RAM на сервер від 4 GB. Рішення forgejo проти onedev насправді зводиться до цього: ви купуєте git-сервер чи платформу? Якщо відповідь "платформу, і я не хочу прикручувати CI самостійно", то OneDev виправдовує свої накладні витрати.

Один фактор для прийняття рішення, який легко проґавити: між родиною Gitea/Forgejo та OneDev немає шляху міграції. Інша модель даних, інший формат CI, інша схема. Якщо ви починаєте на Forgejo, а пізніше вирішуєте, що хочете OneDev (або навпаки), вам доведеться робити перенесення через API репозиторій за репозиторієм, яке втрачає історію CI та дані управління проєктами. Тож якщо підхід OneDev «все в одному» взагалі вас приваблює, набагато дешевше почати саме з нього, ніж переходити на нього пізніше. Між Gitea і Forgejo міграція дійсно існує (це шлях міграції розглянуто вище), але перетин межі від легкого forge до OneDev це подорож в один бік з втратами. Врахуйте це в рішенні зараз, а не через вісімнадцять місяців.

Часті запитання

Чи залишається Gitea відкритим програмним забезпеченням?

Так. Ядро Gitea має ліцензію MIT і безкоштовне для самостійного розміщення з необмеженою кількістю користувачів і репозиторіїв. Практична застереження стосується не доступності коду, а управління: Gitea контролюється компанією і має підтримувану вендором пропозицію Enterprise через CommitGo, тоді як Forgejo це керована спільнотою, ліцензована за GPL відгалуженість під егідою Codeberg e.V. Forgejo описує комерційну домовленість Gitea як Open Core; CommitGo/Gitea заперечує цей ярлик і стверджує, що сам відкритий проєкт не містить пропрієтарного коду. Тож Gitea все ще залишається відкритим кодом, але не керується спільнотою так, як Forgejo.

Чи кращий Forgejo за Gitea?

Щодо базового git-хостингу вони практично ідентичні: Forgejo відгалузився від Gitea і має ту саму базу. Forgejo відрізняється управлінням (некомерційна Codeberg e.V.), ліцензією (копілефт GPL-3.0 проти MIT у Gitea) та розкриттям інформації про безпеку (публічно для всіх, проти політики Gitea, яка спочатку інформує клієнтів Enterprise). «Краще» залежить від того, чи важливі для вас ці речі; лише за функціями це нічия.

Скільки RAM потрібно OneDev?

Офіційний мінімум OneDev, 2 GB RAM. У тестуванні nodatools.com у стані спокою він споживав близько 600 MB, а під навантаженням досягав приблизно 950 MB. Під час завантаження показник може бути вищим, поки прогрівається JVM і завершується індексація, але при активному виконанні CI варто закладати стабільно 1–2 GB. Для порівняння, те саме тестування показало для Forgejo і Gitea близько 180–200 MB у стані спокою.

Чи можна перенести дані з Gitea в OneDev або з OneDev у Forgejo?

Прямого шляху міграції між родиною Gitea/Forgejo і OneDev не існує. Вони використовують різні моделі даних, формати CI та схеми, тож перенесення вимагатиме міграції через API репозиторій за репозиторієм, яка втрачає історію CI та управління проєктами. Міграція між Gitea і Forgejo дійсно існує (дивіться наш посібник з міграції з Gitea на Forgejo), оскільки вони мають спільну лінію походження.

Чи підтримує OneDev GitHub Actions?

Ні. OneDev використовує власний діалект YAML разом з редактором пайплайнів у GUI, тож воркфлоу, написані для GitHub, Gitea чи Forgejo, потрібно переписати, щоб вони запрацювали на ньому. Gitea Actions спроєктований як пряма заміна, тож більшість наявних воркфлоу працюють без змін. Runner Forgejo сумісний на практиці, але не спроєктований точно повторювати GitHub Actions; перевірте офіційну документацію Forgejo щодо задокументованих несумісностей, перш ніж вважати перенесення повністю безболісним.

Share

Більше з блогу

Продовжуйте читати.

Готові розгортати? Від $2,48/міс.

Незалежна хмара з 2008 року. AMD EPYC, NVMe, 40 Gbps. Повернення коштів за 14 днів.