Под видео про установку 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 CE | Gitea | Forgejo |
|---|---|---|---|
| Лицензия | MIT (CE), EE - закрытая/source-available | MIT, но с обязательным 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 технически близки, а разница между ними - в том, кто и как управляет проектом, а не в том, какой из них «ломается», а какой нет. Если у вас для любого из трех есть веские инженерные причины - прекрасно, обсуждайте их. А аргумент «все остальное для необразованных» аргументом не является.




