Поиск по сайту:

5 альтернатив GitHub с открытым исходным кодом


Сохраняйте устойчивость, сохраняя открытый исходный код в репозитории с открытым исходным кодом.

Git — популярная система контроля версий, в основном используемая для кода, но популярная и в других дисциплинах. Он может работать локально на вашем компьютере для личного использования, на сервере для совместной работы, а также может работать как размещенная служба для широкого участия общественности. Существует множество хостинговых сервисов, и одним из самых популярных брендов является GitHub.

GitHub не является открытым исходным кодом. С прагматической точки зрения для большинства пользователей это не имеет большого значения. Подавляющее большинство кода, размещенного на GitHub, по-видимому, поощряется к совместному использованию всеми, поэтому основная функция GitHub — это своего рода общедоступная служба резервного копирования. Если GitHub свернет или радикально изменит свои условия обслуживания, восстановление данных будет относительно простым, поскольку ожидается, что у вас есть локальная копия кода, который вы храните на GitHub. Однако некоторые организации стали полагаться на части сервисных предложений GitHub, не относящиеся к Git, что затрудняет миграцию с GitHub. Это непростая ситуация, поэтому для многих людей и организаций страховка от привязки к поставщику является выгодной инвестицией.

Если вы находитесь в такой ситуации, ознакомьтесь с этими пятью альтернативами GitHub, все из которых имеют открытый исходный код.

1. ГитЛаб

(Сет Кенлон, CC BY-SA 4.0)

GitLab — это больше, чем просто альтернатива GitHub; это больше похоже на полноценную платформу DevOps. GitLab — это почти вся инфраструктура, необходимая компании по разработке программного обеспечения, поскольку она предоставляет инструменты управления кодом и проектами, отчеты о проблемах, непрерывную доставку и мониторинг. Вы можете использовать GitLab на GitLab.com или загрузить базу кода и запустить ее локально с платной поддержкой или без нее. У GitLab есть веб-интерфейс, но все команды, специфичные для Git, работают как положено.

GitLab стремится к открытому исходному коду как в своем коде и стоящей за ним организации, так и в самом Git. Организация публикует большую часть своей бизнес-документации, в том числе порядок адаптации сотрудников, их маркетинговую политику и многое другое. GitLab как сайт активно продвигает Git. Когда вы используете функцию, специфичную для сайта (например, запрос на слияние), интерфейс GitLab объясняет, как разрешить запрос в чистом Git, если вы предпочитаете работать в терминале.

2. Гитолит

Gitolite — это, вероятно, минимальный объем кода, необходимый для предоставления администратору сервера интерфейса для управления репозиторием Git. В отличие от GitHub, он не имеет ни веб-интерфейса, ни настольного клиента и ничего не добавляет к Git с точки зрения пользователя. Фактически, ваши пользователи на самом деле не используют Gitolite напрямую. Они просто используют Git, как обычно, независимо от того, привыкли ли они к Git в терминале или к Git во внешнем клиенте, таком как Git Cola.

Однако с точки зрения администратора сервера Gitolite решает все проблемы с разрешениями и доступом, которыми вам пришлось бы управлять вручную, если бы вы использовали простой сервер Git. Используя Gitolite, вы создаете на своем сервере только одного пользователя (например, пользователя с именем git). Вы разрешаете своим пользователям использовать этот единый идентификатор входа для доступа к вашему серверу Git, но когда они входят в систему, им приходится иметь дело с вашим сервером Git через Gitolite. Именно Gitolite проверяет права доступа пользователей, управляет их SSH-ключами, проверяет их уровень привилегий при доступе к определенным репозиториям и многое другое. Вместо создания и управления бесчисленными учетными записями пользователей Unix все, что нужно сделать администратору, — это перечислить пользователей (идентифицированных по их открытым ключам SSH) в репозиториях, к которым им разрешен доступ. Gitolite позаботится обо всем остальном.

Gitolite практически невидим для пользователей и делает управление Git практически невидимым для администратора сервера. Пока вам не требуется веб-интерфейс, Gitolite — это чистая победа для всех участников.

3. Гитеа и Гоги

(Сет Кенлон, CC BY-SA 4.0)

Проект Gogs представляет собой серверную среду Git и веб-интерфейс пользователя, лицензированную MIT. В 2016 году некоторые пользователи Gogs почувствовали, что разработка затруднена, поскольку только первоначальный разработчик имел доступ для записи в репозиторий разработки, поэтому они перенаправили код в Gitea. Сегодня оба проекта сосуществуют независимо друг от друга, и с точки зрения пользователя они по сути представляют собой один и тот же опыт. По иронии судьбы оба проекта размещены на GitHub.

Используя Gitea и Gogs, вы загружаете исходный код и запускаете его как сервис на своем сервере. Это предоставляет пользователям веб-сайт, на котором они могут создать учетную запись, войти в систему, создать свои собственные репозитории, загрузить код, перемещаться по коду, создавать проблемы с файлами и отчеты об ошибках, запрашивать объединение кода, управлять ключами SSH и т. д. Интерфейс по внешнему виду похож на GitLab, GitHub или Bitbucket, поэтому, если у пользователей есть опыт работы с онлайн-системой управления кодом, они уже практически знакомы с Gitea и Gogs.

Gitea или Gogs можно установить в виде пакета на любой сервер Linux, включая Raspberry Pi, в качестве контейнера в BSD, macOS или Windows или скомпилировать из исходного кода. Они оба кроссплатформенные, поэтому их можно запускать на любом устройстве, где работает Go. Прочтите статью Рикардо Джерарди о настройке контейнера Gogs с помощью Podman для получения дополнительной информации.

4. Независимые сообщества

(Сет Кенлон, CC BY-SA 4.0)

Если вы не готовы к самостоятельному размещению, вы можете немного схитрить, используя опцию самостоятельного размещения на чужом сервере. Существует множество независимых сайтов, таких как Codeberg, Nixnet, Tinfoil-hat и Notabug.org. Некоторые используют Gitea, другие — Gogs, но результат один и тот же: бесплатный хостинг кода, который поможет вам обеспечить безопасность и публичность вашей работы. Эти решения могут быть не такими сложными, как GitLab или GitHub, они могут не предлагать конвейеры Jenkins по требованию и решения непрерывной интеграции/непрерывной разработки (CI/CD), но они являются отличным зеркалом для вашей работы.

Существуют также специализированные поставщики: экземпляр Gitea для сторонников FSFE, экземпляр Gitlab для проектов Freedesktop и еще один для проектов GNOME.

Поскольку эти независимые серверы представляют собой небольшие сообщества, вы также можете обнаружить, что «социальный» аспект социального кодирования более важен. У меня появилось несколько друзей в Интернете через независимого провайдера Git, в то время как GitHub оказался, по крайней мере, в социальном плане, не впечатляющим.

Идея ясна: нет никаких требований или преимуществ в существовании централизованной, доминирующей и несвободной службы хостинга программного обеспечения Git.

5. Гит

Возможно, вы удивитесь, узнав, что Git на удивление самостоятелен как сервер. Несмотря на отсутствие настроек управления пользователями и разрешений, Git интегрируется с SSH и поставляется со специальным приложением git-shell, разработанным специально для использования в качестве ограниченной среды для использования команд Git. Установив для пользователей оболочку по умолчанию git-shell, вы можете ограничить действия, доступные им при взаимодействии с вашим сервером.

Чего сам по себе Git не предлагает, так это инструментов разрешения доступа к репозиторию, которые помогут вам управлять тем, к чему имеет доступ каждый пользователь. Для этого вам придется прибегнуть к элементам управления пользователями и списком управления доступом (ACL) операционной системы, что может стать утомительным, если у вас больше, чем несколько пользователей. Для небольших проектов или проектов, которые только начинаются, запуск Git на сервере Linux — это простое и быстрое решение проблемы необходимости в пространстве для совместной работы. Для получения дополнительной информации прочитайте мою статью о создании сервера Git.

Бонус: Ископаемое

(Клаату, CC BY-SA 4.0)

Fossil ни в коем случае не является Git, и в некотором смысле в этом его привлекательность как альтернатива GitHub. По сути, Fossil — это альтернатива всей системе Git. Это полноценная система контроля версий, подобная Git, а также функции отслеживания ошибок, вики, форумов и документации, встроенные в каждый создаваемый вами репозиторий. Он также имеет веб-интерфейс и полностью автономен. Если все это звучит слишком хорошо, чтобы быть правдой, вы можете увидеть это в действии на сайте ископаемых-scm.org, потому что домашняя страница Fossil работает на Fossil!

Прочтите статью Клаату о начале работы с Fossil для получения дополнительной информации.

Открытый исходный код означает выбор

Самое лучшее в Git (и Fossil) — это то, что это технологии с открытым исходным кодом. Вы можете выбрать любое решение, которое лучше всего подходит для вас. Фактически, поскольку Git также распространяется, вы можете даже выбрать несколько решений. Ничто не мешает вам разместить свой код на нескольких сервисах и писать во все из них при каждом нажатии. Взгляните на свои варианты, решите, что лучше всего подходит для вас, и приступайте к работе!

Статьи по данной тематике: