Gem in a box is a simple sinatra app to allow you to host your own in-house gems.
It has no security, or authentication so you should handle this yourself.
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).
RubyGems supports generating indexes for the so called legacy verions (< 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 yout config.ru file:
Geminabox.build_legacy = false
gem install geminabox
gem inabox pkg/my-awesome-gem-1.0.gem
Simples!
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.