具有身份validation的私有Ruby Gem服务器

我想安装一个带有一些身份validation的私有Ruby gem服务器。 我希望能够使用公共Ubuntu服务器托管内部gem。

我读到了http://docs.rubygems.org/read/chapter/18 。 但是没有认证那个 – 我可以看到。

然后我读了一下https://github.com/cwninja/geminabox 。 但是,当我使用基本身份validation(他们在他们的Wiki中)时,它抱怨从我的服务器获取源。

所以。 如何使用身份validation创建私有Ruby gem服务器? 这不可能吗?

谢谢。

编辑:

Geminabox问题。 我尝试“捆绑”以安装新的gem……但它给了我这个错误:

AGs-MacBook-Pro:super_app AG $捆绑

获取http:// ruby​​gems.org/的源索引

获取http:// localhost:9292 /的源索引

无法访问rubygems存储库http:// ruby​​gems.org/,http:// localhost:9292 /

在任何来源中都找不到aglipsum-0.0.1

而“aglipsum”是我的定制gem。 但是,当我没有基本身份validation时,它可以工作。

一些专业的二进制存储库管理器(如Artifactory )支持私有RubyGems存储库。

您是否尝试使用基本身份validation凭据为源URL添加前缀:

gem sources -a http://user:password@localhost:9292 

这对我来说适用于apache + passanger设置。

Bundler 1.6版通过bundle config添加了对HTTP auth的支持。

看看我的geminabox叉是你需要的。 我添加了管理gem的身份validation。

https://github.com/poshboytl/geminabox

部署私有rubygems存储库

您可以从geminabox docker image轻松设置私有rubygems存储库:

 docker run -d -v /path_where_to_store_gems:/webapps/geminabox/data --name geminabox -p 9292:9292 -P -h geminabox -e PRIVATE=true -e USERNAME=myuser -e PASSWORD=mypassword spoonest/geminabox:latest 

不要忘记改变:

  • /path_where_to_store_gems – 您要在其中存储gem的本地计算机上的路径
  • myuser – 用户名
  • mypassword – 密码

就这样。 您的存储库可通过URL http:// YOUR_HOST:9292访问

安装gems形成私有存储库

Gemfile的顶部添加以下行:

 source 'http://myuser:mypassword@YOUR_HOST:9292' 

…像往常一样使用bundle install