我需要一个自托管的Github替代产品。至关重要的是,它可以在防火墙内联网上工作,并且不能访问Internet(例如,样式,许可证检查等)。


比较好的Web UI:源代码和提交浏览是必须的。
支持git和/或mercurial。同时支持两者。
SSH shell(必须至少可以通过ssh访问存储库,而不能仅通过http访问,即使git至少可以很好地支持通过http进行的所有操作)
权限:至少


私有/公共存储库
只读和完全访问权限
为Web UI和SSH设置了相同的权限(授予/修改权限时,应同时反映给两个用户)
最好集成到LDAP(权限的用户和组)


拉请求(又称合并请求)
管理工具:创建存储库,授予访问权限
/>简单的问题跟踪器:创建故障单,注释,结束,标签/标签
最好进行搜索,包括故障单,用户,项目,文件名和内部源代码
优选从Web UI进行分叉
优选运行在Linux中

必须是开源的(这意味着如果它缺少一些次要功能就可以)或负担得起的价格(30个用户每年> 2400欧元太贵了)。

我知道至少有:




似乎是最好的选择)
Gitbucket
很棒

Github企业版(价格太贵; 10000 $ /年)

但是我没有这些经验-这份名单不会以任何方式被排除在答案之外。但是,据我所知,还有其他选择,因此,我并不是在寻找可能的解决方案列表,而是根据您使用和尝试过的内容提出建议。我也可以使用搜索引擎,因此无需发布仅包含第一个匹配中复制粘贴内容的答案。

#1 楼

我们已经使用GitLab超过一年来托管我的学生的项目。

;;;编辑:曾经有一个演示,但现在不见了。您可以免费注册并创建一些公共存储库。

我必须说我真的很满意。

由于鼓励您在此站点上进行迭代,我会做到这一点。 ,统计信息(全局和每用户)和提交图(如Github上的“网络”)。您可以从GUI注释每一行提交,这是一个很棒的功能!抱歉,但是我无法提供任何屏幕截图,我必须手动将其匿名化。通常,它类似于Github。
支持git和/或mercurial。对两者的支持都是一个加号。仅Git。
SSH shell(即使至少git相对较好地支持通过http
权限:至少


私有/公共存储库:存在。
read -仅限完全访问权限:您可以定义角色(我相信默认设置为主角色,开发人员,记者,访客)。应该同时反映在两个方面:我相信它的工作原理就是这样,但是由于我目前没有管理员权限,因此很难进行测试。但是,又像github。
最好集成到LDAP(
权限的用户和组):我们已经做到了。每个人都通过ldap登录,员工的权限高于学生。但是我真的不能说这是否很容易,只是有可能。


请求(也称为合并请求):存在。授予访问权限:全部来自Web界面,可以很好地搜索用户并可以定义用户组。
简单的问题跟踪器:创建故障单,评论,结束,标签/标签:是的,它就在那里。不知道您说的标签“ tough”是什么意思,看不到这样的内容。里程碑?
最好搜索,包括票证,用户,项目,文件名和内部
源代码:这可能是gitlab最不喜欢的功能。您可以搜索用户/项目/组,可以找到文件的内容,但不能找到文件名。我觉得它很笨拙。
最好从Web UI分叉:当前。
最好在Linux中运行:显然;-)
升级过程:如果您了解系统,这非常简单。每个版本都有自己的升级指南,该指南始终与默认的建议设置(即路径,用户,命令等)有关。如果您使用的是非标准系统(以其术语而言),则可以自定义设置,这将花费一些时间来整理所有内容,但这并不复杂-主要是一个新的克隆,运行少量脚本,并且重做。从来没有任何问题,但很久以前我就停止遵循此过程。 UPDATE Gitlab现在包括(自6.4.2起)一个简单的升级脚本。假设您具有标准的系统布局,那么实际的升级过程现在只需一个命令。它是开源的,可免费用于商业用途。

不需要Internet连接即可运行Gitlab。您将需要Internet来设置Gitlab,因为它会从RubyGems下载其依赖项。或者,您可以构建RubyGems镜像,或在另一台服务器上进行安装,然后将完整的安装目录(默认为/home/git/)复制到此服务器上。 br />

评论


现在,GitLab提供的软件包可以在不连接互联网的情况下下载和安装,满足问题中列出的第一个要求。参见about.gitlab.com/downloads

– Sytse Sijbrandij
2014年6月27日14:11

我会改用GoGS(gogs)。首先,我对任何带有“免费”(锁定)版本和具有关键功能(挂钩)企业版的定价/购买按钮的软件感到厌倦。其次,因为这给Ruby添加了一个依赖关系,并且所有安全漏洞都包含在Ruby中。 GoGS不会添加任何依赖关系(除了C运行时库,Ruby也使用了它,以及几乎所有东西)。 Go具有出色的安全性记录,而且除了您真正需要的原子依赖项之外,它所链接的内容也更多(更少的代码-更高的安全性)。

– Stefan Steiger
16年4月8日在10:01

Gitlab现在变得太肿胀和太迟钝

–user3791372
17-2-24在23:53

Gitlab的管理一片混乱。我尝试安装4.5小时,但未成功。

–托马斯·韦勒(Thomas Weller)
17年6月27日在7:00

@ThomasWeller我不想因此专门安装它,我想要一种快速简便的方法来安装它。然后我发现TurnkeyLinux有一个适用的设备。 ISO或VM映像。您只需在首次启动时设置密码和基本设置。我目前正在测试它,它看起来很有前途。 turnkeylinux.org/gitlab

– Broco
18 Mar 15 '18 at 11:16

#2 楼

我们将Atlassian Stash和Jira一起用于问题跟踪。用户,以及500个用户的12,000美元。 Stash本身不包括问题跟踪,但是Atlassian在相同的许可模式下分发了单独的问题跟踪解决方案Jira。

当然,可以满足您的要求


您必须自己决定,但是到目前为止,Web UI仍然没有问题。它具有高度的可扩展性,支持插件和REST API。
Stash仅支持Git。
Stash支持http,https和ssh。
多个用户(受许可证限制)和权限系统。
完整的存储库管理,包括拉取请求。
完整的管理工具,面向公众的存储库(无需帐户即可访问),用户存储库和项目存储库具有访问权限。

与Jira问题跟踪集成。
按存储库,提交,发行和文件搜索。
Fork项目存储库,用户存储库等。
在Linux,Windows和OS X上可用(仅用于评估目的)。


评论


藏匿有任何问题吗?总体而言,好的答案。

–奥利
2014年2月12日在21:54

@Olli我能想到的很多。定价是主要缺点。它还需要兼容的Oracle Java或OpenJDK安装以及受支持的数据库安装才能成功安装。有关更多详细信息,请参见受支持的平台。

– DanteTheEgregore
2014年2月12日在22:24



只有一个问题,您无法通过Web界面从github派生任何存储库。他们提供基于控制台的解决方案!大多数用户已经请求此功能,但是没有人在听。

–OğuzÇelikdemir
2015年4月14日在19:12

GitLab在功能方面处于领先地位,并在一个方便的软件包中包含看板发行板,发行跟踪和持续集成。而且免费在自己的服务器上部署GitLab CE。而且,如果您想支付支持费用,GitLab EE比Stash便宜。

– Warren P
16年8月24日在19:32

#3 楼

Gogs(Go Git服务)是一种用Go语言编写的无痛苦的自托管Git服务。另一种选择是它的社区驱动叉Gitea。

我尝试了这个,发现它很吸引人。简单的界面,功能几乎与我对GitHub的期望差不多,并且维护人员渴望实现功能并修复错误。安装非常简单。将二进制文件拖放到文件夹中,然后从命令行调用它。初始配置是通过配置文件进行的。它具有Git和Web挂钩。无论如何,我希望以下内容即使迟到也能回答问题。 -都存在

支持git和/或mercurial。对两者的支持都是一个加号。 -仅支持Git

SSH shell(即使至少git相对支持通过HTTP的所有操作,存储库也必须只能通过ssh而不是http进行访问)-从我所知,SSH和HTTP都可以

权限:至少



私有/公共存储库-两者

只读和完全访问权限-不确保只读,我还没有尝试将其设置为任何回购协议,并且在快速浏览后仍找不到设置

Web UI和SSH的权限设置相同(授予/修改权限时,应同时反映到两者)-同一件事:我尚未使用SSH(仅可通过LAN访问)

最好集成到LDAP(权限的用户和组) )-已集成或正在集成中



请求(又名合并请求)-ofc

管理工具:创建存储库,授予访问权限-是的

简单的问题跟踪er:创建票证,评论,关闭,标签/标签-当前常见的功能

最好进行搜索,包括票证,用户,项目,文件名和内部源代码-每次搜索都无法从提交UI上分辨出来

最好从Web UI进行分叉-存在UI功能,但我从未使用过它

最好在Linux上运行-它可以在任何可以编译的环境下运行。二进制和源可用。


评论


如果您使用Gogs,则可能要安装Gitea。它是Gogs So Gogs的社区管理分支,但更好。 HN帖子。

– aloisdg移至codidact.com
17年1月27日在16:03

看起来不错,但绝对仍然缺少文档。我没有设法将其与现有的准系统存储库相关联。我想要WebUI,但想通过git @ URL通过预先存在的设置进行推送。我可以使用通过Gogs / Gitea创建的存储库(使用相同的准系统)来做到这一点,但是安装不会注意到这些更改。似乎它在其数据库中保留了一条记录,但是我都没有找到同步的方法。即推送成功,但是WebUI没有反映出来。对我来说毫无意义。我一定在这里错过了一些东西。

– Izzy♦
17年4月25日在21:49

好的,以另一种方式进行管理。推荐阅读:在Debian上安装Gitea(易于阅读和关注,也可以应用于Gogs)。冗长的一本书:如何使用Gogs托管自己的私有GitHub。我错过了什么:1)通过WebUI导入SSH密钥(不要自己将其添加到.ssh / authorized_keys),2)通过WebUI创建/初始化存储库(而不是通过git init手动创建)。然后,似乎工作正常。但是,目前还没有办法采用现有的准系统回购协议。

– Izzy♦
17年4月26日在6:24

您已经为我节省了几个小时的搜索工作,以了解如何使SSH在@Izzy上正常工作。一年后,文档仍然一团糟。

– NetOperator Wibby
18年4月24日在6:47

#4 楼

我建议使用Tuleap




Web UI:目前正在繁重的工作中(主要发布版本将在几周内发布,您可以在演示中进行早期预览)网站)
支持git,subversion甚至cvs
SSH和HTTPS访问
基于组的访问控制,每个回购库(读,写,倒带)。可以是LDAP或AD支持的,但不是强制性的
Gerrit集成附带代码审查和选通功能(只有ALM才能与本机上游gerrit一起运行)
基于Web的项目/仓库范式管理。不依赖中央管理员
全面的跟踪系统。可以根据需要进行简化,但也可以用于CMM / ITIL / ISO遵从性(在同一平台上,而无需使用额外的工具或计划)。
票证搜索不错,但当前的一项重大改进是对票证的支持支持ElasticSearch。
Web Fork(个人仓库和跨项目仓库)
在Linux上运行(建议在产品中使用RHEL / Centos 6)

Plus(因为它是完整的ALM,它不限于代码管理)


与Jenkins本机集成以实现持续集成
文档管理
即时消息传递(jabber / XMPP)
列表,论坛和新闻
非常活跃的开发(每月发布,方便的升级过程:2个命令,停机时间为1分钟)。 ..)

它是100%开源(GPLv2),您可以从Enalean获得专业支持。

全面披露:我是开发团队的一员,所以不100%公平;)

#5 楼

我使用的是Phabricator,它是由Phabricator本身开发的。差异,搜索具有特定参数的任务。几乎每个应用程序都允许您对其数据进行自定义搜索;

支持git和/或mercurial:支持Git,Mercurial和Subversion;

SSH Shell(即使至少git相对支持通过HTTP的所有操作,存储库也必须可以通过ssh而不是http进行访问):我不能说SVN,因为我尚未测试它,但是对于Mercurial和Git可以将每个存储库分别配置为对HTTP和SSH都是读写的或只读的;

权限:




私有/公共存储库:检查;

只读和完全访问权限:您可以在同一页面上配置哪些人可以查看项目以及哪些人可以推送到该项目:





为Web UI和SSH设置了相同的权限(授予/修改权限时,应同时反映在两者上):请参见上文;

最好集成到LDAP(权限的用户和组):对于用户,您拥有它。对于组/权限,我不太确定;



拉请求(又称合并请求):是的,您也可以使用命令行创建它们,这实际上是首选方法;

管理工具:创建存储库,授予访问权限:请参见第4项中的图片,您可以允许任何人创建存储库,或者只允许特定的用户/组为此;

简单的问题跟踪器:创建票证,评论,关闭,标签/标签:就在那儿。您可以在清单中创建任务,从而可以使用Projects(标签的“ Phabricator等效项”)对任务进行分类,将其放置在工作台中,并创建用于所有跟踪目的的自定义字段;

最好进行搜索,包括票证,用户,项目,文件名和内部源代码:几乎每个应用程序都允许您对其数据执行搜索。还可以搜索提交,对于Mercurial和Git,可以按存储库代码进行搜索;

最好从Web UI进行分叉:不存在,尽管Phabricator的使用方式与GitHub的使用方式不同。您无需保留单独的存储库即可向上游发送更改(请参见Differential和Arcanist);

最好在Linux上运行:是的,它在Linux上运行。另外,升级到新版本也很容易。 Phabricator项目HEAD几乎始终处于工作状态(特别是如果使用stable分支),因此升级主要是运行git pull和任何挂起的数据库迁移的问题。


评论


它也有一个非常好的看板工作板来管理任务。

–user3791372
17-2-24在23:52

#6 楼

最近几周我一直在尝试gitstack。我还没有完全探索它(时间总是那么短)。我将主要使用其功能列表中的屏幕截图,因为我现在使用的是错误的计算机(以及错误的FWIW网络)。




相对不错的Web UI :必须具有源代码和提交浏览:合理-至少到目前为止,我还没有遇到任何问题。


支持git和/或mercurial:仅支持git。


SSH Shell(存储库必须通过ssh可以访问,而不仅仅是http,即使至少git相对较好地支持通过http的所有操作):仅http。确实具有完整的git push pull等支持(至少是广告,我还没有尝试过这些功能)。

权限:它具有多个用户,这些用户可能具有不同的权限,所以我想您可以拥有一个用户标题为“公共”,然后是其他私人用户,并以某种方式将回购权限授予这些用户。但是,例如AFAIK不支持一键式私有/公共切换。

拉请求(又名合并请求):是的。编辑:很抱歉读错了。不,它不支持AFAIK拉取要求。

管理工具:创建存储库,授予访问权限:是

简单问题跟踪程序:创建票证,评论,关闭,标签/标签:不幸的是没有。

最好搜索,包括票证,用户,项目,文件名和内部源代码:我认为仅在提交消息上使用-不在我的gitstack计算机/网络上,因此现在无法确认。 br />
最好从Web UI分支:不要这样-没尝试过,但是不记得任何这样的选项。 >

GitStack是开源的,源代码在github上。如其功能页上所述,已在GPL下发布-当前的所有功能,尽管将来可能会在付费版本中添加新功能,而不是免费版本,但自2013年11月版起尚未发布。


免费:所有功能,不支持(“社区”支持),最多2个用户帐户。
5个用户:$ 150,电子邮件支持。
10位用户:$ 300,也可免费使用1或2位用户; 5位用户每年$ 150,10位用户每年$ 300-如果需要更多用户,请与他们联系。
企业:电子邮件,电话和远程支持,价格:与他们联系。


#7 楼

2015年更新:Gitorious将合并到GitLab中,因此请参阅GitLab答案。

Gitorious是一个Git托管和协作软件,您可以自行安装。

它是开源的,您可以在gitorious.org上尝试使用它。 br />支持git
SSH shell:是
权限:是
拉取请求:是
管理工具:是
简单问题跟踪器:否,但可以集成使用Trac
搜索:是
从Web UI分支:是
在Linux上运行:是


评论


您是否曾经使用过(自行安装的)怪诞的软件?你有什么经验吗?轨道集成的运作情况如何?您不知道3)和4)吗?请阅读此元文章。

–奥利
14年2月13日在9:16

最好的事情是用户组是全局的,因此您可以在项目中重复使用它们-与github相反,在github中,您必须为每个组织创建新的组。

– cweiske
2014年11月21日,12:42

#8 楼

RhodeCode Enterprise 3(https://rhodecode.com)满足您10个要求中的9个:


相对较好的Web UI:是:是,甚至支持Subversion和Subversion。SSH外壳:是,可以通过插件
使用。
请求:是,包括服务器端合并和拥有自己的灵活工作流
管理工具:是
简单问题跟踪器:否,但易于与所有问题跟踪器集成
优选:是,可以全面搜索所有内容
最好从Web UI进行分叉:是
最好在Linux上运行:是,甚至可以在Windows下运行和EDU。它是用Python编写的,已在10,000多个组织的生产环境中使用,并且经过这些组织的强化和优化超过3年。

#9 楼

由于尚未在问题或先前的答案中列出,因此还有Deveo支持这些要求。我们为5位用户推出了免费套餐,之后每位用户每年的价格为36欧元。 br />
Deveo具有最好的UI / UX之一,它支持git和/或mercurial。对两者的支持是一个加分。

除Subversion(SVN)之外,Deveo还同时支持这两种。即使至少git也可以很好地支持通过http进行的所有操作)。

同时支持SSH和HTTPS。


权限:至少


私有/公共存储库
只读和完全访问权限
为Web UI和SSH设置了相同的权限(授予/修改权限时,应同时反映给两个用户)
最好集成到LDAP(权限的用户和组)。



支持所有上述用例。在Deveo中,存储库在项目内分组,这意味着您可以在同一项目中拥有后端和前端存储库。有一个细粒度的访问控制,可以在项目级别和存储库级别使用。自然,相同的权限方案适用于存储库和Web UI。 Deveo可以集成到LDAP / AD中,此外,您可以将Deveo配置为针对基于SAML 2.0的单点登录服务进行身份验证。


拉请求(又名合并请求)

目前在同一存储库中支持拉请求。您可以设置要合并的更改之前所需要的批准数量,甚至可以在分支进行合并之前要求分支通过构建。
/>管理工具:创建存储库,授予访问权限

Deveo支持用于创建存储库和授予访问权限的多级访问。访问控制基于角色,因此易于理解和使用。


简单的问题跟踪器:创建票证,评论,关闭,标签/标签

Deveo具有类似于Trello的内置问题跟踪器。您可以创建里程碑,其作用类似于trello板,然后将问题从一个州拖放到另一个州。可以对问题进行评论,添加附件,分配人员,为问题添加标签等等。 ,文件名和内部源代码

您可以在Deveo中搜索大部分内容。


最好从Web UI进行分叉

分叉UI支持。


最好在Linux中运行。

支持所有常见的Linux发行版(Debian,CentOS,Ubuntu,RedHat)

我隶属于Deveo

#10 楼

更新:看来RhodeCode实际上不是封闭源,它具有社区版本(开放源代码),而某些功能(企业)是封闭源代码。鉴于此,我不确定Kallithea分支是否会保持活跃。 Kallithea是免费的。

它支持Git和Mercurial存储库。它具有与2013版RhodeCode完全相同的用户界面。

主要网站:

https://kallithea-scm.org

#11 楼

这是对Piotr Zierhoffer的GitLab回答的补充。

我也已经研究了解决方案(在过去的几年中),发现GitLab在功能,可用性和灵活性方面最适合执照。我对它与GitHub的相似之处感到惊讶。上面发布的答案非常棒。

我想补充的是,您不必从头开始安装它或使用托管服务(或第三方服务,如GitHost)。有一些VPS和云托管提供商为GitLab设置了“一键式”设置,还有用于Amazon Web Services和Docker的图像和容器。例如,我最近更换了VPS托管提供商向DigitalOcean致意,很高兴发现他们为GitLab提供了一键式“液滴”(以及一键式和手动安装的教程)。至于云托管,Amazon EC2的价格非常便宜,而且我已经看到了很多有关GitLab的教程和至少一些流行的图像。没关系我真的很想提一下它,因为它对于寻找最经济有效的方式来运行公认的答案中推荐的软件的人来说可能是有价值的。了解它在设置,维护和性能方面的工作方式将很有趣。)