Платформа для самостоятельного хостинга Git с низкими накладными расходами

Здесь есть ряд вопросов о замене GitHub .

Я тоже ищу. Тем не менее, я не хочу устанавливать все бесчисленное множество хлама, который требуется многим из этих инструментов, таких как Gitlab… никаких ruby+postgresql+nginx+redis+unicorn+sidekiq+node.js…

Я знаю, что в настоящее время очень популярно объединять любую технологию, которую вы можете найти. Лучше всего также смешивать 10 разных языков программирования. ВТФ? Безумие лучше всего видно по описанию ручной установки gitlab и установке Arch Linux gitlab . Зачем использовать базу данных SQL и NoSQL?!? А собственный веб-сервер единорог плюс nginx? Затем они добавят Elasticsearch, я почти уверен. Если у вас есть несколько ТБ репозиториев для индексации. Перестаньте притворяться, что это «большие данные»…

Но для того, чтобы программное обеспечение выполняло ключевую часть бизнеса в течение следующих x лет, я бы хотел иметь что-то менее причудливое и более надежное…

Есть ли какие-нибудь рекомендации для самостоятельной альтернативы GitHub с низким уровнем зависимостей ? Только с открытым исходным кодом, и Linux обязателен (например, Gitstack отсутствует).

Мой список желаний:

  1. Низкие зависимости. В частности, никаких Ruby, PHP, Node.js или Elasticsearch. Не притворяйтесь, что это большие данные; Репозитории Git размером более 1 ГБ не работают по замыслу.

  2. Хороший веб-интерфейс для Git с ответвлениями и пулл-реквестами. Нет необходимости редактировать код в браузере.

  3. Отслеживание проблем — это плюс, но не обязательно (но обычно запросы на включение подразумевают какое-то управление проблемами).

  4. Контроль доступа. Как минимум на уровне репозитория, желательно на уровне ветки. Частные и общедоступные репозитории должны поддерживаться.

  5. Работает стандартными инструментами, а не всеми модными современными инструментами, которые через год уходят в небытие.

  6. Открытый исходный код. Чтобы обеспечить долгосрочную жизнеспособность, и у меня нет бюджета, который я мог бы потратить. Кроме того, использование закрытого исходного кода для разработки с открытым исходным кодом — своего рода ублюдок, не так ли? Настоящий открытый исходный код, а не тот, где поддерживающая компания решает сделать его коммерческим инструментом в следующем году.

В конце концов, я хотел бы, чтобы это было похоже на Git . Мощный, но простой, минималистичный и надежный. Работать везде, вместо того, чтобы таскать за собой кучу зависимостей, которые могут и рано или поздно сломаются. Если вы знакомы с Git, то знаете, что многие функции — это просто интерфейсы для «перебазирования».

Возможно, не по теме, но: вместо этого взгляните на Fossil . Хотя он специально не основан на git(угу!), он по праву называется Github-in-a-box. Подходит для небольших команд; имеет низкую кривую обучения, интегрированную вики и средство отслеживания ошибок, и вы никогда не найдете ничего проще в настройке. (Предоставляет --git exportеще, для синхронизации.)
Извините, но git обязателен.
Откровенно говоря, это немного похоже на разглагольствование.
GitLab предоставляет пакеты Omnibus, которые очень легко настроить. Я управляю несколькими установками GitLab через пакеты Omnibus и очень редко жалуюсь.
«Толстые» пакеты — это неправильно™. Это не уменьшает накладные расходы, ошибки, проблемы совместимости, обновления и обслуживания, возникающие из-за слишком большого количества пакетов.

Ответы (3)

Я был вполне доволен Gitblit . Для этого требуется Java, но это буквально единственная зависимость. Он полностью автономен, если только вы не хотите настроить свой собственный контейнер сервлетов и настроить его самостоятельно, что он также позволяет.

На данный момент Gogs ( https://github.com/gogits/gogs ) может быть хорошим ответом для вас. Он написан на golang, с низким уровнем зависимостей, низкими требованиями к ресурсам, одним двоичным файлом, небольшой конфигурацией, без причудливых функций, но очень надежным.

RhodeCode хорошо работает для нас.

Что касается вашего списка желаний:

Низкие зависимости. В частности, никаких Ruby, PHP, Node.js или Elasticsearch. Не притворяйтесь, что это большие данные; Репозитории Git размером более 1 ГБ не работают по замыслу.

RhodeCode использует Elasticsearch, что отлично в нашем случае, так как у нас есть устаревшие репозитории объемом 25+ Гб.

Хороший веб-интерфейс для Git с ответвлениями и пулл-реквестами. Нет необходимости редактировать код в браузере.

Он имеет аккуратный пользовательский интерфейс с редактированием кода в браузере.Интерфейс RhodeCode

Отслеживание проблем — это плюс, но не обязательно (но обычно запросы на включение подразумевают какое-то управление проблемами).

Мы используем Jira, но я знаю, что RhodeCode интегрируется с RedMine и кучей других инструментов.

Контроль доступа. Как минимум на уровне репозитория, желательно на уровне ветки. Частные и общедоступные репозитории должны поддерживаться.

Управление может быть установлено на уровне репозитория/ветки/группы пользователей. Также поддерживаются LDAP, Active Directory, 2-FA и т. д.

Работает стандартными инструментами, а не всеми модными современными инструментами, которые через год уходят в небытие.

Насколько я знаю, он интегрируется с большинством инструментов, которые сейчас де-факто являются отраслевыми стандартами: RedMine, Jira, Slack, HipChat и т. д.

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

RhodeCode CE (Community Edition) является бесплатным и открытым исходным кодом, RhodeCode EE (Enterprise Edition) имеет коммерческую лицензию. С моей точки зрения, наличие коммерческого продукта является лучшим доказательством долгосрочной жизнеспособности продукта с открытым исходным кодом.