↓ Перейти к основному содержимому
  1. Posts/
  2. Self-Hosting/

GitLab, Gitea и Forgejo. Сравнение не для снобов - кому что подходит для homelab

·1221 слово·6 минут· loading · loading · ·
Stilicho2011
Автор
Stilicho2011
Пишу о homelab, self-hosting, автоматизации и open-source решениях
Оглавление
Self-Hosting - This article is part of a series.
Part : This Article

Под видео про установку Forgejo и Komodo с нуля мне написали примерно следующее: ничего я не понимаю, пользоваться нужно только GitLab, а все остальные решения - неправильные, будут ломаться, непонятно кем разработанные, сделаны на коленке и так далее. Автор комментария, в силу крайне узкого кругозора и явного непонимания, что такое homelabbing, был уверен, что только его мнение вернее, а выбор любого git-сервера кроме GitLab глупость.

Проблема с таким утверждением простая - оно ничем не подкреплено. Поэтому ниже сравнение трех продуктов по конкретным особенностям: лицензии, системные требования, кто и как управляет проектом, что реально умеет каждый из них. А дальше каждый сам решит, необразованный он человек или просто выбрал инструмент под свою задачу, а не руководствуясь чужим мнением в комментариях.

Три продукта с разной целевой аудиторией
#

  • GitLab - платформа корпоративного уровня. Community Edition (CE) бесплатна и с открытым кодом, Enterprise Edition (EE) - платная, с закрытыми частями кода. Исторически делали ставку на «все в одном»: репозитории, CI/CD, security-сканирование, управление проектами.
  • Gitea - легкий self-hosted git-сервер на Go, задуман как быстрая и нетребовательная альтернатива GitHub/GitLab. Форк более старого проекта Gogs, существует с 2016 года.
  • Forgejo - форк самой Gitea, появившийся в конце 2022 года после того, как права на домены и торговую марку Gitea перешли коммерческой компании Gitea Ltd без согласования с сообществом. Сообщество решило, что хранителем форка станет некоммерческая Codeberg e.V., и с начала 2024 года Forgejo - уже не «soft fork», а самостоятельный, расходящийся с Gitea проект.

Сравнительная таблица
#

ПараметрGitLab CEGiteaForgejo
ЛицензияMIT (CE), EE - закрытая/source-availableMIT, но с обязательным CLA на новый кодMIT, без CLA
Кем управляетсяКоммерческая компания GitLab Inc.Коммерческая компания Gitea LtdНекоммерческая Codeberg e.V.
Минимальные системные требования8 vCPU / 16 ГБ RAM (официальный baseline для одной ноды)2 CPU / 1 ГБ RAM для небольшой команды, работает даже на Raspberry PiСопоставимо с Gitea - около 1 ГБ RAM для старта
CI/CDВстроенный, самый зрелый из трехGitHub Actions-совместимый синтаксис, добавлен относительно недавноForgejo Actions, тот же синтаксис, что у Gitea
Федерация (ActivityPub)НетРаботы не ведутся, федерация не анонсированаЭкспериментальная: федеративные звезды репозиториев и HTTP-подписи уже работают, полная федерация issues и pull request’ов - в разработке при поддержке гранта NLnet
Основной сценарий использованияКрупные команды, enterprise-требования, встроенный security-сканингПростой self-hosted git с минимальным оверхедомТо же, что Gitea, но с акцентом на открытое управление и прозрачность

GitLab: мощно, но дорого по ресурсам
#

GitLab CE действительно свободная и открытая платформа (лицензия MIT), и это не маркетинговый трюк, когда по факту все оказывается не так - закрыт только код Enterprise Edition. Но у этой мощи есть цена: официальная документация GitLab называет 8 vCPU и 16 ГБ RAM базовым ориентиром для однонодовой установки, а в «memory-constrained» режиме - не ниже 8 ГБ. На практике свежая установка с одним проектом легко съедает несколько гигабайт оперативной памяти на старте, еще до реальной нагрузки.

Для компании с выделенным сервером под GitLab это нормальная цена за встроенный CI/CD, security-сканирование и управление проектами из одной коробки. Для homelab, где GitLab конкурирует за ресурсы с десятком других сервисов на той же железке, это серьезное ограничение - не потому что GitLab «плохой», а потому что он спроектирован для другого масштаба задачи. Совсем другого. Абсолютно.

Gitea - легкий, но с нюансами по управлению проектом
#

Gitea - действительно удачный пример легкого git-сервера: 2 ядра и 1 ГБ RAM достаточно для небольшой команды, и проект официально работает даже на Raspberry Pi. Ядро распространяется по лицензии MIT, что формально открыто.

Но именно вокруг управления проектом в 2022 году и разгорелся конфликт (как впрочем и обычно в линукс тусовке), который привел к появлению Forgejo. У Gitea появился владелец - коммерческая организация Gitea Ltd, которая получила права на домен и торговую марку без публичного согласования с сообществом, и проект начал двигаться в сторону open-core модели - часть новых функций разрабатывается не под свободными лицензиями, а контрибьюторам теперь нужно подписывать CLA (Contributor License Agreement) даже для кода, который в итоге остается под действием лицензии MIT. Это не делает Gitea «плохим» инструментом технически - он продолжает активно развиваться и работать - проблема скорее в вопросах управления проектом, а не все в сообществе поддерживают явную коммерциализацию проекта.

Forgejo: тот же код, другая модель управления
#

Forgejo унаследовал легковесность Gitea (тот же стек на Go, похожие системные требования - около гигабайта RAM для старта), но решил вопрос управления иначе. Хранитель проекта - некоммерческая организация Codeberg e.V., CLA для участия в разработке не требуется, а весь цикл разработки идет на собственной инфраструктуре Forgejo и Forgejo Actions, а не на стороннем GitHub.

С начала 2024 года это уже полноценный hard fork - кодовая база расходится с Gitea все больше и больше, а не просто синхронизируется с небольшими правками. Среди заявленных практических отличий - end-to-end и upgrade-тесты (по утверждению самого проекта, у Gitea сопоставимого покрытия нет), заблаговременные уведомления о security-релизах для всех, а не только платных клиентов, и федерация через протокол ForgeFed на базе ActivityPub - пока экспериментальная (федеративные звезды репозиториев и HTTP-подписи на ActivityPub-эндпоинтах уже работают, полная федерация issues и pull request’ов - в разработке при поддержке гранта NLnet), но у Gitea такой работы как не было, так и нет.

Должен признаться, что часть этих сравнений я взял со страницы самого Forgejo, то есть я не использовал независимый источник. Да и откровенно говоря я не проводил полноценное исследование. Но то, что причиной появления форка стала именно смена модели управления Gitea - это факт, а не домысел.

А что там с «будет ломаться»
#

Вот здесь комментарий неизвестного мне пользователя совсем расходится с настоящей реальностью. Все три продукта - production-grade системы с историей в несколько лет, активной разработкой и реальными крупными инсталляциями. GitLab используется тысячами компаний. Gitea - основа для множества self-hosted git-платформ. Forgejo, хотя и моложе как отдельный проект, - это тот же проверенный код Gitea под новым управлением, а не стартап с нуля.

«Будет ломаться» - не технический аргумент про конкретный продукт, а общая фраза для троллинга (ну по крайней мере, я это так рассматриваю), которая одинаково неприменима ни к одному из трех. Если что-то и ломается в реальных инсталляциях - это почти всегда ошибки конфигурации или несоответствие ресурсов задаче (см. раздел про GitLab), а не ненадежность софта.

Что выбрать
#

  • GitLab нужен, если вы уже работаете с ним на основной работе, в большой команде и хотите тренироваться на том же стеке, или если вам действительно нужны встроенные enterprise-функции (продвинутое управление проектами, security-дэшборды) - и есть железо под это.
  • Вам подходит Gitea, если хочется максимально простого и проверенного временем решения, а вопросы управления проектом и CLA для вас не принципиальны. Ко всему прочему в сети большое количество видео и статей про Gitea.
  • Выбирай Forgejo, если важна прозрачность управления, вы не хотите подписывать CLA ради контрибуции, и вам нравится, что проект разрабатывается на собственной инфраструктуре, а не на GitHub. Я использую именно его - разбирал установку и настройку здесь и реальный рабочий пайплайн на базе Forgejo и Komodo - здесь. И спойлер: в планах продолжить идти по кривой «неправильной» дорожке Forgejo, конечно документируя все шаги в видеороликах.

Итог
#

Выбор git-сервера для homelab - вопрос соответствия ресурсов и приоритетов задаче. GitLab объективно требовательнее к железу. Gitea и Forgejo технически близки, а разница между ними - в том, кто и как управляет проектом, а не в том, какой из них «ломается», а какой нет. Если у вас для любого из трех есть веские инженерные причины - прекрасно, обсуждайте их. А аргумент «все остальное для необразованных» аргументом не является.

Self-Hosting - This article is part of a series.
Part : This Article

Related

GitOps для homelab: разворачиваем Forgejo и Komodo с нуля

··5746 слов·28 минут· loading · loading
Подробный туториал по GitOps для начинающих: разворачиваем Forgejo как собственный git-сервер, Komodo для управления Docker-стеками и настраиваем автодеплой по push, с разбором каждого параметра конфигурации.

ProHomelab: автоматизация публикации статей через Forgejo

·4948 слов·24 минут· loading · loading
Полностью автоматизирую публикацию ProHomeLab: пишу статью в Obsidian, изменения автоматически попадают в Forgejo, Forgejo Actions запускает сборку Hugo на Blowfish LXC, а готовый сайт без ручного участия загружается на хостинг от Smartape.