Skip to content
This repository

Really simple rubygem hosting

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 data It seems to work! January 07, 2010
Octocat-spinner-32 lib
Octocat-spinner-32 public Limit gem index listing to most recent 5 versions August 09, 2012
Octocat-spinner-32 test
Octocat-spinner-32 views
Octocat-spinner-32 .gitignore
Octocat-spinner-32 Gemfile
Octocat-spinner-32 README.markdown
Octocat-spinner-32 Rakefile Faster bundler API support. March 13, 2012
Octocat-spinner-32 config.ru
Octocat-spinner-32 geminabox.gemspec
README.markdown

Gem in a Box – Really simple rubygem hosting

Geminabox lets you host your own gems, and push new gems to it just like with rubygems.org. The bundler dependencies API is supported out of the box. Authentication is left up to either the web server, or the Rack stack. For basic auth, try Rack::Auth.

Build Status

screen shot

Server Setup

gem install geminabox

Create a config.ru as follows:

require "rubygems"
require "geminabox"

Geminabox.data = "/var/geminabox-data" # ... or wherever
run Geminabox

And finally, hook up the config.ru as you normally would (passenger, thin, unicorn, whatever floats your boat).

Legacy RubyGems index

RubyGems supports generating indexes for the so called legacy versions (< 1.2), and since it is very rare to use such versions nowadays, it can be disabled, thus improving indexing times for large repositories. If it's safe for your application, you can disable support for these legacy versions by adding the following configuration to your config.ru file:

Geminabox.build_legacy = false

Client Usage

gem install geminabox

gem inabox pkg/my-awesome-gem-1.0.gem

Configure Gem in a box (interactive prompt to specify where to upload to):

geminabox -c

Change the host to upload to:

geminabox -g HOST

Simples!

Licence

Fork it, mod it, choose it, use it, make it better. All under the do what the fuck you want to + beer/pizza public license.

Something went wrong with that request. Please try again.