简体   繁体   中英

Private Ruby Gem Server with Authentication

I want to install a private Ruby gem server with some authentication. I want to be able to host in-house gems using a public Ubuntu server.

I read about http://docs.rubygems.org/read/chapter/18 . But there is no authentication with that one - as I can see.

Then I read about https://github.com/cwninja/geminabox . But when I use the basic authentication (they have in their Wiki), it complaints about fetching the sources from my server.

So. How can I make a private Ruby gem server with authentication? Is that just impossible?

Thanks.

Edit:

Geminabox problem. I try to "bundle" to install new gems... but it gives me this error:

AGs-MacBook-Pro:super_app AG$ bundle

Fetching source index for http:// rubygems.org/

Fetching source index for http:// localhost:9292/

Could not reach rubygems repository http:// rubygems.org/, http:// localhost:9292/

Could not find aglipsum-0.0.1 in any of the sources

And "aglipsum" is my custom gem. However when I do not have basic authentication on, it works.

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

Have you tried prefixing the source url with your basic auth credentials:

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

This works for me with an apache + passanger setup.

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

Deploy private rubygems repository

You can easily setup private rubygems repository from geminabox docker image:

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

don't forget to change:

  • /path_where_to_store_gems - path on your local machine where you want to store your gems
  • myuser - username
  • mypassword - password

That's all. Your repository is accessible by url http://YOUR_HOST:9292

Installing gems form private repository

Add following line at the top of your Gemfile :

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

... and use bundle install as usual.

take a look if my fork of geminabox is what you need. I add the authentication for managing gems.

https://github.com/poshboytl/geminabox

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM