Перейти к основному содержанию
Скидка 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 показало, что в простое он потребляет примерно в 3 раза больше памяти, чем чистая установка Forgejo, что на небольшом VPS может удвоить ваш ежемесячный счёт. Этот компромисс и есть вся суть игры. (И нет, GitLab в это сравнение не входит. Если бы вам был нужен объём ресурсов GitLab, вы бы не читали про эти три инструмента.)

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

Кратко (TL;DR)

  • Нужен лёгкий git-сервер с CI в стиле Actions? Gitea или Forgejo. Выбирайте Gitea, если важна более тесная совместимость с GitHub Actions; выбирайте Forgejo, если приемлем похожий на GitHub синтаксис workflow с некоторыми доработками при переносе.
  • Важно некоммерческое управление или копилефт-лицензия? Forgejo. Это форк с управлением сообществом, и это мой выбор по умолчанию для большинства команд.
  • Нужна лицензия MIT, самое большое сообщество среди форджей или платный уровень Enterprise с SLA/SSO? Gitea.
  • Нужны встроенное управление проектами, CI из коробки и интеллектуальный анализ кода в одной установке, и есть запас RAM? OneDev. Просто учитывайте, что ему нужно как минимум ~4 ГБ, тогда как Forgejo хватает 1 ГБ.

Краткий вердикт: Для большинства команд Forgejo — правильный выбор по умолчанию с малым потреблением ресурсов: то же ядро, что и у Gitea, более прозрачное управление и Forgejo Actions с синтаксисом workflow, похожим на GitHub. Обращайтесь к OneDev только тогда, когда вам действительно нужен встроенный опыт PM плюс CI в одном решении, и вы не переносите кучу существующих workflow'ов 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, так что отдельный раннер разворачивать не нужно. Gitea и Forgejo делают наоборот: git-сервер — это одно, а CI-раннер вы разворачиваете как отдельный процесс рядом с ним. Один этот архитектурный факт выдаёт то, как каждый инструмент воспринимает сам себя.

Gitea и Forgejo в первую очередь про git. Репозитории, pull request'ы и code review — это ядро; issues и канбан — полезные дополнения; 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 МБ RAM, оба используют одну и ту же кодовую базу вплоть до точки форка и одинаково выполняют базовый хостинг git. По репозиториям, pull request'ам, code review, issues и CI в стиле Actions вам будет сложно найти значимую разницу в повседневном использовании, если только вы не переносите существующие workflow'ы GitHub Actions. Так что скажем сразу: это не битва функций. Разрыв между onedev и gitea широкий; разрыв между gitea и forgejo — это вопрос того, кто контролирует проект и под какой лицензией он распространяется.

Вот контекст, который вам действительно нужен. В октябре 2022 года домен и торговая марка Gitea оказались в центре спора об управлении, и в ответ был создан Forgejo. Теперь Forgejo существует под эгидой Codeberg e.V., некоммерческой организации в Германии, и распространяется по лицензии GPL-3.0. Gitea остаётся под лицензией MIT и имеет бесплатную open-source редакцию для самостоятельного размещения, при этом 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, а значит администраторы self-hosted на бесплатном тарифе могут оставаться под известной уязвимостью дольше, чем платящие клиенты. Если вы используете бесплатную версию, эту асимметрию стоит иметь в виду.
  • У одной из сторон есть платный тариф. У Gitea есть коммерческая редакция Enterprise ($9.50–$19 за пользователя в месяц), добавляющая SSO, журналы аудита, приоритетную поддержку и SLA. У Forgejo нет платного тарифа, все функции доступны в бесплатной сборке под GPL.

Если сегодня вы на Gitea и это подталкивает вас к Forgejo, хорошая новость в том, что существует поддерживаемый путь миграции (с рубежом версий на Gitea 1.22, в котором стоит разобраться перед началом). Я описал это отдельно, см. полное пошаговое руководство по миграции за разбором по версиям. Если вы уходите с GitHub и ещё не выбрали фордж, это отдельное решение со своими компромиссами, которое стоит проработать отдельно.

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

В чём OneDev по-настоящему отличается

Поработайте с OneDev (16.0.1 на момент написания) один день, и первое, что вы заметите: вы ни разу не разворачивали CI-раннер. Демон сборки живёт внутри самого сервера OneDev, поэтому CI работает сразу, как только платформа поднята. Вы можете собрать pipeline в GUI, не написав ни строчки YAML, отладить задачу через веб-терминал и протестировать сборку на незакоммиченных локальных изменениях ещё до push. Это реальное упрощение по сравнению с танцем «установи сервер, затем установи и зарегистрируй отдельный раннер», который требуют Gitea и Forgejo.

Загвоздка, и весьма серьёзная для существующих команд, в том, что OneDev использует собственный диалект YAML. Он не совместим с GitHub Actions. Любой workflow, написанный для GitHub, Gitea или Forgejo, придётся переписать, чтобы он заработал в OneDev. Если у вас есть набор файлов .github/workflows, на которые вы полагаетесь, это реальные затраты на миграцию, а не сноска мелким шрифтом. И Gitea, и Forgejo наследуют экосистему GitHub Actions, но не одинаково. Gitea Actions спроектирован как прямая замена GitHub Actions, поэтому большинство workflow'ов переносятся без изменений. Раннер Forgejo на практике совместим, но имеет задокументированные пробелы: отсутствующий подключ permissions, игнорируемый continue-on-error, другой синтаксис OIDC. Проверьте это, прежде чем рассчитывать на полную переносимость.

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

Добавьте к этому полностью автоматизированную канбан-доску (перемещение задач по правилам, произвольные статусы и поля, правила переходов), сервис-деск, превращающий входящие письма в issue без необходимости учётной записи у отправителя, и конфиденциальные issue внутри публичных проектов — и картина ясна: OneDev пытается быть одновременно вашим трекером задач, системой 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. Это более чем в 3 раза, и разрыв растёт под нагрузкой. Вот их измеренные показатели из 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 несёт накладные расходы на heap, которых просто нет у Gitea и Forgejo, написанных на Go. Вдобавок к этому OneDev индексирует код для своих функций интеллектуального анализа, и это первоначальное индексирование требовательно к памяти. Когда я впервые развернул его, всплеск при загрузке был самой пугающей частью, и это не установившееся состояние.

Совет: не паникуйте из-за потребления памяти OneDev при запуске. Сразу после старта она может резко подскочить, пока JVM прогревается и строится начальный индекс кода, а затем осесть обратно к значению простоя по мере стабилизации. Тем не менее ориентируйтесь на реалистичное рабочее значение, а не на показатель простоя. При активно работающем CI закладывайте стабильно 1–2 GB. Официальный минимум в 2 GB существует не просто так.

С точки зрения подбора размера это чётко укладывается в тарифы VPS:

  • Forgejo или Gitea, базовая установка, без CI-раннера на машине: 1 GB RAM / 1 vCPU is comfortable.
  • Forgejo или Gitea с CI-раннером на том же сервере: увеличьте до 4 GB RAM / 2 vCPU, чтобы у раннера был запас.
  • 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-раннер или индексирование кода OneDev, дополнительный запас нужен на Linux VPS с root-доступом, чтобы вы могли самостоятельно настраивать heap JVM и параллелизм раннеров.

Одно замечание специально про Cloudzy: карточки приложений в Marketplace сейчас запускают Gitea, Forgejo и OneDev от 2 ГБ RAM. Приведённая выше рекомендация в 1 ГБ относится к компактным ручным установкам без локального CI-раннера. Если вы разворачиваете через Cloudzy Marketplace, следуйте минимуму из карточки приложения, чтобы у ОС, базы данных, обновлений пакетов и фоновых служб был запас.

Что вам выбрать?

Вы видели таблицу и компромиссы, так что вот моё прямое мнение для каждого профиля читателя, основанное на опыте работы со всеми тремя.

Выбирайте Forgejo если вам нужен лёгкий, управляемый сообществом фордж с CI в стиле Actions, и вы готовы мириться с небольшими отличиями workflow от GitHub Actions. Это моя рекомендация по умолчанию для большинства команд. Вы получаете тот же базовый git-хостинг, что и в Gitea, более чистое некоммерческое владение, публичное раскрытие уязвимостей, copyleft-лицензию и самый лёгкий из трёх footprint по памяти. Если у вас нет конкретной причины выбрать один из двух других, выбирайте этот.

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

Выбирайте OneDev, если вам нужны встроенное управление проектами, CI из коробки и интеллектуальный анализ кода в одной установке, вы начинаете с нуля (нет существующих workflow GitHub Actions для переноса), и у вас есть бюджет по RAM на бокс от 4 GB и выше. Решение forgejo vs onedev на самом деле сводится к этому: вы покупаете git-сервер или платформу? Если ответ «платформу, и я не хочу навешивать CI самостоятельно» — накладные расходы OneDev себя окупают.

Один фактор для принятия решения, который легко упустить: между семейством Gitea/Forgejo и OneDev нет пути миграции. Другая модель данных, другой формат CI, другая схема. Если вы начинаете с Forgejo, а позже решаете, что хотите OneDev (или наоборот), вам предстоит переход через API по репозиториям, при котором теряется история CI и данные управления проектами. Так что если подход OneDev "всё в одном" вам вообще импонирует, гораздо дешевле начать с него, чем переключаться позже. Между Gitea и Forgejo миграция существует (это путь миграции рассмотрено выше), но переход через границу от лёгкого форджа к OneDev — это путешествие в один конец, с потерями. Учтите это в решении сейчас, а не через восемнадцать месяцев.

Часто задаваемые вопросы

Остаётся ли Gitea открытым программным обеспечением?

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

Лучше ли Forgejo, чем Gitea?

В базовом хостинге git они почти идентичны: Forgejo — форк Gitea и использует ту же основу. Forgejo отличается управлением (некоммерческая организация Codeberg e.V.), лицензией (копилефт GPL-3.0 против MIT у Gitea) и раскрытием информации о безопасности (публично для всех, против политики Gitea, отдающей приоритет клиентам Enterprise). Что "лучше", зависит от того, важны ли вам эти вещи; по одним лишь функциям — это ничья.

Сколько RAM нужно OneDev?

Официальный минимум OneDev — 2 ГБ RAM. В тестах nodatools.com в простое потребление держалось около 600 МБ, а под нагрузкой достигало примерно 950 МБ. При загрузке потребление может быть выше, пока прогревается JVM и завершается индексирование, но при активно работающем CI стоит стабильно закладывать 1–2 ГБ. Для сравнения, те же тесты показали для Forgejo и Gitea около 180–200 МБ в простое.

Могу ли я перенести данные из Gitea в OneDev или из OneDev в Forgejo?

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

Поддерживает ли OneDev GitHub Actions?

Нет. OneDev использует собственный диалект YAML плюс редактор pipeline с GUI, так что workflow'ы, написанные для GitHub, Gitea или Forgejo, придётся переписать, чтобы они заработали в нём. Gitea Actions спроектирован как прямая замена, поэтому большинство существующих workflow'ов работают без изменений. Раннер Forgejo на практике совместим, но не рассчитан на точное копирование GitHub Actions; проверьте официальную документацию Forgejo на предмет задокументированных несовместимостей, прежде чем рассчитывать на полную переносимость.

Share

Ещё в блоге

Читайте дальше.

Diagram of the Gitea to Forgejo migration version cliff showing the supported direct path ending at Gitea 1.22
Инструменты разработчика и DevOps

Как перенести данные из Gitea в Forgejo, не сломав репозитории

Прямые обновления с Gitea на Forgejo заканчиваются на Gitea 1.22. Для Gitea 1.23+ сравните понижение версии SQL, инструменты миграции, импорт через API, резервные копии и то, что л

Chike 18 мин чтения

Готовы к развёртыванию? От $2,48/мес.

Независимое облако с 2008 года. AMD EPYC, NVMe, 40 Gbps. Возврат денег в течение 14 дней.